});\r
\r
// Build the HTML for the smiley images table.\r
+ var labelId = 'smiley_emtions_label' + CKEDITOR.tools.getNextNumber();\r
var html =\r
[\r
'<div>' +\r
- '<span id="smiley_emtions_label" class="cke_voice_label">' + lang.options +'</span>',\r
- '<table role="listbox" aria-labelledby="smiley_emtions_label" style="width:100%;height:100%" cellspacing="2" cellpadding="2"',\r
+ '<span id="' + labelId + '" class="cke_voice_label">' + lang.options +'</span>',\r
+ '<table role="listbox" aria-labelledby="' + labelId + '" style="width:100%;height:100%" cellspacing="2" cellpadding="2"',\r
CKEDITOR.env.ie && CKEDITOR.env.quirks ? ' style="position:absolute;"' : '',\r
'><tbody>'\r
];\r
if ( i % columns === 0 )\r
html.push( '<tr>' );\r
\r
+ var smileyLabelId = 'cke_smile_label_' + i + '_' + CKEDITOR.tools.getNextNumber();\r
html.push(\r
'<td class="cke_dark_background cke_hand cke_centered" style="vertical-align: middle;">' +\r
'<a href="javascript:void(0)" role="option"',\r
' aria-posinset="' + ( i +1 ) + '"',\r
' aria-setsize="' + size + '"',\r
- ' aria-labelledby="cke_smile_label_' + i + '"',\r
+ ' aria-labelledby="' + smileyLabelId + '"',\r
' class="cke_smile" tabindex="-1" onkeydown="CKEDITOR.tools.callFunction( ', onKeydown, ', event, this );">',\r
'<img class="hand" title="', config.smiley_descriptions[i], '"' +\r
' cke_src="', CKEDITOR.tools.htmlEncode( config.smiley_path + images[ i ] ), '" alt="', config.smiley_descriptions[i], '"',\r
// IE BUG: Below is a workaround to an IE image loading bug to ensure the image sizes are correct.\r
( CKEDITOR.env.ie ? ' onload="this.setAttribute(\'width\', 2); this.removeAttribute(\'width\');" ' : '' ),\r
'>' +\r
- '<span id="cke_smile_label_' + i + '" class="cke_voice_label">' +config.smiley_descriptions[ i ] + '</span>' +\r
+ '<span id="' + smileyLabelId + '" class="cke_voice_label">' +config.smiley_descriptions[ i ] + '</span>' +\r
'</a>',\r
'</td>' );\r
\r