by Michael S. Kaplan, published on 2010/03/29 07:01 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2010/03/29/9986413.aspx
I have almost succeeded in emptying out the Suggestion Box!
It has taken a while, but there are just a few left.
One recent one, from Andy:
I happened across the Tibetan keyboard layout and wondered about its design.
Each key has five letters assigned to it, two of which can be entered by pressing the plain key or combining it with Shift. So far so good.
Two more can be reached via dead keys m or Shift+m, the only Latin letter on the layout, which seems somewhat strange. To reach the last one, though, one has to hold Ctrl+Alt+Shift all at the same time while pressing the key. The layout has no AltGr, so yes, Ctrl+Alt really do have to be pressed separately.
This is bizarre. Why doesn't it make use of Ctrl+Alt without Shift? Why is there no AltGr? And why not use SGcaps rather than dead keys? And if dead keys are necessary, was there really no appropriate Tibetan symbol instead of Latin 'm'?
If you are a long-time regular reader, you may vaguely remember from way back early 2005 when I wrote Does MS pull new keyboard layouts out of their @!#$%? which referenced an FAQ entry that was written on the very topic the year before of where keyboard layouts come from:
Q - "I get the feeling Microsoft just makes up these keyboards by themselves. Why don’t they represent my language the way I expect them to?"
A - New keyboards for a market always get tested in their respective market. A great deal of research does go into the keyboards shipped with the system, with feedback from linguists, government officials, other internationalization experts, and local software providers. Often it is the case of Becker’s law applying (that is, for each expert, there is an equal and opposite expert), unfortunately.
Now this is a nice, dismissive answer, to be sure.
And it generically talks about all keyboard layouts, rather than giving specifics on any one of them in particular.
This layout, which came from some of the Tibetan scholars in China, was the first effort at producing a layout that we had to have in order to ship the locale. It was based at a struggling attempt to build a standard of some sort, one that I seriously doubt existed on any actual hardware keyboards at the time (or maybe since):
Now there is a lot in this keyboard that is weird to my line of thinking, which you can see for yourself if you load the existing keyboard up in MSKLC and validate it.
Like the fact that the "spacing" form of the dead keys aren't included as the last item in the dead key tables, or the fact that the caps lock is defined for all of the shift state entries despite the fact that there isn't a case variation there.
Though it isn't like you would want an m or an M in your Tibetan, and perhaps defining the CAPS LOCK that way lets you switch without using the shift key so much (though defining it that way for the Alt+Control -- Shift+Alt+Control case as well might have been nice. As Andy pointed out those are a pain to type!).
This does partially work around one of Andy's actual concerns, about the pain in typing some of the characters. Though the lack of documentation about the "feature" makes it kind of unusable.
The complete lack of AltGr characters defined was on purpose and due to the general problem I first mentioned in "To start press the ALTGR key." Hmm... where's the ALTGR key? and have discussed many times since -- the way the helpful shortcuts in Word will make certain keystrokes untypeable. Those folks in China had been testing their layout in Word and wanted to avoid that problem. With a vengeance!
Their goal was to provide six "shift states", though two of them were being provided via the dead key mechanism.
I can't claim it as a keyboard I would be happy with myself (I wasn't at the time, either!), but I was not the one who needed to be made happy here.
The keyboard was largely taken as is, in any case. Since we didn't have anything else available to use, and had to have something. Tibetan was one of the specific languages listed in that very first phase of GB 18030 support as a requirement, and when in doubt about requirements one can seldom go wrong by a government's line of thinking if you follow the information given to you by some part of the government....
Now they did a bunch of testing later and there was even interest in a slightly different layout being put in, something like this:
Well they moved from the m to the h and shifted some keys around based on some usage data in text, but it was mostly the same layout.
But they hadn't provided a .KLC file (just a bunch of tables of information) and in the end no one pushed it further.
In fact neither ever seemed to make it so far as being defined as a standard anywhere. I'm just saying....
I can't say I would have done it any differently had I been them - the delight of building your own keyboard from scratch is usually over by the time you have defined just a few keys. Building a whole layout can be torture (in fact it was a mild amount of torture for me to build this mock-up for the screen shots above, only slightly mitigated by the Perl script I wrote that used those tables of data!).
Mine validates, at least. But theirs might not have since I did not do the caps lock enabling stuff and they might have rather had that part done now that I think about it.
Since it is shipping precisely nowhere I didn't want to jump up to perfect it for the sake of some screen shots. :-)
There is also the fact that the space key was not designed on either layout to type anything but a space (U+0020), as opposed to some other desired characters instead:
This is something that standards developed for other Tibetan script languages like Dzongka use as a matter of course (something we worked to fix in MSKLC 1.4 to allow these other characters used for SPACE-like actions to be used).
I do not have a layout with the Dzongka keyboard to add those screen shots, so you'll have to use your imagination.
In the end, I don't think either the "m" layout we shipped or the "h" layout we didn't is particularly useful for a native Tibetan user - in addition to all of the other problems described above including the lack of typical native spaces, the complete lack of punctuation symbols pretty much requires one to use multiple keyboard layouts to do even the simplest things on the computer.
It isn't a keyboard I would be satisfied with if it were my language, even within the framework of what simple keyboards on Windows can do.
But it is good enough for government work....