Index: /CKEditor/branches/features/aria/_source/plugins/specialchar/dialogs/specialchar.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/specialchar/dialogs/specialchar.js	(revision 5039)
+++ /CKEditor/branches/features/aria/_source/plugins/specialchar/dialogs/specialchar.js	(revision 5040)
@@ -200,24 +200,31 @@
 				'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
 				'q','r','s','t','u','v','w','x','y','z',
-				'{','|','}','~','&euro;','&lsquo;','&rsquo;','&rsquo;','&ldquo;',
-				'&rdquo;','&ndash;','&mdash;','&iexcl;','&cent;','&pound;',
-				'&curren;','&yen;','&brvbar;','&sect;','&uml;','&copy;','&ordf;',
-				'&laquo;','&not;','&reg;','&macr;','&deg;','&plusmn;','&sup2;',
-				'&sup3;','&acute;','&micro;','&para;','&middot;','&cedil;',
-				'&sup1;','&ordm;','&raquo;','&frac14;','&frac12;','&frac34;',
-				'&iquest;','&Agrave;','&Aacute;','&Acirc;','&Atilde;','&Auml;',
-				'&Aring;','&AElig;','&Ccedil;','&Egrave;','&Eacute;','&Ecirc;',
-				'&Euml;','&Igrave;','&Iacute;','&Icirc;','&Iuml;','&ETH;',
-				'&Ntilde;','&Ograve;','&Oacute;','&Ocirc;','&Otilde;','&Ouml;',
-				'&times;','&Oslash;','&Ugrave;','&Uacute;','&Ucirc;','&Uuml;',
-				'&Yacute;','&THORN;','&szlig;','&agrave;','&aacute;','&acirc;',
-				'&atilde;','&auml;','&aring;','&aelig;','&ccedil;','&egrave;',
-				'&eacute;','&ecirc;','&euml;','&igrave;','&iacute;','&icirc;',
-				'&iuml;','&eth;','&ntilde;','&ograve;','&oacute;','&ocirc;',
-				'&otilde;','&ouml;','&divide;','&oslash;','&ugrave;','&uacute;',
-				'&ucirc;','&uuml;','&uuml;','&yacute;','&thorn;','&yuml;',
-				'&OElig;','&oelig;','&#372;','&#374','&#373','&#375;','&sbquo;',
-				'&#8219;','&bdquo;','&hellip;','&trade;','&#9658;','&bull;',
-				'&rarr;','&rArr;','&hArr;','&diams;','&asymp;'
+				'{','|','}','~','&euro;(EURO SIGN)','&lsquo;(LEFT SINGLE QUOTATION MARK)','&rsquo;(RIGHT SINGLE QUOTATION MARK)','&ldquo;(LEFT DOUBLE QUOTATION MARK)',
+				'&rdquo;(RIGHT DOUBLE QUOTATION MARK)','&ndash;(EN DASH)','&mdash;(EM DASH)','&iexcl;(INVERTED EXCLAMATION MARK)','&cent;(CENT SIGN)','&pound;(POUND SIGN)',
+				'&curren;(CURRENCY SIGN)','&yen;(YEN SIGN)','&brvbar;(BROKEN BAR)','&sect;(SECTION SIGN)','&uml;(DIAERESIS)','&copy;(COPYRIGHT SIGN)','&ordf;(FEMININE ORDINAL INDICATOR)',
+				'&laquo;(LEFT-POINTING DOUBLE ANGLE QUOTATION MARK)','&not;(NOT SIGN)','&reg;(REGISTERED SIGN)','&macr;(MACRON)','&deg;(DEGREE SIGN)','&plusmn;(PLUS-MINUS SIGN)','&sup2;(SUPERSCRIPT TWO)',
+				'&sup3;(SUPERSCRIPT THREE)','&acute;(ACUTE ACCENT)','&micro;(MICRO SIGN)','&para;(PILCROW SIGN)','&middot;(MIDDLE DOT)','&cedil;(CEDILLA)',
+				'&sup1;(SUPERSCRIPT ONE)','&ordm;(MASCULINE ORDINAL INDICATOR)','&raquo;(RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK)','&frac14;(VULGAR FRACTION ONE QUARTER)','&frac12;(VULGAR FRACTION ONE HALF)','&frac34;(VULGAR FRACTION THREE QUARTERS)',
+				'&iquest;(INVERTED QUESTION MARK)','&Agrave;(LATIN CAPITAL LETTER A WITH GRAVE)','&Aacute;(LATIN CAPITAL LETTER A WITH ACUTE)','&Acirc;(LATIN CAPITAL LETTER A WITH CIRCUMFLEX)','&Atilde;(LATIN CAPITAL LETTER A WITH TILDE)','&Auml;(LATIN CAPITAL LETTER A WITH DIAERESIS)',
+				'&Aring;(LATIN CAPITAL LETTER A WITH RING ABOVE)','&AElig;(LATIN CAPITAL LETTER AE)','&Ccedil;(LATIN CAPITAL LETTER C WITH CEDILLA)','&Egrave;(LATIN CAPITAL LETTER E WITH GRAVE)','&Eacute;(LATIN CAPITAL LETTER E WITH ACUTE)','&Ecirc;( LATIN CAPITAL LETTER E WITH CIRCUMFLEX)',
+				'&Euml;(LATIN CAPITAL LETTER E WITH DIAERESIS)','&Igrave;(LATIN CAPITAL LETTER I WITH GRAVE)','&Iacute;(LATIN CAPITAL LETTER I WITH ACUTE)','&Icirc;(LATIN CAPITAL LETTER I WITH CIRCUMFLEX)','&Iuml;(LATIN CAPITAL LETTER I WITH DIAERESIS)','&ETH;(LATIN CAPITAL LETTER ETH)',
+				'&Ntilde;(LATIN CAPITAL LETTER N WITH TILDE)','&Ograve;(LATIN CAPITAL LETTER O WITH GRAVE)','&Oacute;(LATIN CAPITAL LETTER O WITH ACUTE)','&Ocirc;(LATIN CAPITAL LETTER O WITH CIRCUMFLEX)','&Otilde;(LATIN CAPITAL LETTER O WITH TILDE)','&Ouml;(LATIN CAPITAL LETTER O WITH DIAERESIS)',
+				'&times;(MULTIPLICATION SIGN)','&Oslash;(LATIN CAPITAL LETTER O WITH STROKE)','&Ugrave;(LATIN CAPITAL LETTER U WITH GRAVE)','&Uacute;(LATIN CAPITAL LETTER U WITH ACUTE)','&Ucirc;(LATIN CAPITAL LETTER U WITH CIRCUMFLEX)','&Uuml;(LATIN CAPITAL LETTER U WITH DIAERESIS)',
+				'&Yacute;(LATIN CAPITAL LETTER Y WITH ACUTE)','&THORN;(LATIN CAPITAL LETTER THORN)','&szlig;(LATIN SMALL LETTER SHARP S)','&agrave;(LATIN SMALL LETTER A WITH GRAVE)','&aacute;(LATIN SMALL LETTER A WITH ACUTE)','&acirc;(LATIN SMALL LETTER A WITH CIRCUMFLEX)',
+				'&atilde;(LATIN SMALL LETTER A WITH TILDE)','&auml;(LATIN SMALL LETTER A WITH DIAERESIS)','&aring;(LATIN SMALL LETTER A WITH RING ABOVE)','&aelig;(LATIN SMALL LETTER AE)','&ccedil;(LATIN SMALL LETTER C WITH CEDILLA)','&egrave;(LATIN SMALL LETTER E WITH GRAVE)',
+				'&eacute;(LATIN SMALL LETTER E WITH ACUTE)','&ecirc;(LATIN SMALL LETTER E WITH CIRCUMFLEX)','&euml;(LATIN SMALL LETTER E WITH DIAERESIS)','&igrave;(LATIN SMALL LETTER I WITH GRAVE)','&iacute;(LATIN SMALL LETTER I WITH ACUTE)','&icirc;(LATIN SMALL LETTER I WITH CIRCUMFLEX)',
+				'&iuml;(LATIN SMALL LETTER I WITH DIAERESIS)','&eth;(LATIN SMALL LETTER ETH)','&ntilde;(LATIN SMALL LETTER N WITH TILDE)','&ograve;(LATIN SMALL LETTER O WITH GRAVE)','&oacute;(LATIN SMALL LETTER O WITH ACUTE)','&ocirc;(LATIN SMALL LETTER O WITH CIRCUMFLEX)',
+				'&otilde;(LATIN SMALL LETTER O WITH TILDE)','&ouml;(LATIN SMALL LETTER O WITH DIAERESIS)',
+				'&divide;(DIVISION SIGN)','&oslash;(LATIN SMALL LETTER O WITH STROKE)',
+				'&ugrave;(LATIN SMALL LETTER U WITH GRAVE)','&uacute;(LATIN SMALL LETTER U WITH ACUTE)',
+				'&ucirc;(LATIN SMALL LETTER U WITH CIRCUMFLEX)','&uuml;(LATIN SMALL LETTER U WITH DIAERESIS)',
+				'&uuml;(LATIN SMALL LETTER U WITH DIAERESIS)','&yacute;(LATIN SMALL LETTER Y WITH ACUTE)','&thorn;(LATIN SMALL LETTER THORN)','&yuml;(LATIN SMALL LETTER Y WITH DIAERESIS)',
+				'&OElig;(LATIN CAPITAL LIGATURE OE)',
+				'&oelig;(LATIN SMALL LIGATURE OE)','&#372;(LATIN CAPITAL LETTER W WITH CIRCUMFLEX)',
+				'&#374(LATIN CAPITAL LETTER Y WITH CIRCUMFLEX)','&#373(LATIN SMALL LETTER W WITH CIRCUMFLEX)',
+				'&#375;(LATIN SMALL LETTER Y WITH CIRCUMFLEX)','&sbquo;(SINGLE LOW-9 QUOTATION MARK)',
+				'&#8219;(SINGLE HIGH-REVERSED-9 QUOTATION MARK)','&bdquo;(DOUBLE LOW-9 QUOTATION MARK)','&hellip;(HORIZONTAL ELLIPSIS)',
+				'&trade;(TRADE MARK SIGN)','&#9658;(BLACK RIGHT-POINTING POINTER)','&bull;(BULLET)',
+				'&rarr;(RIGHTWARDS ARROW)','&rArr;(RIGHTWARDS DOUBLE ARROW)','&hArr;(LEFT RIGHT DOUBLE ARROW)','&diams;(BLACK DIAMOND SUIT)','&asymp;(ALMOST EQUAL TO)'
 			],
 		onLoad :  function()
