Monday, November 05, 2007 12:01 AM
Michael S. Kaplan
Keyboards: plug-and-play, not plug-and-communicate-what-they-look-like
I have talked a whole bunch of times about the disconnect between the hardware side of keyboards and the software "layout" side of them. Like in Keyboards: hardware vs. software, for example.
If I am in Windows and I am looking at the device manager, I can see an item there for my keyboard:

(ignore that disabled Wireless adapter, I just didn't need it enabled just then; it is not related!)
and if I then plug in a Dell USB keyboard I have lying around (I grabbed it from work for reasons I will explain momentarily) it then adds another entry to the list:

Now you'll see no details are available on what kind of layout the hardware has. Even the 101/102 key entry for my laptop (a keyboard which I guarantee you does not have either 101 or 102 keys!) shows the problem.
The keyboards do not, as a rule, communicate about what they are to the computer. Even that USB layout is clearly plug-and-play, and not really very plug-and-communicate-what-it-looks-like.
The initial keyboard is figured out through a very complex mechanism of choosing based on OEM decisions (the OEM knows what hardware it bundles, so it just makes sure that is the starting selection).
This can occasionally lead to problems if there is no good information for particular hardware items (the Japanese 109-key hardware is a great example of a device that doesn't work all that well in Windows due to missing information on it, a fact that has apparently bitten an OEM or two while trying to put together the hardware to ship).
In the end, you can change the setting, but it isn't easy so unless you know the answer. There are a lot of choices....

I have to admit I like what Apple does here a bit more. :-)
If you plug in that same USB keyboard to a MacBook Pro running OS X 10.5 like mine, Leopard knows it has the same problem of identification of the keyboard hardware:

This wizard then asks a fews clarifying questions, such as this one:

or this other one:

and then it eventually decides it knows:

Some time next week I need to try out the tons of different language keyboards I have in my office to see if there are other questions I can make it ask! :-)
Anyway, this just strikes me as a much easier/better answer than forcing someone to know the exact hardware in question, right?
Kudos to Apple on this one, a much more usable solution for that whole out-of-the-box experience....
This post brought to you by ␏ (U+240f, a.k.a. SYMBOL FOR SHIFT IN)