Tabbed Browsing - Let's Stop Fixing Symptoms
In a recent discussion via E-Mail, the concept of tabbed browsing came up. While many people laud tabbed browsing as the next step in getting rid of the mess they perceive multi-window systems to be, I think it's a fix applied to single applications that should actually have happened at the operating system level, and should maybe even have an entirely different shape than tabs. So, what's wrong with tabbed browsing the way it is now?
Well, first of all, it's not always browsing. Excel has tabs to switch between views, Adium has tabs to switch between several conversations in the same window. But all of these apps are trying to solve one problem: That there are often lots of windows open and people tend to get lost in them. This wasn't as much a problem in the System 6 Finder, and it also still works fine in Eudora. Why?
It has to do with persistence. The spatial metaphor only works if the user can rely on an object (window, icon in a window etc.) always staying in the last location where they put it. This is just like in real life, where people will find things in the most surprising places easily, e.g. because they know they always absent-mindedly put their keys next to the toilet's sink because that's the first place they visit when they come home.
Yes, we may occasionally misplace things, but it's a skill we've honed and practiced in real life, and that's something we can leverage when doing work on a computer. Most modern apps fail at this miserably. Whenever you re-open a window, they put it in a default location in the upper left of the screen. So, all you have is an arbitrarily re-ordered, yes even seemingly shuffled stack of windows. If more application programmers took the time to save window positions and try to restore them when their documents are opened, they'd suddenly find their users are having much less problems working with their windows.
Which is not to say tabbed windows are a bad idea, but they only solve the problem because "stacked" windows that apps give us today are inferior to an orderly tabbed interface. If they're stacked, clicking the backmost (upper-left) window obscures all other window titles. This doesn't happen with tabs, which are next to each other and always visible. But it's simply fixing the symptom: It's hard to find a window because the OS keeps arbitrarily re-organizing my windows (just like someone going through your desk each morning and randomly reorganizing your papers), and because they're all close together and tend to cover each other.
With a spatial metaphor the position and size becomes a reliable aspect of each window. After a short while, you'll know that the report due next week is always in the upper right, so even if you don't see its title, you can just click the edge of the window that is there and you have it. It's a secondary cue, just like you can remember that the yellow sheet in that stack of paper that's in the lower quarter of your stack of papers is probably the tax form, or whatever, and that the A6-sized carton in the same stack is probably your friend Pete's wedding invitation.
Tabs still have their use, though: Some kinds of files you always want to fill the screen. Paper is usually higher than wide, so for office work this is rarer, but in graphic design, where you zoom into a window, or when you're doing genealogy, you'll just want one huge canvas that uses every available pixel. Here is where tabs come in handy. They take fairly little screen space, and since all these windows are the same size, spatiality wouldn't work here anyway.
But today, every application has to implement its own, slightly different-looking/behaving variant of tabs (the browser-tab variety -- most OSs have a tab control by now). Small or cheap apps don't even contain the code to implement this feature, while other apps force you to use it even if you'd prefer a separate window just once. The net result is that users will have to learn all those slight differences.
If OS developers implemented this at the Window Manager level, we'd have one consistently-looking and behaving scheme all apps could use.
Not to mention there could be advanced features. E.g. wouldn't it be cool to be able to dock an xCode project window and a web browser window that shows Apple's developer docs together to easily switch between them? Cross-application tabbing simply isn't possible if every app rolls its own, but would be quite easy if all of this was done by the window manager.
Of course, maybe tabs aren't necessary either. Jef Raskin had an idea for a zoomable user interface. Implement this in 3D as the window manager, with persistent window positions and windows as the different objects, and provide a shortcut to zoom a window to full screen. People could simply zoom out of their fullscreen window and easily get at other windows behind it by "flying" through space. You'd have reliable spatiality and full screen display. And it's nothing that will overly confuse users. After all, zooming and navigating through 3D space is something we do all day in real life when we walk around one object towards another.
Update: Opened for comments.
Tabbed browsing (atleast for me) is about queueing.
I am unconvinced that 3 dimensions are better than 2.
|Aaron Ballman writes:|
Interestingly enough, I know of a newer OS in which this is handled at the OS level -- Vista. There's a new frame type in Vista which supports the concept of switching views (be it tabs in a browser or sheets in Excel, or source code viewers in REALbasic). Basically, the entire back/forward navigational system is now handled by the OS if you implement this frame type.
At first, I thought it was a solution in search of a problem. But after seeing the number of interesting uses that it can be put to, I rather like the idea. Of course, only time will tell as to whether it really is a good idea for this sort of thing. ;-)
As for using a third dimension -- we already are (z-ordering) and it's not working out that well because the windows are obscured (hence the reason translucent windows came along) and there's no way to bring a fully obscured window to the front using the mouse (hence the reason things like Alt+Tab and Expose came forth). Until the mouse can navigate in three dimensions, I don't see it as much of a solution.
|Uli Kusterer replies: ★|
Aaron, most modern mice already support three axes: scroll wheels can be used quite nicely for z-depth. And in 3D, there rarely is a "fully obscured" window. When you zoom in, stuff appears to be moving further apart. I'm not saying there aren't pitfalls, but there are numerous ways I can think of to fix them, and what I've seen of Raskin's (2D) demos of spatial UIs seems to work very well.
I'm not sure how Windows' new switchable frame type is different from a tab control in MacOS X (where you can hide the tabs and the border to use it for paged Assistants etc.) -- do they actually provide different display styles? Does it have any inter-application-communication provisions?
Just having a paged view style is far from enough. Serf had a "stack" control ages ago, and while it's powerful, it doesn't really do anything for window management. Users should be allowed to decide what is where on the screen, and that includes deciding which things switch out in favor of each other, and which things live side-to-side. E.g. while I typically want to view web pages full screen, when I'm entering information from an event's official web site into our site at work, I need to have them open side-by-side. Both needs to be possible, or we programmers seriously hamper users' workflow.
|Uli Kusterer replies: ★|
Sam, the study by Andy Cockburn that you found only concerns itself with perspective effects. It uses a static viewpoint, and thus effectively does little more than what MacOS X and Windows already do (except for size gradients). However, my reason for suggesting the use of 3D is that I want to make more screen space available in a way that feels natural to users.
In current windowing systems, you have to actually move your windows to work with them, which modifies the spatiality we're trying so hard to preserve. With a 3D system like I imagine, you could actually move the view instead of being forced to re-order or resize windows themselves. Since this actually requires being able to move around in space, Cockburn's study sadly isn't of much relevance (though it is still very interesting).
|Aaron Ballman writes:|
Don't get me wrong, I still think window managers have a long way to go before becoming as useful as they could be. ;-)
Window's switchable frame type is different from the page panel concept. It provides a consistent GUI look for the common behaviors. For example, right now in XP, FireFox's back/forward looks different than REALbasic's which is different than IE's, etc. But if we were all using the same frame type, the user's experience would be the same in all the applications. Btw, I don't think this is a revolutionary idea, or some sort of UI panacea. ;-) I was just pointing it out.
I guess I've yet to see a 3D window manager that I've found anywhere near useful. Of course, more research on my part would be a good thing at this point.
Thanks for replying Uli
You are right that the paper to which I posted the link was of only minor relevance; however, I must confess that I posted it as much for its relevance as as a prompt to others to check out the scientific literature before arguing in ignorance and therefore often needlessly (a common occurence in HCI discussions in my experience).
To elaborate on my queueing comment, any alternative to tabs, to be as good, must allow easily (as easy as a key combo or mouse click) opening links as the last item of a list and show as context the length of and current position in the list. (I don't think I expressed that well but I tried my best)
I think in general queues are an important UI concept, check out lifestreams and such if you haven't.
|Uli Kusterer replies: ★|
Sam, Lifestreams (http://www.destinationkm.com/articles/default.asp?ArticleID=856) look a lot like what you can do with plain-old Finder (maybe with some Spotlight thrown in). I guess Apple's on the right track there. I'm not sure the fanned-out or stacked view is necessarily a good thing (especially since the article admits it's better for smaller workgroups, so it doesn't really solve the problem of many files), but I could see a fanned out view (like the "piles" Apple was rumoured to have) being quite useful, so I guess it depends on how this actually looks in practice. Thanks for pointing that out. And yes, Zoomable UIs can be 2D just fine (cf. Raskin's), but the study explicitly stated the viewpoint was fixed.
Aaron, yes, the Vista paged frame looks like a step in the right direction. Integrating not just the technical page-switching part, but also the controls is very important and caters to programmers' inherent laziness. Good to see MS is getting that right.
You've got some really good thoughts! What's funny is I found your post while googling to see if there was some pre-existing code to save window positions in my app. :-)
|Joachim Bengtsson writes:|
I agree that the windows-and-menus GUI is getting a bit old, and I've been researching alternative UIs for a while and been keeping notes in my voodoopad. My Dream UI would be a Zoomable UI (cf Raskin, Seadragon), where objects are physical (BumpTop, http://bumptop.com/ ), the UI is deep (tracks user's eyes to give the UI a perspective transform relative to the user, cf Johnny Chung Lee http://www.cs.cmu.edu/~johnny/projects/wii/ ), and of course multitouch (cf Jeff Han, http://www.perceptivepixel.com/ ). I call this a "Deep NUI".
One guy actually nailed almost all of these in a concept ( http://www.dogsolitude9.com/imac/snarf/index.html ), but his site seems to have died :( Anyone have a copy?
Until the day when my dreams are realized, inter-app tabs might actually be a pretty good idea, even though I've been for a long time been against tabs in everything but web browsers. In Xcode, e g, I use the Condensed layout and a lot of open windows, navigating them by cmd-0'ing to the project window or spatially (Xcode is excellent at remembering window locations and which windows were open when project was closed).
|Uli Kusterer replies: ★|
Joachim, thanks, those are some great links and projects. I myself am also mainly a many windows kinda guy, but for browsing tabs help.