@@ -232,5 +239,8 @@
 
 			var i = 0,
-					size = chars.length;
+					size = chars.length,
+					char,
+					charDesc;
+
 			while ( i < size )
 			{
@@ -239,6 +249,16 @@
 				for( var j = 0 ; j < columns ; j++, i++ )
 				{
-					if ( chars[ i ] )
-					{
+					if ( char = chars[ i ] )
+					{
+						charDesc = '';
+						char = char.replace( /\((.*?)\)/, function( match, desc )
+							{
+								charDesc = desc;
+								return '';
+							} );
+						
+						// Use character in case description unavailable.
+						charDesc = charDesc || char;
+
 						html.push(
 							'<td class="cke_dark_background" style="cursor: default">' +
@@ -247,11 +267,13 @@
 							' 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;' ), '"' +
+							' style="cursor: inherit; display: block; height: 1.25em; margin-top: 0.25em; text-align: center;" title="', CKEDITOR.tools.htmlEncode( charDesc ), '"' +
 							' onkeydown="CKEDITOR.tools.callFunction( ' + onKeydown + ', event, this )"' +
 							' onclick="CKEDITOR.tools.callFunction(' + onClick + ', this); return false;"' +
 							' tabindex="-1">' +
-							'<span id="cke_specialchar_label_' + i + '"' +
-							' style="margin: 0 auto;cursor: inherit">' +
-							chars[i] +
+							'<span style="margin: 0 auto;cursor: inherit">' +
+							char +
+							'</span>' +
+							'<span class="cke_label" id="cke_specialchar_label_' + i + '">' +
+							charDesc +
 							'</span></a>');
 					}
