incite insight   iconoclastic synchronicity  

Friday, March 13, 2009

Graphical User Input on Crack

This was posted to Slashdot in response to an article about Mozilla possibly losing some of its financial support from Google now that Google has chosen to get behind Chrome. It ultimately hit upon one of my pet peeves of Windowing interfaces, and that is interrupting the user while he's typing with new windows and input focus changes. The curmudgeon in me is out in force in this one.

"BZ" wrote:

Popups on typing is an interesting issue. Right now, popups are only allowed during the handling of certain user events, and the ones relevant here would be: * keypress of a return key * keyup of a space key (needed for handling space being used to trigger buttons) * input I'm not sure why input is on the list; that should probably be revisited. Is there a bug filed on this, or were you expecting people to fix your #1 beef without knowing anything about it?

It would appear, given the number of applications that have this problem, that it's not actually seen as a "bug" but simply a characteristic of general computer interfaces that users have grown to put up with. I suppose then, it is actually a feature request, though that presumably gets entered into bug reports as well. If I were to file it as a bug report I'd have to do it in dozens if not hundreds of programs that could be enhanced to address. Frankly, it should be a characteristic of the underlying windowing system, but none actually implement it that I'm aware of. Loss of focus while typing is a problem that is system-wide and not specific to browsers, though a browser feature that attempts to do it within the browser might raise awareness of the fact that as users we shouldn't have to put up with it.

It's also true that there are potentially complex implications in solutions for the problem. A windowing system could certainly connect a timer to key input and place popups in a queue until sufficient time has elapsed with no keystrokes. Then you also have to ask, what about mouse input? And what about a popup queue that begins to get rather large? The user experience would be that when you pause in typing, you may get a series of popups appear all of a sudden-- hopefully less disruptive than when you're actually typing. Perhaps a better way to handle it is to queue the popups until the user takes a specific action that would change window focus, on the presumption that changing focus at that point is acceptable.

Presumably, applications that use popups know that the user may be asleep and/or choose not to acknowledge it immediately, so I think we could safely assume that blocking the app for a time via its popup should be workable.

As an example, back in the old days with printing terminals, it was often that an equivalent to a popup was used-- such as in broadcast messages. If you were in the middle of editing a line of text on the printing terminal, it was seen as inappropriate to simply blast a broadcast message out and mess up what the user was doing. I think this was a perfectly reasonable idea, and the solution was usually to queue up the message until the next CR was entered by the user. This worked pretty well-- but that concern for the user experience went "out the window" with the advent of windowing interfaces. Of course, it happened slowly, as running dozens of programs simultaneously along with automated background tasks that check for update availability, didn't exist when windows were new-- but now we're at the point where you end up typing your input into the wrong windows and losing keystrokes all over the place when popups mechanisms assume that the users actions are less important, less critical, than the computers-- which is plainly incorrect (or should be).

Another possible solution for popups is to reserve a spot on the screen where popups are relegated to appear, and make it so they do NOT redirect input focus (something that frankly, I think only the USER should ever be allowed to do!). A status line that popups must use, where they can use color and perhaps even sound to signal an important event, but where they will NOT interfere with what the user is doing. In fact, if I had the time to dig into it, I'd find out if it's possible to intercept the Windows API for programmatic focus change generally, and simply disable it? Perhaps a utility could be made that would help raise the bar in user experience. There's still the problem with new windows, but at least it might address part of the problem. I ask, just who is in control of the computer here? Not the user, at the moment.

So given the point made by "BZ" above, it ought to be on the bug list for Microsoft Windows, and probably rather than for X, for the individual window managers such as KDE & Gnome, which is where I think the "bug" exists, if it can be said to be a bug, or at least where the feature request should go. In the meantime though, individual apps could improve things and set a good example by at least making sure their own popups a little more courteous.

But instead of thinking about groundbreaking new features, or simply making sure the product is the most secure and most stable ever, we have the addition of unnecessary browser tabs, which in every modern windowing system I've ever seen they are simply redundant-- the operating system supports multi-window selection already, in the task bar or status bar , or dock, or whatever. And does it cross application. Let the OS decide if you want to aggregate your tabs by application. But instead, that ability is removed from the OS by the application because the OS is now unable to organize the tabs embedded in one application with those in another. And in Firefox anyway, last I looked (I've stopped using it, frankly), tabs that you can't completely turn off and insist on taking up real estate. Did someone actually ask for those stupid things? I'd like to see the original feature request in the bug reporting system for THAT particular annoyance. It's made Firefox the Oprah Winfrey/Phil Donohugh of browsers, "I'm just giving people what they want," as if dealing crack cocaine is somehow virtuous simply because there's a demand.

But then, I'm just a curmudgeon, so you can safely ignore me (and undoubtedly will).