

Re: No tabbed browsing in HTML 5?

From: Boris Zbarsky <bzbarsky@MIT.EDU>
Date: Fri, 19 Sep 2008 08:52:27 -0400
Message-ID: <48D3A08B.2000309@mit.edu>
To: Leif Halvard Silli <lhs@malform.no>
CC: public-html@w3.org

Leif Halvard Silli wrote:
>>> The thing with _blank is that many authors apparently expect that it 
>>> opens in a new Window, and rely on that behaviour.
>> Other than authors specifying a size, how so, exactly?
> I don't follow.

You said that site authors rely on a new window being opened.  I ask how 
this manifests itself.  That is, how does the site malfunction if a tab 
is opened instead?

>> That may or may not be true depending on the behavior of the user's 
>> window manager.
> Think about @longdesc again: If you do not get back to the <img> after 
> you have closed the "context" in which the longdesc URI was opened, then 
> you cannot blame the window manager.

You clearly misunderstood my point.  You claim that "all it takes to get 
back to the originating Tab/Window, is that one closes the Window". 
This claim assumes a certain window management behavior in terms of 
which windows get focus when others are closed, etc.  This is no 
different from assuming certain tab-management behavior from a UA, and 
one assumption is no more justified than the other.  You claim that 
making this assumption about windows is great, while it cannot be made 
about tabs.  I don't see why you draw this distinction, and I don't 
think it's a valid one.

>> That's up to the UA (instead of the window manager), and is a 
>> usability decision on the UA's part.  For what it's worth, some UAs 
>> have exactly the behavior you seem to expect here.  But that's up to 
>> the UA (or more precisely the user, but in practice users end up using 
>> the UA defaults).
> These are valid points. But where are you heading with them?

My point, again, is that tabs are not as different from windows as you 
seem to think they are.

> I think there is one case were opening a link above abother is really 
> important, and that is when there is meant to be some direct interaction 
> between the originating page and the new page.

OK.  What does that have to do with windows vs tabs?

> Static relationship: With target=_blank, the author has very little 
> control over where the page opens. The UA preference (usually the 
> default) will win.

Right.  What is the problem with that?

> Interactive relationshipp: But if there is some interaction involved - 
> either because it is a longdesc URI or because there is javascript 
> involved, then the new page typically opens *above* the current window.

I'm not sure what you mean here, to be honest.  window.open() and 
target=_blank behave identically in Firefox, for example (and in fact, 
one is implemented in terms of the other).

> The purpose of _tab, if any, would be to say that there *isn't* any 
> interactivity relationship between two pages. So, _tab really is the 
> _standalone that Hallvord spoke about. 

OK.  So it's not about how the UI is presented but rather about 
communicating information about how the opener and target are related? 
That's a very different thing, and I agree that it would might be good 
to have targets or some other mechanism to specify such relationships.

> (Because, I really am completely 
> unable to see why there can be any legitimate reason to open a link 
> above another window *when and if* the browser supports tags, unless 
> there is som interactivity relationship [or unless the user spesificly 
> prefers it that way, of course].)

Agreed.  Also, in the interactivity case it's sounding like 
showModalDialog or equivalent is what's really being sought after.  Or 
am I missing something?

> And I think there are legitiamte reasons to sometime help users to open 
> a a link in a new tab/new horisontal context instead of accidentally 
> reusing the current context.

That's what _blank is for: not reusing the current context.   Again, I 
feel like I'm missing something...

>> Then the author is making an unwarranted assumption, whether tabs are 
>> involved or not.  If he wants to actually guarantee that this 
>> assumption holds, he should be calling focus() on the window he wants 
>> to end up on top.  Of course some UAs disable rearrangement of window 
>> z-index via focus() calls too...
> You here take for granted that the calendar is opened in a new window. 

No, I'm not....

> least from the user's point of view.

window will be the one focused.

> The problem is what should happen 
> after you close that tab.

Yes, I understand that.

> In fact, that is what interaction is about. Is 
> there any place in the spec which - in a windows manager and UI neutral 
> language says that the browser then should jump over the tabs in between 
> and back to the origianting "context"?

No, and I don't think there should be: that's a UA decision in my 
opinion.  I do think that in most cases it makes the most sense for a UA 
to do that, but I don't think we should be constraining UAs that feel 
that their constituencies particular needs require a different behavior.

