While playing around with Phoenix, enjoying its toolbar-free gesture-driven fullscreen mode, a thought occured to me. Phoenix, like most apps nowadays, is themable: You can choose from many aesthetically different (but functionally identical) appearances. I've had the distinct feeling for a while that themability like this is not just silly and pointless, but that it's a sign of a deeper problem. I've generally dismissed it, though, as "too many programmers with too much time on their hands".
Still, I'm a sucker for eye candy, and so I tried out
several of Phoenix's (quite attractive) themes. Then I moved on. Later, operating happily in Phoenix's fullscreen/gestural mode, I realized that all of the themable interface elements were now hidden, and so the
themability was completely moot.
The deeper problem, I realized, is this: Programmers spend so much time tweaking the appearance of interface elements, it doesn't occur to them that the control could be anywhere other than onscreen. With so much work put into bevels and drop shadows, why wouldn't you show it off?
Well, for one thing, many people (let's call them offscreeners) prefer keyboard controls, popup menus, and other mechanisms that don't take screen real estate away from the actual content. And while it's possible for an app to work both ways, it's rare for it to work well both ways.
If you want to support efficient offscreen controls, it's not just a matter of adding keyboard shortcuts and popup menus. Nobody benefits from obscure, undocumented key shortcuts--not even diehard offscreeners. Common operations should be easily accessible, gestural when possible, and keyed by context. Less common operations should be less simple, but should be accessible through the same simple mechanisms--hierarchically when necessary. As much as possible, all controls should be amenable to "muscle memory": repeated use of a feature should teach your hands--not your eyes--how to access it.
This last point is critical. For offscreeners, the visual system is engaged with the content, while the hands perform operations on the content. The visual system shouldn't be pulled away from the content to perform common discrete tasks: that's what the hands are for. For less common operations, which the hands may not know well, it's sometimes necessary for the visual system to be sidetracked to search for the control. But the result of that search should be something meaningful to the hands, so that soon (after several uses) the visual system doesn't need to be sidetracked any more.
This is the whole point of radial menus, of course. With a traditional menu, you may quickly memorize how to reach some deep, nested menu item. But navigating such a menu still requires you to aim the mouse at specific menu rows, and so still requires the attention of the visual system. Radial menus, on the other hand, allow quick, simple movement with no aiming required. They're visual-system-friendly, but can be operated entirely by the hands as well.
I'll say it one more time: Efficient offscreen control isn't about memorizing obscure sequences and shortcuts; it's about teaching the hands to work without the help of the visual system. The visual system has more important things to do. (And so, for that matter, does the mouse, which is sort of the liaison of the visual system in the computer. The mouse should not be distracted from its spatial work to perform non-spatial tasks.)
Finally, it's critical for all operations in an application to be accessible in the absence of onscreen controls. Too many applications have keyboard shortcuts (or popup menus) for most, but not all, of the app's features.
This is an offscreener's nightmare. Offscreen control can't be an afterthought, or some important aspects will inevitably be missed.
In short, a powerful offscreen interface takes planning and effort. And the incessant themability of modern apps makes it clear that that effort isn't high on anybody's priority list. Enormous toolbars, sidebars, menubars, status bars, floating toolboxes and tear-away menus are the norm. It doesn't bode well for us offscreeners.