Index: /CKEditor/branches/features/aria/_source/plugins/a11yhelp/dialogs/a11yhelp.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/a11yhelp/dialogs/a11yhelp.js	(revision 5062)
+++ /CKEditor/branches/features/aria/_source/plugins/a11yhelp/dialogs/a11yhelp.js	(revision 5063)
@@ -8,5 +8,119 @@
 	var lang = editor.lang.accessibilityHelp;
 
-	// Create the help list directly from lang file entries. 
+	// CharCode <-> KeyChar.
+	var keyMap =
+	{
+		8 : "BACKSPACE",
+		9 : "TAB" ,
+		13 : "ENTER" ,
+		16 : "SHIFT" ,
+		17 : "CTRL" ,
+		18 : "ALT" ,
+		19 : "PAUSE" ,
+		20 : "CAPSLOCK" ,
+		27 : "ESCAPE" ,
+		33 : "PAGE UP" ,
+		34 : "PAGE DOWN" ,
+		35 : "END" ,
+		36 : "HOME" ,
+		37 : "LEFT ARROW" ,
+		38 : "UP ARROW" ,
+		39 : "RIGHT ARROW" ,
+		40 : "DOWN ARROW" ,
+		45 : "INSERT" ,
+		46 : "DELETE" ,
+		91 : "LEFT WINDOW KEY" ,
+		92 : "RIGHT WINDOW KEY" ,
+		93 : "SELECT KEY" ,
+		96 : "NUMPAD  0" ,
+		97 : "NUMPAD  1" ,
+		98 : "NUMPAD  2" ,
+		99 : "NUMPAD  3" ,
+		100 : "NUMPAD  4" ,
+		101 : "NUMPAD  5" ,
+		102 : "NUMPAD  6" ,
+		103 : "NUMPAD  7" ,
+		104 : "NUMPAD  8" ,
+		105 : "NUMPAD  9" ,
+		106 : "MULTIPLY" ,
+		107 : "ADD" ,
+		109 : "SUBTRACT" ,
+		110 : "DECIMAL POINT" ,
+		111 : "DIVIDE" ,
+		112 : "F1" ,
+		113 : "F2" ,
+		114 : "F3" ,
+		115 : "F4" ,
+		116 : "F5" ,
+		117 : "F6" ,
+		118 : "F7" ,
+		119 : "F8" ,
+		120 : "F9" ,
+		121 : "F10" ,
+		122 : "F11" ,
+		123 : "F12" ,
+		144 : "NUM LOCK" ,
+		145 : "SCROLL LOCK" ,
+		186 : "SEMI-COLON" ,
+		187 : "EQUAL SIGN" ,
+		188 : "COMMA" ,
+		189 : "DASH" ,
+		190 : "PERIOD" ,
+		191 : "FORWARD SLASH" ,
+		192 : "GRAVE ACCENT" ,
+		219 : "OPEN BRACKET" ,
+		220 : "BACK SLASH" ,
+		221 : "CLOSE BRAKET" ,
+		222 : "SINGLE QUOTE"
+	};
+
+	// Modifier keys override.
+	keyMap[ CKEDITOR.ALT ] = 'ALT';
+	keyMap[ CKEDITOR.SHIFT ] = 'SHIFT';
+	keyMap[ CKEDITOR.CTRL ] = 'CTRL';
+
+	// Sort in desc.
+	var modifiers = [ CKEDITOR.ALT, CKEDITOR.SHIFT, CKEDITOR.CTRL ]
+
+	function representKeyStroke( keystroke )
+	{
+		var quotient,
+				modifier,
+				presentation = [];
+
+		for ( var i = 0; i < modifiers.length; i++ )
+		{
+			modifier = modifiers[ i ];
+			quotient = keystroke / modifiers[ i ];
+			if ( quotient > 1 && quotient <= 2 )
+			{
+				keystroke -= modifier;
+				presentation.push( keyMap[ modifier ] );
+			}
+		}
+
+		presentation.push( keyMap[ keystroke ]
+			|| String.fromCharCode( keystroke ) );
+
+		return presentation.join( '+' );
+	}
+
+	var variablesPattern = /\$\{(.*?)\}/g;
+	function replaceVariables( match, name )
+	{
+		var keystrokes = editor.config.keystrokes,
+				definition,
+				length = keystrokes.length;
+
+		for ( var i = 0; i < length; i++ )
+		{
+			definition = keystrokes[ i ];
+			if( definition[ 1 ] == name )
+				break;
+		}
+		return representKeyStroke( definition[ 0 ] );
+	}
+
+	// Create the help list directly from lang file entries.
 	function buildHelpContents()
 	{
@@ -30,5 +144,6 @@
 				var item = items[ j ],
 					itemHtml;
-				itemHtml = itemTpl.replace( '%1', item.name ).replace( '%2', item.legend );
+				itemHtml = itemTpl.replace( '%1', item.name ).
+					replace( '%2', item.legend.replace( variablesPattern, replaceVariables ) );
 				sectionHtml.push( itemHtml );
 			}
