Changeset 4902


Ignore:
Timestamp:
01/08/2010 10:22:40 AM (5 years ago)
Author:
garry.yao
Message:

Enhance richo combo ARIA supports in following aspects:

  1. Labeling combo list;
  2. Adding multiple-select property to styles combo;
Location:
CKEditor/branches/features/aria/_source
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/branches/features/aria/_source/lang/en.js

    r4899 r4902  
    531531        {
    532532                label : 'Styles',
     533                panelTitle : 'Formatting Styles',
    533534                panelVoiceLabel : 'Select a style',
    534535                panelTitle1 : 'Block Styles',
  • CKEditor/branches/features/aria/_source/plugins/floatpanel/plugin.js

    r4900 r4902  
    238238                                                                } );
    239239
     240                                                        // Set the panel frame focus, so the blur event gets fired.
     241                                                        block.element.focus();
     242                                                        // We need this get fired manually because of unfired focus() function.
     243                                                        this.allowBlur( true );
     244
    240245                                                } , this );
    241246
    242247                                                panel.isLoaded ? panelLoad() : panel.onLoad = panelLoad;
    243248
    244                                                 // Set the panel frame focus, so the blur event gets fired.
    245                                                 CKEDITOR.tools.setTimeout( function()
    246                                                         {
    247                                                                 if ( definition.voiceLabel )
    248                                                                 {
    249                                                                         if ( CKEDITOR.env.gecko )
    250                                                                         {
    251                                                                                 var container = iframe.getParent();
    252                                                                                 container.setAttribute( 'role', 'region' );
    253                                                                                 container.setAttribute( 'title', definition.voiceLabel );
    254                                                                                 iframe.setAttribute( 'role', 'region' );
    255                                                                                 iframe.setAttribute( 'title', ' ' );
    256                                                                         }
    257                                                                 }
    258 
    259                                                                 block.element.focus();
    260                                                                 // We need this get fired manually because of unfired focus() function.
    261                                                                 this.allowBlur( true );
    262 
    263                                                         }, 0, this);
    264249                                        }, 0, this);
    265250                                this.visible = 1;
  • CKEditor/branches/features/aria/_source/plugins/font/plugin.js

    r4858 r4902  
    3131                                label : lang.label,
    3232                                title : lang.panelTitle,
    33                                 voiceLabel : lang.voiceLabel,
    3433                                className : 'cke_' + ( styleType == 'size' ? 'fontSize' : 'font' ),
    35                                 multiSelect : false,
    36 
    3734                                panel :
    3835                                {
    3936                                        css : editor.skin.editor.css.concat( config.contentsCss ),
    40                                         voiceLabel : lang.panelVoiceLabel
     37                                        multiSelect : false,
     38                                        aria : { 'aria-label' : lang.panelTitle, 'aria-describedby' : lang.panelVoiceLabel }
    4139                                },
    4240
  • CKEditor/branches/features/aria/_source/plugins/format/plugin.js

    r4858 r4902  
    2828                                label : lang.label,
    2929                                title : lang.panelTitle,
    30                                 voiceLabel : lang.voiceLabel,
    3130                                className : 'cke_format',
    32                                 multiSelect : false,
    33 
    3431                                panel :
    3532                                {
    3633                                        css : editor.skin.editor.css.concat( config.contentsCss ),
    37                                         voiceLabel : lang.panelVoiceLabel
     34                                        multiSelect : false,
     35                                        aria : { 'aria-label' : lang.panelTitle, 'aria-describedby' : lang.panelVoiceLabel }
    3836                                },
    3937
  • CKEditor/branches/features/aria/_source/plugins/listblock/plugin.js

    r4900 r4902  
    1919                                base : CKEDITOR.ui.panel.block,
    2020
    21                                 $ : function( blockHolder, multiSelect )
     21                                $ : function( blockHolder, blockDefinition )
    2222                                {
     23                                        blockDefinition = blockDefinition || {};
     24
     25                                        var aria = blockDefinition.aria || ( blockDefinition.aria = {} );
     26                                        ( this.multiSelect = !!blockDefinition.multiSelect ) &&
     27                                                ( aria[ 'aria-multiselectable' ] = true );
     28                                        // Provide default role of 'listbox'.
     29                                        !aria.role && ( aria.role = 'listbox' );
     30                                       
    2331                                        // Call the base contructor.
    24                                         this.base( blockHolder );
    25 
    26                                         this.element.setAttribute( 'role', 'listbox' );
    27 
    28                                         this.multiSelect = !!multiSelect;
     32                                        this.base.apply( this, arguments );
    2933
    3034                                        var keys = this.keys;
  • CKEditor/branches/features/aria/_source/plugins/panel/plugin.js

    r4900 r4902  
    241241CKEDITOR.ui.panel.block = CKEDITOR.tools.createClass(
    242242{
    243         $ : function( blockHolder )
     243        $ : function( blockHolder, blockDefinition )
    244244        {
    245245                this.element = blockHolder.append(
     
    256256                                        }
    257257                                }) );
     258
     259                blockDefinition = blockDefinition || {};
     260                var aria = blockDefinition.aria;
     261                aria && this.element.setAttributes( aria );
    258262
    259263                this.keys = {};
  • CKEditor/branches/features/aria/_source/plugins/richcombo/plugin.js

    r4898 r4902  
    4545
    4646                panelDefinition.className = ( panelDefinition.className || '' ) + ' cke_rcombopanel';
     47                panelDefinition.block =
     48                {
     49                        multiSelect : panelDefinition.multiSelect,
     50                        aria : panelDefinition.aria
     51                };
    4752
    4853                this._ =
     
    206211                        if ( this._.panel )
    207212                                return;
    208 
     213                       
    209214                        var panelDefinition = this._.panelDefinition,
     215                                panelBlockDefinition = this._.panelDefinition.block,
    210216                                panelParentElement = panelDefinition.parent || CKEDITOR.document.getBody(),
    211217                                panel = new CKEDITOR.ui.floatPanel( editor, panelParentElement, panelDefinition ),
    212                                 list = panel.addListBlock( this.id, this.multiSelect ),
     218                                list = panel.addListBlock( this.id, panelBlockDefinition ),
    213219                                me = this;
    214220
  • CKEditor/branches/features/aria/_source/plugins/stylescombo/plugin.js

    r4858 r4902  
    2121                                        label : lang.label,
    2222                                        title : lang.panelTitle,
    23                                         voiceLabel : lang.voiceLabel,
    2423                                        className : 'cke_styles',
    25                                         multiSelect : true,
    2624
    2725                                        panel :
    2826                                        {
    2927                                                css : editor.skin.editor.css.concat( config.contentsCss ),
    30                                                 voiceLabel : lang.panelVoiceLabel
     28                                                multiSelect : true,
     29                                                aria : { 'aria-label' : lang.panelTitle, 'aria-describedby' : lang.panelVoiceLabel }
    3130                                        },
    3231
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy