Sticky keys vs. Reading Order

by Michael S. Kaplan, published on 2005/11/04 06:01 -08:00, original URI: http://blogs.msdn.com/michkap/archive/2005/11/04/489013.aspx


There are many times on this blog where I have talked about how accessibility features and internationalization features work together to create a better user experience.

It can sometimes happen even if no actual attempt to work together was taking place!

There are just many times that different groups can, in trying to help customers, help each other at the same time.

It is a great thing to have happen and notice and any time I see such a thing, I feel gratified to be a part of it and proud that I work on the coolest and most widespread operating system on the planet.

The subject of today's post is not going to be one of those times.

We are basically looking at two features:

STICKY KEYS -- I always liken Sticky Keys to a wizard. On an XP or Server 2003 machine, just hit the SHIFT key five times in rapid succession to have it appear:

You can hit OK to just use the defaults or Cancel if you got there accidentally or that settings button to specially configure how the feature works:

    

It is a very useful feature if you are someone who has trouble with deft keystrokes holding down multiple keys, a not at all uncommon issue for many people. It pops up in intuitive circumstances with a great way to turn it on or off.

Reading Order - If you richt click in Notepad (XP or later) you will see a menu option for it:

Now you may not really care about the feature (if you do not use RTL scripts). But if you do, it can make all of the difference in the world, basically

       versus     

It lets you let the application know whether to expect that the next text is going to be right to left or left to right.

To make the feature easier to use, there are keyboard shortcuts that help make that same switch happen:

Now this feature is not always enabled; basically it is enabled any time you have complex script support installed in Regional and Language Options (the first checkbox in the middle tab).

Note that the underlying text representation does not change, it is a display issue. But a really important display issue for the intuitive usage of RTL scripts. You only have to work with the cursor and the neutral characters slipping from side to side while you type for a few minutes to know how annoying it can be to type RTL text in LTR contexts and vice versa.

So, what is the problem, you say?

Well, the problem is that there is only one way to make these two keyboarding features work well together, and that way is poorly. Even though the accessibility feature has reportedly been around since Windows 98 and the Reding Order keyboard shortcuts have been around in some form since Windows 95.

Like the time that the only way to make the two children on the playground happy is to separate them and not let them play together, these two useful features are quite simply not able to work together, at all.

Now I do have to say that in terms of the best UI to help people get in and out, the best way to configure, and the best way to understand when the feature is active, Sticky Keys wins, hands down. It is clearly the more mature of the two children. Because the Reading Order change shortcuts have no UI configuration, are tied to a feature that may be enabled only to get better font linking for Armenian and thus not even be understood, and provides no way to turn off the feature short of uninstalling complex script support.

So they are both being brats, but clearly we know which one is worse.

People are now talking about how to make this situation better in Vista (especially important since the 'Complrex Script' support is always enabled, which promotes what is sometimes unintuitively annoying into what an be always so!), and it is unfortunately not as easy as it ought to be, since although Sticky Keys info can be get/set via SystemParametersInfo with the SPI_GETSTICKYKEYS and SPI_SETSTICKYKEYS uiAction parameters and are part of a global system mechanism, the RTL Reading Order shortcuts have no real programmatic interface and are actually separately implemented by the applications like Notepad and Word that use them, and no easy way to hook into the behavior to change it on a global scale.

Just as in the life, the worst brat is the hardest one to control!

At the same time, it is important not to punish the customer who may need one feature or the other just because these two cannot work well together.

Anyway, we're working on it. Perhaps, once a solution is arrived upon, it is something that could be ported to the downlevel platforms that are also affected.

In the meantime, you will have to make your choice as to which feature you want and then not use the other.

Or, if you are able to, you may choose to send both of the brats to their room without supperr and not really give either one the chance to perform....

 

This post brought to you by "ױ" (U+05f1, a.k.a. HEBREW LIGATURE YIDDISH VAV YOD)


# LarryOsterman on Friday, November 04, 2005 9:49 AM:

Awww, you didn't mention my favorite part about stickykeys - the top checkbox in the notification box.

I spent quite literally MONTHS figuring out how to get that to work for Vista (on ia64).

# Michael S. Kaplan on Friday, November 04, 2005 10:15 AM:

Ok, maybe it is not *entirely* intuitive.... :-)

# Rick Scott on Friday, November 04, 2005 10:47 AM:

Oh I see you are talking about one of the most frustrating things for me on all windows versions: the kb shortcut to StickyKeys.

Its always enabled by default, and the vast majority of users that I have talked to have seen it pop up, only to be confused and then frustrated. Sometimes, you just have to mash a button in frustration (or just because you want) and the shift key seems the most harmless...or a video game lets you map your own buttons and you like using the right shift key for FIRE because its right next to the arrow keys.

Either way, that shortcut needs to be turned off by default.

The other shortcut I haven't seen (en-us only here), but it looks like it would kill some well-used functionality: select everything from cursor to the end. If I want to select some text from the cursor to the EOF, I will simply hold down shift, then hit CTRL + END. Looks like this feature would mess me up before I could get to the END key though...

# Ryan on Friday, November 04, 2005 12:05 PM:


_Please_ ensure for Vista all these stealth key commands are properly tested for full screen games.

I've never had Sticky Keys pop-up mid game (thankfully), but I did have a similiarly weird issue that took a long time to debug.

Basically I'd be playing an FPS, and all of a sudden my keyboard would go crazy (some keys would be mapped to different keys, some would still be the same). Quitting the game usually brought me back to my desktop with every key magically working again (though sometimes they would stay re-mapped).

Anyways, one time when the keys _did_ stay remapped I noticed the problem. I have the Japanese IME installed, and sure enough the little blue box said "JP" instead of "EN", so I finally tracked down the issue:

The default keyboard command to switch languages is LShift+lAlt. In most FPS, I use LAlt for duck and LShift for run. If, for some reason, I would quickly change from ducking to running, both keys would be down for a fraction of second, and the language would switch. Very few games handle this correctly, so all of a sudden keys were 'remapped'. I'm still not sure why they mapped the way they did (Japanese keyboards are QWERTY, and every key still worked, but would emit a different ASCII code.. I can only imagine this has something to do with the way the IME auto-completes, say, the 't' key into the kana for "ta", etc.).

Anyways, if you want to see what I'm talking about, install the IME, install a FPS (Unreal Tournament 2004 has the issue), hit LALt+LShift and see your keyboard go crazy.

# Mihai on Friday, November 04, 2005 12:42 PM:

"RTL Reading Order shortcuts ... implemented by the applications like Notepad and Word that use them"

Correction: these are handled by some Windows standard controls and by Wordpad. Word 2003 with default settings does not care about them at all.

Standard Edit, ComboBox, IPAddress controls in all applications handle this.

But this does not mean I have a solution :-)

# Michael S. Kaplan on Friday, November 04, 2005 1:13 PM:

Mihai -- it works in Word 2003 for me, and I never did anything special. There are application and control specific behaviors at work here....

# Jeff Parker on Friday, November 04, 2005 1:24 PM:

I agree Sticky keys to me are the most frustrating thing in the enter OS, is there a way to permanently shut those keyboard shortcuts off? I mean permantly forever, never want to see it every again. I have looked around before and gone through the screens, searched google never found a way to just disable it all together. I find it extremely annoying, most newer games seem to disable it but older games one where you use ctrl to fire alt to strife or shift to run. Here you are in the middle of a huge gun fight in doom your hand just mashing the control key laying wasted to everything in site and boom game shuts down, and there is that @##$& box Would you like to use Sticky Key and minimizes and usually you can't get it back up and if you do your out of ammo or dead. Do I want to use sticky keys no I want to use the programmer that put that annoying box in there as target practice in doom. Extremely frustrating. Yes so you go to setting you disable sticky keys, this only seems to disable for a while. Some time later this all happens again. In reality once I get through the game that does this I never play that game again because of sitcky keys. Not the game developers fault. I blame the sticky keys. Bad, bad, bad sticky keys. If I could find a way to permanently rip that code out of my machine and never see it again I would. Also would push out shtting that off to users that is really a high volume of calls to our help desk as well. People just get this pop up asking them about sticky keys first thing most people call for is they got this message aparently that have a stuck key on thier keyboard and need someone to help them come figure out which one or that unexpected popup blew them out of Citrix or something now the help desk had to go close out thier stuck sessions. I realize the benifit of them as we do have a one armed guy that uses them all the time. But for the rest of the people with two hands it is a huge anoyance.

# Maurits on Friday, November 04, 2005 7:57 PM:

> is there a way to permanently shut those keyboard shortcuts off?

Yeah, check the box in the window that pops up when you turn StickyKeys on:

[ ] Turn off keyboard shortcut for this accessibility feature

It's also in the Accessibility Options control panel...

You mentioned that it keeps getting "unset"... hmmm... Windows Update resetting it, maybe?

What gets me is that when StickyKeys comes on, it doesn't use the regular system audio to make it's distinctive noise. It uses the PC speaker. Probably via beep.sys.

This is particularly annoying for me, because I work next to other people and I use headphones... so they can't hear my music, but they do hear StickyKeys' little chirp.

# Moz on Saturday, November 05, 2005 2:07 AM:

As a complete geek, my interest in RTL is purely in the tradition of Da Vinci - I'd like to get RTL English text and fonts :)

# Nick Lamb on Saturday, November 05, 2005 6:48 AM:

OK / Cancel / Settings

Classic bad UI. For this dialog to do any good the user has to stop what they're doing (which was something frantic, because otherwise they'd not be banging on a single key over and over) and read the full text of the dialog, decide what it means for them, and then make the right choice.

Worse, the right choice is actually Settings, even though users will correctly suspect that it leads to a confusing dialog box and doesn't really do what the previous dialog said it might. If they choose Cancel they'll be right back to this dialog in five clicks time, and if they choose OK their keyboard malfunctions.

I've seen plenty of users blunder into this usability disaster, and I always assumed it was an optional extra, something they should never have installed. If it's actually a core OS feature I guess that makes it even more of a disaster. Usability destroyed in the name of its alter ego accessibility.

Moz, RTL is quite different from mirror-writing. A few characters may have an RTL-alternate appearance because their meaning is related to the flow of text but alphabetic characters do not. siht ekil skool gnitirw LTR. Even if you find Leonardo's hand-writing hard to read you can view his numerical calculations in a mirror and see that they're immediately intelligible.

# Jonathan on Sunday, November 06, 2005 3:21 AM:

1. The reading-order shortcuts are absolutely necessary for me - I use them every day to switch reading order on Hebrew docs, on Notepad, IE, Word... I never realized there was a right-click option to do that (well, in Word it's on the toolbar, so I did notice that).

2. The 5-Shift StickyKeys is annoying - I also got out of a game where I fire using Shift (the most convenient key for me!). I did disable it, and never got this problem again.

3. Before anyone asks: The Hebrew text says: "I mean, why would you want to be here at all?"

# Gabe on Tuesday, November 08, 2005 9:06 AM:

You know, every so often I'll be doing something in Notepad, my fingers will slip, and I'll end up with a RTL window. I don't have anything complex installed and Notepad doesn't have any bidi options on my context menu, so the only way I could figure out to fix it is to close the program.

Any idea how it's happening in such rare circumstances?

# Michael S. Kaplan on Tuesday, November 08, 2005 10:41 AM:

Next time it happens, try using the reading order shortcuts to undo it and see what happens.... :-)

# Josh on Wednesday, March 19, 2008 9:42 PM:

I'm going to have to agree with Jeff Parker on this one:

I got to this blog by googling "Kill sticky keys forever", mostly because I was frustrated and running out of search phrase ideas that would find the magic bullet. Sticky keys is one of the banes of my life. Whenever I disable it it comes back, and it's forever causing problems and generally making life difficult.

If there were any way to rip it out of Windows, *even at the cost of all the other accessibility options* I would do it. I don't need any of the accessibility options, and I hate Sticky Keys that much.

-josh


referenced by

2006/02/20 Mirroring and Keyboards are complicated

2006/01/19 What are directional marks -- chumps who point?

go to newer or older post, or back to index or month or day