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