Words by c.z.robertson

Tabbed browsing again

2002-07-26 01:00:00 UTC

I promised people a proper reply some time ago. This is probably a day late and a dollar short.

Thinking about the issue of integrating tabbed UIs into the window manager properly (so that not only would the WM implement tabbing itself, but it would also allow the applications the ability to manipulate the tabs), there are some problems with this. The biggest problem is that it actually does very little to reduce the complexity of the application. All the additions to Mozilla's UI that mpt points to (open in new tab, bookmarking a set of tabs, etc.) are still necessary in Mozilla, even if the WM handles the actual rendering. Yes, these are now no longer specific to Mozilla -- all our applications can (and probably must) become similarly cluttered -- but they are still present in Mozilla.

Some of the defenses of tabbed UIs in Mozilla come from people who believe that they improve on the interface provided by the WM. The WM fails to provide an adequate method for dealing with lots of windows, so adding features to the application to reduce the number of windows is an improvement. While this may be true, I'm a bit more of an idealist. If the WM is broken, fix the WM.

Fixing the WM is not necessarily an easy proposition. In Windows and MacOS, the WM is welded to the OS. In Unix systems, unless you're using something like Berlin, the WM pretty much has to play by X's rules. So making any significant changes to the WM means breaking a lot of legacy systems or having the power to push changes through unilaterally. But in the long run it's a better solution. The alternative is hundreds of slightly differing implementations of tabbed UIs, and that's certainly going to be a bad thing. But all this is pre-supposing that the WM needs to be fixed with something like tabbing, which I don't actually believe to be the case.

I will admit that I have seen one good argument for the use of tabbed browsing in Mozilla: it gives you an indication of when pages have still loading without requiring that the entire window be on screen. However, I think this may also be a case of the WM being broken. Here's a suggestion, which may or may not be the right thing to do, but it's something to think about: it would be possible for the taskbar to display, like Mozilla's tabs do, a status indicator to show that the page was still loading or that the application was doing some processing or whatever. This is not specific to web browsers. It could be used by FTP programs, audio programs doing heavy processing, and so on.

taskbar busy indicator

Reinout van Schouwen

2002-08-01 14:07:00 UTC

"it would be possible for the taskbar to display, like Mozilla's tabs do, a status indicator to show that the page was still loading or that the application was doing some processing or whatever. This is not specific to web browsers. It could be used by FTP programs, audio programs doing heavy processing, and so on."

Yes, that would be possible. I see two problems however:

1. what happens when a task grouper kicks in (like in the GNOME2 task panel)? 2. isn't this exactly what the clock/hourglass mouse cursor was invented for? (but perhaps that isn't possible with X, I'm not sure)

colin_zr - http://rtnl.org.uk

2002-08-01 22:30:00 UTC

"1. what happens when a task grouper kicks in (like in the GNOME2 task panel)?"

uhm. Eek! :)

I hadn't thought of that. (I rather dislike grouping by application anyway.) I suppose there are a number of things that could happen, none of which is really ideal. You could display the indicator on the taskbar entry for the application if any of the items in its menu wanted to display the indicator, or you could refrain from displaying the indicator at all, or you try to have a similar indicator in the menu entry. Of these, the last one is the one that makes most sense, but it's also not particularly useful. Perhaps it might be best to show the indicator in the taskbar entry and then repeat it in the menu.

"2. isn't this exactly what the clock/hourglass mouse cursor was invented for?"

Not really. An indicator in the taskbar is visible even if the window isn't, and it ties the indication to that particular window.

An hourglass cursor is either only shown when the mouse is over the window in question, in which case the spinner (in the case of a browser) is already visible so the cursor is redundant, or it's shown regardless of the position of the mouse, in which case it's not clear which window it belongs to.

...bad tabs! BAD!...

splinter wang person -san

2002-08-16 22:22:37 UTC

"The alternative is hundreds of slightly differing implementations of tabbed UIs, and that's certainly going to be a bad thing."

I don't think that the concept of tabs is sufficiently complex enough for this to be a problem. What I mean is that the idea of having tabs - i.e. what they are there for, how they work etc. - is simple enough not to allow much difference between the way in which one implementation works from the way another works.

I am presuming that the reason you said it would be a bad thing for there to be different implementaions is the same reason that it would be bad to have anything implemented multiple ways; user confusion. Neh? Or am I way off?

Anywho that's my fifty zillion cents and I'm at "work" so I'm off.

colin_zr - http://rtnl.org.uk

2002-08-18 21:04:37 UTC

hmm. You may have a point there. I think it's always the case that minimising the number of implementations of a feature is a good thing, but in this case it may not be critical.

However, there are a number of non-obvious subtleties to tabbed interfaces. For example, compare what happens when you get down to one document in Galeon and in Gedit (when it's in tabbed mode -- a GNOME-wide setting I believe). Galeon also has a fair amount of its interface devoted to tabs (File > New tab, "Open in new tab" on the link context menus, etc.).

Getting these sorts of things consistent is important, but I suspect that these are mostly going to be a matter of following a style guide rather than using a particular implementation of the system. They're mostly at a higher level than just using an API.