Index: /CKEditor/branches/features/aria/_source/lang/en.js
===================================================================
--- /CKEditor/branches/features/aria/_source/lang/en.js	(revision 4901)
+++ /CKEditor/branches/features/aria/_source/lang/en.js	(revision 4902)
@@ -531,4 +531,5 @@
 	{
 		label : 'Styles',
+		panelTitle : 'Formatting Styles',
 		panelVoiceLabel : 'Select a style',
 		panelTitle1 : 'Block Styles',
Index: /CKEditor/branches/features/aria/_source/plugins/floatpanel/plugin.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/floatpanel/plugin.js	(revision 4901)
+++ /CKEditor/branches/features/aria/_source/plugins/floatpanel/plugin.js	(revision 4902)
@@ -238,28 +238,13 @@
 								} );
 
+							// Set the panel frame focus, so the blur event gets fired.
+							block.element.focus();
+							// We need this get fired manually because of unfired focus() function.
+							this.allowBlur( true );
+
 						} , this );
 
 						panel.isLoaded ? panelLoad() : panel.onLoad = panelLoad;
 
-						// Set the panel frame focus, so the blur event gets fired.
-						CKEDITOR.tools.setTimeout( function()
-							{
-								if ( definition.voiceLabel )
-								{
-									if ( CKEDITOR.env.gecko )
-									{
-										var container = iframe.getParent();
-										container.setAttribute( 'role', 'region' );
-										container.setAttribute( 'title', definition.voiceLabel );
-										iframe.setAttribute( 'role', 'region' );
-										iframe.setAttribute( 'title', ' ' );
-									}
-								}
-
-								block.element.focus();
-								// We need this get fired manually because of unfired focus() function.
-								this.allowBlur( true );
-
-							}, 0, this);
 					}, 0, this);
 				this.visible = 1;
Index: /CKEditor/branches/features/aria/_source/plugins/font/plugin.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/font/plugin.js	(revision 4901)
+++ /CKEditor/branches/features/aria/_source/plugins/font/plugin.js	(revision 4902)
@@ -31,12 +31,10 @@
 				label : lang.label,
 				title : lang.panelTitle,
-				voiceLabel : lang.voiceLabel,
 				className : 'cke_' + ( styleType == 'size' ? 'fontSize' : 'font' ),
-				multiSelect : false,
-
 				panel :
 				{
 					css : editor.skin.editor.css.concat( config.contentsCss ),
-					voiceLabel : lang.panelVoiceLabel
+					multiSelect : false,
+					aria : { 'aria-label' : lang.panelTitle, 'aria-describedby' : lang.panelVoiceLabel }
 				},
 
Index: /CKEditor/branches/features/aria/_source/plugins/format/plugin.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/format/plugin.js	(revision 4901)
+++ /CKEditor/branches/features/aria/_source/plugins/format/plugin.js	(revision 4902)
@@ -28,12 +28,10 @@
 				label : lang.label,
 				title : lang.panelTitle,
-				voiceLabel : lang.voiceLabel,
 				className : 'cke_format',
-				multiSelect : false,
-
 				panel :
 				{
 					css : editor.skin.editor.css.concat( config.contentsCss ),
-					voiceLabel : lang.panelVoiceLabel
+					multiSelect : false,
+					aria : { 'aria-label' : lang.panelTitle, 'aria-describedby' : lang.panelVoiceLabel }
 				},
 
Index: /CKEditor/branches/features/aria/_source/plugins/listblock/plugin.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/listblock/plugin.js	(revision 4901)
+++ /CKEditor/branches/features/aria/_source/plugins/listblock/plugin.js	(revision 4902)
@@ -19,12 +19,16 @@
 				base : CKEDITOR.ui.panel.block,
 
-				$ : function( blockHolder, multiSelect )
+				$ : function( blockHolder, blockDefinition )
 				{
+					blockDefinition = blockDefinition || {};
+
+					var aria = blockDefinition.aria || ( blockDefinition.aria = {} );
+					( this.multiSelect = !!blockDefinition.multiSelect ) &&
+						( aria[ 'aria-multiselectable' ] = true );
+					// Provide default role of 'listbox'.
+					!aria.role && ( aria.role = 'listbox' );
+					
 					// Call the base contructor.
-					this.base( blockHolder );
-
-					this.element.setAttribute( 'role', 'listbox' );
-
-					this.multiSelect = !!multiSelect;
+					this.base.apply( this, arguments );
 
 					var keys = this.keys;
Index: /CKEditor/branches/features/aria/_source/plugins/panel/plugin.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/panel/plugin.js	(revision 4901)
+++ /CKEditor/branches/features/aria/_source/plugins/panel/plugin.js	(revision 4902)
@@ -241,5 +241,5 @@
 CKEDITOR.ui.panel.block = CKEDITOR.tools.createClass(
 {
-	$ : function( blockHolder )
+	$ : function( blockHolder, blockDefinition )
 	{
 		this.element = blockHolder.append(
@@ -256,4 +256,8 @@
 					}
 				}) );
+
+		blockDefinition = blockDefinition || {};
+		var aria = blockDefinition.aria;
+		aria && this.element.setAttributes( aria );
 
 		this.keys = {};
Index: /CKEditor/branches/features/aria/_source/plugins/richcombo/plugin.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/richcombo/plugin.js	(revision 4901)
+++ /CKEditor/branches/features/aria/_source/plugins/richcombo/plugin.js	(revision 4902)
@@ -45,4 +45,9 @@
 
 		panelDefinition.className = ( panelDefinition.className || '' ) + ' cke_rcombopanel';
+		panelDefinition.block =
+		{
+			multiSelect : panelDefinition.multiSelect,
+			aria : panelDefinition.aria
+		};
 
 		this._ =
@@ -206,9 +211,10 @@
 			if ( this._.panel )
 				return;
-
+			
 			var panelDefinition = this._.panelDefinition,
+				panelBlockDefinition = this._.panelDefinition.block,
 				panelParentElement = panelDefinition.parent || CKEDITOR.document.getBody(),
 				panel = new CKEDITOR.ui.floatPanel( editor, panelParentElement, panelDefinition ),
-				list = panel.addListBlock( this.id, this.multiSelect ),
+				list = panel.addListBlock( this.id, panelBlockDefinition ),
 				me = this;
 
Index: /CKEditor/branches/features/aria/_source/plugins/stylescombo/plugin.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/stylescombo/plugin.js	(revision 4901)
+++ /CKEditor/branches/features/aria/_source/plugins/stylescombo/plugin.js	(revision 4902)
@@ -21,12 +21,11 @@
 					label : lang.label,
 					title : lang.panelTitle,
-					voiceLabel : lang.voiceLabel,
 					className : 'cke_styles',
-					multiSelect : true,
 
 					panel :
 					{
 						css : editor.skin.editor.css.concat( config.contentsCss ),
-						voiceLabel : lang.panelVoiceLabel
+						multiSelect : true,
+						aria : { 'aria-label' : lang.panelTitle, 'aria-describedby' : lang.panelVoiceLabel }
 					},
 
