by Michael S. Kaplan, published on 2005/02/10 00:17 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2005/02/09/370291.aspx
In prior posts I had talked about shortcuts and accelerators, and especially the difficulties involved with the possible changes that will occur with them as keyboard layouts change, etc.
Well, tonight I was looking at Nadine Kano's book Developing International Software for Windows 95 and Windows NT for something else entirely and happened to find the following text here:
When you design functionality to allow the user to switch keyboard layouts, keep in mind that because the letters on keyboards vary from layout to layout, the keys used to generate shortcut-key combinations might also vary. For example, suppose a user selects French as his default keyboard layout. To sort a list on your application, he presses Ctrl+Z. When he changes the input language to Russian, which activates the Russian keyboard layout, he notices that his list isn't sorting. The Russian keyboard does not contain the letter Z, and the virtual-key codes generated by the Russian layout correspond to the virtual-key codes generated by the US layout, not the French layout. Because of this, the key that produces the letter Z on the French layout produces the virtual-key code for W on the Russian layout. (See the templates in Appendix Q to compare the US and French keyboard layouts.)
Microsoft usability tests have shown that most users would prefer to learn only one set of shortcut-key combinations. When parsing keyboard input, always parse shortcut-key combinations based on the user's default keyboard layout. In other words, first test to see whether the active keyboard layout is the user's default. If it is not, test the shortcut-key combinations against whichever virtual codes correspond to the correct combination on the user's default layout. In the example above, if the Russian keyboard layout is active and your application receives the virtual code for Ctrl+W, it should still activate the sort command. The most efficient way to handle this is to build tables at startup to map between the default keyboard layout and additional layouts installed on the user's system.
I have probably read that book 100 times and I never remembered that text!
But it does make a lot of sense. Assuming that their default keyboard layout matched the actual keys on their keyboard, you could use this knowledge to provide useful maps that matched the physical keys on their keyboards for shortcuts.
It would be interesting to see if this usability data still holds true, especially if it has fallen out of the combined knowledge of MS products (I had never heard it before from any of the program managers of many products that have seen grapple and heard tell of grappling with this problem)....
This post sponsored by "٪" (U+066a, ARABIC PERCENT SIGN)
# Dan on 10 Feb 2005 11:14 AM:
# Michael Kaplan on 10 Feb 2005 11:17 AM:
# Mark on 15 Feb 2005 7:27 AM:
# Michael Kaplan on 15 Feb 2005 10:25 AM: