The Problem With Tabbed Interfaces

September 6, 2007

Cyrus Najmabadi* hates tabs in web browsers:

Ok, I seriously don't get tabs on Windows. Hell, I don't get tabs on OSX either. In the latter there's a great system called Expos, and in the former the taskbar does the job. Once I start using tabs, things go all to hell. On OSX, I can't tell which FireFox/Safari window has the tab I want (since it's too small). In Windows I find myself scanning the taskbar for a site I was looking at, but I can't find it because the taskbar only lists the currently active tab. This makes it so difficult to actually find the site I want and it ends up being far slower than just having a window available for each site.

Initially I disagreed with Cyrus. However broken tabbed browsing may be, it's still a better solution than any of the existing alternatives. For example, Microsoft's own flagship Office suite, even today, suffers from some highly inconsistent, bizarre pseudo-MDI behavior for multiple documents. I'll take simple, reliable tabs over oddball MDI any day. No contest.

Lately I'm starting to come around to Cyrus' way of thinking. I don't hate tabbed interfaces-- yet-- but I definitely see what Cyrus was talking about. Tabs are increasingly the source of two aggravating mistakes for me:

  1. I inadvertently open multiple copies of a web site, because I can't see that I already had that web site open in an obscured tab of an existing browser window.
  2. I accidentally close a browser window containing information that I needed, because the information was in an obscured tab of that particular browser window.

In a tabbed interface, it's difficult to see anything except the active tab at any given time. Tabbed interfaces obscure as much as they organize. Tabs are great in moderation, but once they become a keystone navigational technique of your core applications, something peculiar happens. As Cyrus so aptly said, "once I start using tabs [extensively], things go all to hell."

Allow me to illustrate with an example. Let's say I want to check my GMail account, which I do frequently throughout the day. It's likely I already have GMail running, somewhere, so job #1 is to find it.

First, I scan the text in the taskbars. I use UltraMon, so each of my three monitors has its own distinct taskbar, summarizing every window on that monitor.

taskbar

But I don't see the word "GMail" in any of the three taskbars.

Next, I press ALT+TAB-- the poor man's Expos-- and scan through thumbnails of all the windows I have open. Do I see anything that looks like GMail?

desktop-alt-tab-small

No. I don't see the distinctive look of the GMail user interface in any of those thumbnails. I've actually enlarged the Alt+Tab thumbnail size via registry tweaks, so this is as good as it gets for visibility. Squinting doesn't help.

The Alt+Tab dialog only uses the primary monitor, even though I have a three-monitor configuration. But we can harness the entire screen area of all the monitors if we install the amazing Switcher. I have Switcher mapped to Windows+Tab, replacing the incredibly lame Flip3D. This is functionally identical to the OSX Expose that Cyrus mentioned. Now can I find GMail?

desktop-switcher-small

No. Even with the additional resolution of Switcher across all three monitors, I don't see GMail in any of the windows. At this point I would usually launch the URL using the keyboard entry area of the Vista Start Menu. I could use the fancy Start++ add-in to make this easier, but the vanilla Vista menu works well enough.

But wait! I actually had GMail open already. I've made a mistake.. again. I have two copies of GMail running now. Did you see it? Here, let me show you:

desktop-switcher-closeup.png

That muddy, tiny little morass of pixels is the only visual indication that I already had GMail running as a tab in an existing browser instance. It's not in the taskbar, it's hardly visible at all in the small Alt+Tab screenshot, and you'd need the Six Million Dollar Man's bionic eye to see that barely visible tab in Expose, I mean, Switcher.

The depressing thing is that it's usually faster to mindlessly launch a new browser than it is to go through this tedious routine of playing Where's Waldo with (n) browsers and (n) tabs. And that's what I often do. But it bothers me.

Let me be very clear-- I like tabs. I think they're a far better option than the terrible MDI-alike alternatives. But I also think tabbed interfaces present some pretty severe navigational problems of their own. In the above example, if GMail had been in its own browser window, I could have found it instantly by looking in the taskbar, or at worst, by visually selecting it from even a smallish thumbnail image. Because GMail was in a tab, I wasted my time trying to find it, and I wasted even more time needlessly launching another browser. And this isn't an isolated incident. This happens to me every day. More times than I'd care to admit.

So how can we fix this? How can we integrate tabs with the existing navigational features of the operating system, such as the taskbar, and Expose? I keep coming back to search as the dominant computing metaphor. The only thing I can think of is a plain-text search facility where I type "Gmail", and the OS would automatically highlight that tab (or window) and bring it to the front. That presupposes a very high level of integration between the application tabs and the operating system, however.

Despite the undeniable convenience of tabs for grouping and organizing related topics together in a single browser instance, I feel like tabs create as many problems for me as they solve. I wish I could "tear off" tabs into standalone windows on demand, too. That might be a reasonable workaround in the meantime.

* whatever happened to Cyrus? The last entry on his blog is two years old, and I can't find hide nor hair of him via internet searches. It's a shame, because I thoroughly enjoyed his blog.

Posted by Jeff Atwood
226 Comments

TaskSwitchXP is the best Alt-Tab replacement I've found (as the name says, for WinXP)

dserodio on September 12, 2007 2:27 AM

Your suggestion reminds me of Emacs. With iswitchb enabled (http://www.emacswiki.org/cgi-bin/wiki/IswitchBuffers), the predominant method of switching buffers (roughly analogous to a WM's windows) is Ctrl+X, B, then type a few characters which appear in the buffer name. As you type non-matching buffers are eliminated, you can cycle through the list of matches at any time with the left and right arrow keys, and pressing Enter switches to the selected buffer. (Also, pressing Ctrl+K kills the selected buffer, which is pretty useful. Icicles (http://www.emacswiki.org/cgi-bin/wiki/Icicles) extends this to allow you to enter a regexp, among other things.)

David House on September 12, 2007 12:02 PM

To point 1:
Why don't you just open gmail in a seperate window and always put it on specific monotor at specific spot?

I don't mean to be harsh, but the computer is never gonna take away that last bit of work from you. If you don't know where stuff is you have to search for it. Thats how it works.

Another thing you can try is just closing the tabs you don't need immediately. I always find myself holding on to tabs that because ... I really have no idea. Why not just close them right away?


As far as point 2 goes:
In Firefox you can press CTRL+SHIFT+T to "unclose" a tab and bring it back to life.

best, hansi on September 12, 2007 1:16 PM

http://tan-com.com/jatecblog/files/3split.png

I'm not entirely sure how to do that in Firefox, but that should solve all of your problems.

Anyway, welcome to the Internet. You'll learn tabs in time, don't worry.

Jake on September 13, 2007 4:44 AM

Slightly moronic article.

Solution:
1. If you use tabs, only use one window
2. If you have a taskbar and it confuses you, hide it
3. In Firefox, you can get "expose"-like functionality through extensions

Good luck not confusing yourself.

Alexander on September 13, 2007 12:19 PM

Jeff,

You said it yourself:

"There's a natural container in Visual Studio, the "solution", which has "projects" and "files". There's no such logical grouping for the web browser.. although that is how I try to use my web browser. I group sites (tabs) by function, and per-monitor."

If it's true that you group sites by function and per monitor, then I would kinda think you'd also choose a consistent place to put them on your screen real estate. For instance, maybe your browser window for email would always be on the first monitor. Then the search heuristic would be simplified so the "where's waldo" effort has a much reduced area to look through.

If I want to brush my teeth, I look for my toothbrush in the bathroom. I wouldn't put it in the garage after I finish. Same with my browser window for email. I use a virtual desktop manager on linux, giving me 6 desktops, and I find it very managable if I keep my email browser on the first desktop all the time. No confusion where to look.

I think you made this post so that you could brag about having 3 monitors. :thorn;

dangerOp on September 13, 2007 12:27 PM

I've made an expose-clone for vista - Windorama (website unavailible atm).
In the next version i'll try to send a ctrl+q message to all IE-windows and then you'll at least get a 100*100px preview of the website instead of a 50*10px preview of the icon+text.

The problem with expose is that all windows usually look the same, i pretty often have 3 instances of Visual Studio running(one for server-sollution, one for client-sollution and one for editing a website). If i fire up alt-tab or expose they all look exactly the same when they are scaled down to 350*350px.
Same thing with the new built in tab-preview in Visual Studio 2008. How are you supposed to tell the difference between two code-documents when they are scaled down to 100*100px?!

Erik on September 16, 2007 2:08 AM

There is a much better solution than search or tabs.

I'm heading up a team that's working on a program to let people access their windows easily. Jeff -- would you like me to let you know when it comes out? (Should be next month or so.)

Greg

Gregory Magarshak on September 17, 2007 10:03 AM

It seems to me that what we really need is a much smarter browser 'history' in browsers with better visual clues. The browser history would of course need to aggregate the history links from different vendors browsers so should actually work as a cross-browser plug-in.

The links in 'history' should hint which links are still open and perhaps present a 'mouse hover' thumbnail. Clicking one of the 'open history' links should then make that tabbed page the active tabbed page of the relevant browser.

The links in 'history' would naturally show a link for each page position open for a specific URL in a nested way. The history would be refreshed each time focus was switched to another tabbed page or the page was closed. Different views and sorting options would be available.

It would be great too, if the history was recorded on some internet site so I could pick up where I left off from another machine. The history would have to be text searchable as well and perhaps also include desktop 'recent documents' events also.

Phil Fearon on September 18, 2007 8:05 AM

I hate to join the "Jeff, just get a mac already" crowd, but Quicksilver DOES solve this problem quite perfectly.

It's this easy for me:

apple-space (my shortcut for quicksilver)
gm (it suggests "gmail")
return
(If GMail is already open, it goes to that tab. If not, it opens a new tab in my most recently used Firefox window.)

You really can't beat that with any kind of expose magic. It's the speed and simplicity of a command-line, but with all the multi-tasking and visuals of a GUI. Of course, there's a bit of a learning curve to do more advanced stuff, but even the most basic "better spotlight" use-case is a big benefit.

Isaac Z. Schlueter on September 18, 2007 1:27 PM

Just wanted to add my two cents even so late in the play. Opera is a great tabbed interface as another user mentioned. It even has a trash can to pull out those accidental tab closes. I'm running two monitors so I'm not in the mega monitor circles that Jeff is. My main monitor is for reading and typing, my smaller monitor is for opening/browsing files and leaving outlook open in.

I find XP's merging together the tabs of the same program together furstrating (you can turn this off though). It'll be interesting to see how HCI changes as more people get bigger monitors. The tabs model was an answer for single monitors which has some life for small dual monitors. It appears it doesn't extend well into the much grander scales multi-monitor setups that many who read this site have.

Scott on October 3, 2007 6:41 AM

these comments are giving me a severe case of user-spite. theres 9 people who prop opera, yet the only one who actually mentions the solution to Jeff's problem is:

David V. on September 7, 2007 05:58 AM

congradulations for addressing the question!

in opera, control shift win 0 opens the panel and displays the window tab (alternately, just use f4 to toggle the panel and leave windows activated), which gives you a list of all opened tabs in all windows. there is very sadly no way to keyboard navigate to the quick find textarea from there, but usually its pretty easy to find the favicon.ico you are looking for from the list without having to resort to a text search.

why do 4/7ths the opera proponents talk about control-tab? its hardly unique! otoh i dont see anyone lamenting that 1 2 are no longer default enabled keybindings. rather than navigate tab history, they navigate tab position: far more useful for cruising adjacent topics. if you are going to provide non-solutions, at least provide interesting non-solutions, not the same non-solution every other browser has.

user-burn!

rektide on November 7, 2007 3:12 AM

I use tabs as a form of grouping. I have Webcomics and Blogs, Mail and News, Work Data, and Social Networking.

Of course, eventually this goes to hell as I follow links, but at least there's a way of tracing how I got where. It's all a matter of mixing the "easy locate" advantage of windows and the "compact" advantage of tabs.

There is one advantage of tabs that this doesn't take full advantage of. If you can barely detect what tabs you're looking at, your boss doesn't stand a chance. For example, I can conceal Order of the Stick behind Coding Horror

deworde on November 8, 2007 2:04 AM

Ok, so let me get this:
you are complaining that you can't find a tab in the multitude of tabs you have, especially that you have several browser windows opened.
Good. What kind of user does that?
You are viewing this from the wrong angle. Let's make a parallel:
Let's say you have 10 cars, each with 10 drawers where you can put your keys to your house in, and you drive all the cars every day, and you park the cars randomly in your parking lot. Then you go to the roof of your house and you say: 'hey, these drawers make my life more difficult: I can't see my keys!'.
Do you really expect to find your keys when you have no system of organizing your cars, or, even better, no place to put your keys in?
Tabs solve exactly the problem you are referring to: they don't clutter your desktop with unnecessary windows.
You are missing an important concept here: tabs GROUP multiple browser windows into one browser window, so that you can easily find OTHER windows on the screen. Notice: not other tabs, other windows, from another application. So, presumably, if you are searching for the MS Word window, all your 20 browser window won't get in the way, because they'll be grouped into 1 browser window.
So it all boils down to this: ORGANIZE your tabs.
Do not blame tabs for your poor organizing skills or for the lack of interest/time in keeping things organized.
Let's say you agree with me and you keep all your tabs in one browser window and you can easily find that browser window amongst other windows on your desktop.
Great, you have reduced your search algorithm's complexity from BW*T to just T, where BW is the number of windows you have and T is the average number of tabs per browser window. In other words, you now only have to find your browser window (i.e. 1 operation) and then find find the tab in that window (Tn operations at most).
Unless you are superman, batman, ironman or any other super-incredible hero, you won't be able to simultaneously work with more than,say,10 tabs at the same time. That's 10 different websites. If you believe that's a small amount, increase it to 20. In my biased opinion, that ought to be enough for anybody. Beyond this number, you have to do the following: DON'T OPEN ANOTHER BROWSER WINDOW, but instead, use BOOKMARKS to save the address and open it when you need it. Resembles the swapping mechanism a bit.
So if you make sure that you always get rid (i.e. bookmark and close that tab, or, in other words, swap it out) you should be able to keep your 10-20 tabs to contain only the active sites you keep using every few minutes or so. And thus, you will end up with searching through 10 tabs (or 20 if you are closer to a super-hero).
That's not so bad, is it? Click on the Browser window (you'll only have one), look at all the tabs, select the tab you need. There, no need to get annoyed by looking for the Gmail window. The trick is that your brain is able to process all the tabs at once, it's 1 relatively simple operation. Your brain does not use binary, it's not limited to only 0 or 1, or found/not found.
And then there's some more. Keep your tabs in an order.
I use GMail too, pretty frequently actually, and I keep the GMail tab the first one in my browser. Thus, I don't even have to search. Click on the Broser, Click on the GMail window. 2 operations and you're done. No frustration, no annoyances (except when you have 10 tabs opened on a small monitor, and you have to scroll back to the first tab. But that's a hardware issue :) ).
So, the key here is to get organized. No software will get you organized automatically, without your intervention. We are not yet in the AI era. Computers cannot read your mind and determine your character. They can only help you GET organized, but it is you who has to be willing to GET organized.
The concept of tabs is just a tool. If you can't use it, because you don't realize you're too disorganized and messy, you will do what every frustrated novice user does: blames the tool.
And it's valid for virtually anything out there, not just tabs.
So acknowledge the fact that your way of using a computer is cluttering the taskbar with multiple browser windows and each browser window with multiple tabs. There is nothing that will help you to get organized, so your brilliant workaround is by bruteforce : integrate the operating system with my mess, so that I can search through the mess I have created. Sure, I can now see why Torvalds, Gates and Jobs are having daily meetings to solve the issue of disorganized users.

Victor on July 5, 2008 2:13 AM

You must be kicking yourself - why oh why didn't you patent it?

Jonathan Dickinson on July 7, 2009 4:12 AM

I'd encourage you to check out www.humanized.com
They have a product called enso which is pretty unique (PC only)

Aaron on February 6, 2010 10:14 PM

I agree with the previous comments about using a single window to reduce site hunting, however, I sometimes find myself opening so may tabs that some become invisible in Firefox. That leads me to being in Jeff's position as well. Perhaps when I'm doing research I should open a special browser window for it or something.

Ben in Boston on February 6, 2010 10:14 PM

I started to post something along the lines of "How about we just remember we opened gmail in the first place?" but that kind of violates the treat your users like they are idiots policy that most good UI's have. So, in theory, I agree with you, Jeff. However, in reality, I love tabbed IE and much like you I have several browsers open most of the time and they all contain related links.

.. the OCD minded might even always have gmail on their right monitor.

Ryan Moon on February 6, 2010 10:14 PM

a plain-text search facility where I type "Gmail", and the OS would automatically highlight that tab (or window) and bring it to the front

Jeff, I had the same thought as I was reading your post as the one that you concluded with: via some text-based interface (something like a more powerful version of the Run dialog), the user should be able to type "gmail" and have their browser window and tab where gmail is already running be brought to the foreground and given the focus.

A few additions to, and caveats on, that idea:

- How does the OS (or whatever application is providing the "search" interface) know that "gmail" maps to "browser window pointed to: mail.google.com/mail"? Possibly through some user-defined set of mappings like Slickrun uses. It wouldn't be too painful to set up each mapping manually provided that you only have to do it once ever.

- What if I already have two or more instances of gmail running? Which one gets brought to the foreground; or do all of them?

- The feature would need to be smart enough to launch gmail if it isn't already running. Where would it get launched? In a new browser window, or in a new tab in one of my existing browser windows? Which browser window would be used for this?

- For some things, I might *want* to open a 2nd new copy when I type the keyword instead of having the interface find and activate my already existing copy. For example, if I already have a browser tab open showing a page of Google search results, and I type "Google", does that mean I want to find my existing Google tab, or does that mean I want to open a new tab pointed to google.com? Maybe this could be handled with the keystroke used to launch the search; Enter could mean "open a new instance", while Ctrl+Enter could mean "find my existing instance", or vice-versa.

Jon Schneider on February 6, 2010 10:14 PM

I've been using tabbed browsing in opera and firefox for so long that it's second nature to use them. You can ctrl + tab between tabs just like you alt+tab between applications - I don't even think about it anymore.

I dunno - I can't imagine NOT having tabs.

Jon on February 6, 2010 10:14 PM

Not that I'm one of those snarky kidz who earnestly suggests that everyone should switch to his favorite browser that happens to solve this particular problem, but I did want to point out a UI metaphor that helps this quite a bit.

The OmniWeb browser on the Macs approaches the same problem that tabs try to solve in a slightly different way. Instead of a small tab widget whose only identifier is a text-based label, OmniWeb instead uses a thumbnail for each tab (stacked vertically in a side-docked "drawer"). The size of the thumbnails can be dialed up or down at will by expanding the width of that drawer.

Ignoring the allowance this provides for dedicating more real-estate to each tab's "identifer", this has the huge advantage of leveraging the human brain's vastly-superior image-processing capabilities.

So while the brain doesn't have a prayer of reading (much less quickly scanning for) a text label "GMail" that Expos has shrunk to a fraction of its previously already-quite-small size, I typically find that I can find which of my 3 or 4 browser windows is running GMail.

And, as you're so apt to point out - I can do this all in the same time (thanks to Expos and my brain's evolutionarily-critical dinosaur-avoidance^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hhigh-speed image processing capabilities) that it would take me to open a new GMail tab/window.

Jon Sweet on February 6, 2010 10:14 PM

On my laptop as I am bound by the available retail space on this 15" widescreen I typically have one or two browser windows open throughout the day.

As for finding the designated website available in a tab, I agree that there is a 'hunt' process to determine which browser is associated with the tab you are looking for.

I exercise two swift shortcuts typically, alt-tab and ctrl-tab just like you do in order to find the site (typically recorgnized by the under-appreciated favicon).

* On an off-topic related note, where can I get your desktop wallpaper Jeff? Thanks in advance *

Aaron on February 6, 2010 10:14 PM

Why do you care so much about opening another instance of gmail? I just timed it, it took about 4.5 seconds on my system to open up a new tab with gmail in it. If you have 30-40 browser windows open, it'll take much much longer than 4.5 seconds for you to find gmail (unless you use a organizational system, as other have suggested)

I'm definitely not saying that tabs are the best solution to the problem. And the taskbar is definitely not the best method to organize windows. But the specific example you use shouldn't be an issue. Use a favorites bar and put gmail there, or, like me, use gmail notifier for firefox, which gives you a status bar button. If you have a tab already open in gmail, it'll even switch to that tab instead of opening a new one. Then simply click on that. Any time you want to go to gmail, click on the button. It's simple, it works, and it doesn't hurt to have multiple instances of gmail open.

Isaiah Damron on February 6, 2010 10:14 PM

I try to keep open as few applications as possible that I need at one time. That way I don't get into the problem of multible tabs on multible browsers so often. Also I keep all the tabs of one functional matter on one browser.

But sometimes the problem does occur. Then I curse the feature, because I loop click apps, but I realize soon I need to loop the tabs too. When I use my computer, I want the using to be most effortless.

For example I have a vague image that I want to read news. I am tired and sleepy and I start looping apps, but then I have to keep track when I near the end of the apps. That tracking increases the effort. It would be better that all the tabs of all the browsers (or other programs) were looped with some other key combination.

Also I have found another annoying tab-feature. Some web programs open a new tab for example for an image. But then some other web programs open the image into the same tab. I have used to close the extra tab, but with some programs there is no extra tab. That way, I end up accidentally closing the actual tab. Keeping track of did the program open a new tab or not increases the amount of effort too. I don't say that its crucially critical to solve this "bug", but its still a kind of thing that could be made more innovative.

On Visual Studio or maybe SQL Management Server they have changed the loop order of tabs. Usually loop goes from the first to the next and so on. But now it goes from the latest to the second latest or so, and I don't care what pages I have used when. For example I see all the tabs, but looping doesn't follow the tab order but seemingly some mystical random looking order. Then when I want to go from a tab to the next, it instead loops into the second latest and so on.

Don on February 6, 2010 10:14 PM

I find it strange that so many commenters seem to get very personal and critical of your behaviours. You work the way you work and that is that. I have a dual monitor setup, and covet your triple ;)

To throw one more suggestion into the mix. I came across the WebRunner project, which is essentially a stripped down mozilla core running a single site in a single window with no chrome. This way, I can have GMail running, or GCal, or whatever, and it looks and behaves like an application. Including your custom app icon on the taskbar. While this does not address the nature of your post directly, it may help you with your gmail open multiple times issue.

Devon on February 6, 2010 10:14 PM

Browsers show the active tab name in the tool bar. But if I am looking for a browser by the main function that the browser was opened for, I might see only supporting tab names.

For example, I have few browsers open and each has it's own path of function. Like with one browser I do some work and other browser is supporting that work with a different function and so on. Then each browser has many tabs, one main function tab and several supporting pages. Now if many of the browsers use the same site as helping pages and if the helping pages are currently selected, then I don't see anymore, what browsers contain which main functions.

Don on February 6, 2010 10:14 PM

«Back

The comments to this entry are closed.