[Alt]-[Tab] is one of my favorite keyboard shortcuts. Combined with other shortcuts, I can manipulate programs and data at high speed without ever touching the Mouse of Slowness and Wrist Trouble. Naturally, when I discovered true tabbed browsing and editing in applications such as Textpad, Opera, and Firefox, I was overjoyed. Previous MDIs like Microsoft Word in Windows 3.11 had been interesting but essentially unusable for lack of keyboard support. The ability to quickly switch both within and between programs is a massive productivity booster.
This naturally raises the question of tabbing scopes. Could there be a level of tabbing coarser than [Alt]-[Tab]? Finer than [Ctrl]-[Tab]? Would users be able to get used to these nested scopes? How would it be implemented?
Well, we already have coarser and finer scopes. Anybody who uses multiple workspaces in Linux (native support) or Windows (with extra software) is already used to switching between whole groups of windows. And such power users are certainly aware of using the [Tab] key to navigate form fields and dialog boxes. I use [Ctrl]-[Alt]-[arrows] to switch workspaces, [Alt]-[Tab] to switch windows, [Ctrl]-[Tab] to switch tabs, and [Tab] to switch keyboard focus. So we already have four scopes (newbies tend to deal with only one scope — the current program). Let’s not even talk about frames in web pages… (F6 for Firefox users)
These nested scopes are equivalent to an uneven tree structure, since not all workspaces contain programs, not all programs have multiple documents, and not all documents have multiple fields. Each parent node has one of its child-node edges selected as current, and switching the current edge does not affect descendent edges, just ancestor edges. The appearance of an alert box can switch multiple edges at once, pulling the user to another document in another program. This interface design concept works fairly well, though some find it confusing. I have to wonder just how generalized this tree can become while remaining useful.
So are we running out of meaningful scopes? I don’t think so. One intriguing property of trees is their recursive nature — any subtree is a tree in its own right. I have VNC in mind. When I’m accessing my laptop from a friend’s computer, the VNC window becomes my entire visual-interactional world, as opposed to the full computer screen. In other words, I can “down-scope” to the VNC window and ignore the supertree. Perhaps the only real interactional limitation is the problem people have dealing with multiple scopes simultaneously. I’d like to see a new model of scoping and switching that takes advantage of the human mind’s natural scoping and switching abilities. Maybe one of these days I’ll write it myself…