> If the author uses javascript links, then neither is the user. I suppose 
> you disagree with such lack of control then?

Javascript links in what sense?

>>> But in fact, because the calendar opened in a new Tab, and because I 
>>> might have opned a new parallell Tab side-by-side the Banking page 
>>> before I chose the Calendar, I might land in that nearby Tab instead 
>>> of the Banking page. Annoying!
>> Sounds like your UA has suboptimal behavior.  Report a bug to its 
>> creators?
> Let's stick to the subject.

We _are_ on the subject.  We're discussing what influence, if any, web 
pages should be able to exert on the UI of the user-agent, and what, if 
anything, the spec should have to say about it.  Current user-agent 
behavior is, of course, relevant here, as are the reasons behind that 

> If I use target=_blank, then most browsers - 
> if not all - will open that link in a Tab

While currently true, and making some assumptions about user 
preferences, the fact is you shouldn't be assuming that.

> But if I am a clever javascripter, the I can work
> around this and open the link in a new Window.

Again, only in some UAs, and only with default settings.  It's trivial 
to configure Firefox to not allow this, for example (except for cases 
like showModalDialog).

> Where is my control as user?

In the preferences.

> And where is my control, as a 
> non-JavaScript author?

Where is your ability to size the resulting window as a non-JavaScript 
author?  In Firefox, by default, you get a new tab unless a size is 
specified.  That's the only way a JavaScript author can get a new window 
instead, last I checked.

I would fully support adding a declarative way of sizing the 
newly-opened window.

> Theoretically, we cannot guarantee that _self has the meaning of 
> "current window" in all possible browsers either.

It makes a lot more sense to specify this, actually.

> The spec talks about "browsing context". Most seems to think that this 
> means "window".

Really?  Most who?

> The spec does not mention tabs in that context at all. 
> Which to me seems like a shortcoming. Does it have any context 
> implications if a link gets opened in a tab?

Not as far as the spec is concerned.  A "browsing context" in the spec 
is just something that corresponds to a Window object.

> Of course, it says "context" in order to cover UAs more broadly, such as 
> screen readers.

No, it says "context" because it's really a pretty UI-independent 
concept that has to do with atomicity of navigation, scripting behavior, 
etc.  Its presentation in the UI doesn't matter for defining most (if 
not all) of its behavior.

> However, *that* is an afterthought. And we should also 
> be able "afterthink" about what a tab reprents, and define what this in 
> a window manager and UI neutral language.

I'd be fine with that, if we really can figure out what it represents.

Of course the problem is it represents different things to different 
people, so you might run into some trouble here.

> For myself, a new window represents a vertical relationship, while a new 
> tab represents a horisontal relationship.

For me, a new window represents a new task whereas a new tab represents 
a part of the existing task that for some reason requires a separate 
Window object.

> That might be. But then we are here to specify the specification, so 
> that we know what is poor behaviour.

We're not interested in specifying "good" or "poor" UI behavior, though: 
that's in the eyes of the beholder.  If the UI of your user-agent is not 
fulfilling your needs, the right course of action is to either seek a UI 
that better fits them or try to convince your user-agent's authors to 
change the behavior of their UI.

Fundamentally, it's better to have many UAs with many different UIs all 
catering to different groups of users than it is to require homogeneity 
of UI, presumably targeted at some sort of majority group of users, at 
the expense of all other users.

> iCab defaults to treating javascript and target=_blank the same way.


> One could say that this gives its users more control.

Indeed. ;)

> The question is: How can the UA know when closing a tab *should* take you back to the 
> originating context and when it should not?

Right now it has to guess.  A simple heuristic is that if you have not 
switched tabs since opening the new tab, then go back to the originating 

But again, I would be fine with a way for the originating context to 
hint to the UA what the desired behavior is here.  I do think it should 
be a hint, for the UA's benefit, so that the UA can try to provide the 
best experience it can to the user.

> And/Or, how can the UA know 
> when it should not obey the user preference of opening a _blank in a new 
> Tab?

That's a quite different question, and the answer is "always obey the 
user preferences", in my opinion.

Received on Friday, 19 September 2008 12:53:13 UTC