Index: Editor/branches/features/aria/_source/plugins/a11yhelp/lang/default.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/a11yhelp/lang/default.js	(revision 5062)
+++ 	(revision )
@@ -1,82 +1,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.setLang( 'a11yhelp', 'en',
-{
-	accessibilityHelp :
-	{
-		title : 'Accessibility Instructions',
-		legend :
-		[
-			{
-				name : 'General',
-				items :
-						[
-							{
-								name : 'Editor Toolbar',
-								legend: 'Press ALT + F10 to navigate to the toolbar; Move to next toolbar button with TAB or RIGHT ARROW; Move to previous button with  SHIFT+TAB or LEFT ARROW; Press SPACE or ENTER to trigger the toolbar button.'
-							},
-
-							{
-								name : 'Editor Element Pathbar',
-								legend : 'Press ALT + F10 to navigate to the elements pathbar; Move to next element button with TAB or RIGHT ARROW; Move to previous button with  SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.'
-							},
-
-							{
-								name : 'Editor Context Menu',
-								legend : 'Press SHIFT + F10 or CTRL + SHIFT + F10 or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW; Move to previous option with  SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option.' +
-										 'Open sub-menu of current option wtih SPACE or ENTER or RIGHT ARROW; Go back to parent menu item with ESC or LEFT ARROW;' +
-										 'Close context menu with ESC.'
-							},
-
-							{
-								name : 'Editor Dialog',
-								legend : 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog.' +
-										 'For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW; Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.'
-							},
-
-							{
-								name : 'Editor List Box',
-								legend : 'Inside a list-box, move to next list item with TAB OR DOWN ARROW; Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.'
-							}
-						]
-			},
-			{
-				name : 'Commands',
-				items :
-						[
-							{
-								name : ' Undo command',
-								legend : 'Press CTRL + Z'
-							},
-							{
-								name : ' Redo command',
-								legend : 'Press CTRL + Y or CTRL + SHIFT + Y'
-							},
-							{
-								name : ' Bold command',
-								legend : 'Press CTRL + B'
-							},
-							{
-								name : ' Italic command',
-								legend : 'Press CTRL + I'
-							},
-							{
-								name : ' Underline command',
-								legend : 'Press CTRL + U'
-							},
-							{
-								name : ' Link command',
-								legend : 'Press CTRL + L'
-							},
-							{
-								name : ' Toolbar Collapse command',
-								legend : 'Press ALT + -'
-							}
-						]
-			}
-		]
-	}
-});
Index: /CKEditor/branches/features/aria/_source/plugins/a11yhelp/lang/en.js
===================================================================
--- /CKEditor/branches/features/aria/_source/plugins/a11yhelp/lang/en.js	(revision 5063)
+++ /CKEditor/branches/features/aria/_source/plugins/a11yhelp/lang/en.js	(revision 5063)
@@ -0,0 +1,86 @@
+/*
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'en',
+{
+	accessibilityHelp :
+	{
+		title : 'Accessibility Instructions',
+		legend :
+		[
+			{
+				name : 'General',
+				items :
+						[
+							{
+								name : 'Editor Toolbar',
+								legend: 'Press ${toolbarFocus} to navigate to the toolbar; Move to next toolbar button with TAB or RIGHT ARROW; Move to previous button with  SHIFT+TAB or LEFT ARROW; Press SPACE or ENTER to trigger the toolbar button.'
+							},
+
+							{
+								name : 'Editor Element Pathbar',
+								legend : 'Press ${elementsPathFocus} to navigate to the elements pathbar; Move to next element button with TAB or RIGHT ARROW; Move to previous button with  SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.'
+							},
+
+							{
+								name : 'Editor Context Menu',
+								legend : 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW; Move to previous option with  SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option.' +
+										 'Open sub-menu of current option wtih SPACE or ENTER or RIGHT ARROW; Go back to parent menu item with ESC or LEFT ARROW;' +
+										 'Close context menu with ESC.'
+							},
+
+							{
+								name : 'Editor Dialog',
+								legend : 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog.' +
+										 'For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW; Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.'
+							},
+
+							{
+								name : 'Editor List Box',
+								legend : 'Inside a list-box, move to next list item with TAB OR DOWN ARROW; Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.'
+							}
+						]
+			},
+			{
+				name : 'Commands',
+				items :
+						[
+							{
+								name : ' Undo command',
+								legend : 'Press ${undo}'
+							},
+							{
+								name : ' Redo command',
+								legend : 'Press ${redo}'
+							},
+							{
+								name : ' Bold command',
+								legend : 'Press ${bold}'
+							},
+							{
+								name : ' Italic command',
+								legend : 'Press ${italic}'
+							},
+							{
+								name : ' Underline command',
+								legend : 'Press ${underline}'
+							},
+							{
+								name : ' Link command',
+								legend : 'Press ${link}'
+							},
+							{
+								name : ' Toolbar Collapse command',
+								legend : 'Press ${toolbarCollapse}'
+							},
+							{
+								name : ' Accessibility Help',
+								legend : 'Press ${a11yHelp}'
+							}
+						]
+			}
+		]
+	}
+});
