Index: /CKEditor/branches/features/aria/_source/plugins/smiley/dialogs/smiley.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/smiley/dialogs/smiley.js	(revision 5016)
+++ /CKEditor/branches/features/aria/_source/plugins/smiley/dialogs/smiley.js	(revision 5017)
@@ -134,10 +134,13 @@
 	var html =
 	[
-		'<table cellspacing="2" cellpadding="2"',
+		'<div>' +
+		'<span id="smiley_emtions_label" class="cke_label">' + lang.smileyEmotionsLabel +'</span>',
+		'<table role="listbox" aria-labelledby="smiley_emtions_label" style="width:100%;height:100%" cellspacing="2" cellpadding="2"',
 		CKEDITOR.env.ie && CKEDITOR.env.quirks ? ' style="position:absolute;"' : '',
 		'><tbody>'
 	];
 
-	for ( i = 0 ; i < images.length ; i++ )
+	var size = images.length;
+	for ( i = 0 ; i < size ; i++ )
 	{
 		if ( i % columns === 0 )
@@ -146,5 +149,9 @@
 		html.push(
 			'<td class="cke_dark_background cke_hand cke_centered" style="vertical-align: middle;">' +
-				'<a href="javascript:void(0)" role="button" aria-labelledby="cke_smile_label_' + i + '" class="cke_smile" tabindex="-1" onkeydown="CKEDITOR.tools.callFunction( ', onKeydown, ', event, this );">',
+				'<a href="javascript:void(0)" role="option"',
+					' aria-posinset="' + ( i +1 ) + '"',
+					' aria-setsize="' + size + '"',
+					' aria-labelledby="cke_smile_label_' + i + '"',
+					' class="cke_smile" tabindex="-1" onkeydown="CKEDITOR.tools.callFunction( ', onKeydown, ', event, this );">',
 					'<img class="hand" title="', config.smiley_descriptions[i], '"' +
 						' cke_src="', CKEDITOR.tools.htmlEncode( config.smiley_path + images[ i ] ), '" alt="', config.smiley_descriptions[i], '"',
@@ -168,5 +175,5 @@
 	}
 
-	html.push( '</tbody></table>' );
+	html.push( '</tbody></table></div>' );
 
 	var smileySelector =
@@ -180,5 +187,5 @@
 		focus : function()
  		{
-			var firstSmile = this.getElement().getChild( [0, 0, 0, 0] );
+			var firstSmile = this.getElement().getElementsByTag( 'a' ).getItem( 0 );
 			firstSmile.focus();
  		},
Index: /CKEditor/branches/features/aria/_source/plugins/specialchar/dialogs/specialchar.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/specialchar/dialogs/specialchar.js	(revision 5016)
+++ /CKEditor/branches/features/aria/_source/plugins/specialchar/dialogs/specialchar.js	(revision 5017)
@@ -10,5 +10,6 @@
 	 * @type {CKEDITOR.dialog}
 	 */
-	var dialog;
+	var dialog,
+			lang = editor.lang.specialChar;
 	var onChoice = function( evt )
 	{
@@ -184,5 +185,5 @@
 
 	return {
-		title : editor.lang.specialChar.title,
+		title : lang.title,
 		minWidth : 430,
 		minHeight : 280,
@@ -225,8 +226,12 @@
 				chars = this.definition.chars;
 
-			var html = [ '<table style="width: 320px; height: 100%; border-collapse: separate;" align="center" cellspacing="2" cellpadding="2" border="0">' ];
-
-			var i = 0 ;
-			while ( i < chars.length )
+			var html = [ '<span id="specialchar_table_label" class="cke_label">' + lang.charsTableLabel +'</span>' +
+						 			'<table role="listbox" aria-labelledby="specialchar_table_label"' +
+						 			' style="width: 320px; height: 100%; border-collapse: separate;"' +
+						 			' align="center" cellspacing="2" cellpadding="2" border="0">' ];
+
+			var i = 0,
+					size = chars.length;
+			while ( i < size )
 			{
 				html.push( '<tr>' ) ;
@@ -238,9 +243,13 @@
 						html.push(
 							'<td class="cke_dark_background" style="cursor: default">' +
-							'<a href="javascript: void(0);" style="cursor: inherit; display: block; height: 1.25em; margin-top: 0.25em; text-align: center;" title="', chars[i].replace( /&/g, '&amp;' ), '"' +
+							'<a href="javascript: void(0);" role="option"' +
+							' aria-posinset="' + ( i +1 ) + '"',
+							' aria-setsize="' + size + '"',
+							' aria-labelledby="cke_specialchar_label_' + i + '"',
+							' style="cursor: inherit; display: block; height: 1.25em; margin-top: 0.25em; text-align: center;" title="', chars[i].replace( /&/g, '&amp;' ), '"' +
 							' onkeydown="CKEDITOR.tools.callFunction( ' + onKeydown + ', event, this )"' +
 							' onclick="CKEDITOR.tools.callFunction(' + onClick + ', this); return false;"' +
 							' tabindex="-1">' +
-							'<span style="margin: 0 auto;cursor: inherit">' +
+							'<span id="cke_specialchar_label_' + i + 'style="margin: 0 auto;cursor: inherit">' +
 							chars[i] +
 							'</span></a>');
@@ -280,5 +289,5 @@
 								focus : function()
 								{
-									var firstChar = this.getElement().getChild( [0, 0, 0, 0, 0] );
+									var firstChar = this.getElement().getElementsByTag( 'a' ).getItem( 0 );
 									setTimeout(function()
 									{
