[whatwg] Proposal: target="_reference"

Ian Hickson ian at hixie.ch
Sat Nov 29 19:31:18 PST 2008


I haven't added target="_reference". Though I think it's a good idea, we 
would probably need more browser vendor buy-in before going ahead with 
this. If anyone wants to see if we can get this moved further along, I 
recommend trying to follow the steps described here:

   http://wiki.whatwg.org/wiki/FAQ#Is_there_a_process_for_adding_new_features_to_the_spec.3F

In particular, step 4 (getting experimental implementations).

On Sat, 26 Apr 2008, Matthew Paul Thomas wrote:
>
> Summary: I propose target="_reference", which would open a link in a 
> secondary viewport, for example a closable pane at the bottom of a 
> browser window. This would be much less annoying and intimidating than 
> target="_blank". It could be used immediately for providing help, and 
> for linking to privacy policies, terms of use, etc within forms. 
> Eventually it could also be used for footnotes and endnotes.
>
> [...]
> 
> For a vanilla form -- a vertical series of labelled text fields, 
> checkboxes, and so on -- there are indeed friendlier ways of offering 
> help than in a popup window. For example, a "(What's this?)" link next 
> to a control might make visible a section under the control containing 
> extra help, without obscuring the rest of the form. That is what we 
> planned initially.
> 
> But in a page that's less like a form and more like an application, 
> there often isn't room to do this. The example that defeated our 
> expanding-section plan was needing to explain the eight possible choices 
> for a <select> menu, where the menu was the sole contents of each cell 
> in a table column. The help link for that belonged in the column's 
> header cell, but then where should the help itself appear? Not enough 
> room in the header cell, or anywhere else in the table itself. And 
> displaying it below the table risked it being off-screen and not seen, 
> if the table was tall enough. There's a similar problem with help links 
> that appear in any small sidebar or other narrow area.
> 
> So our current plan is to use a Facebook-style fake popup window, a box 
> that floats above the rest of the page content and is dismissed with an 
> "OK" button. This has two important advantages over target="_blank":
>
> * If you close or navigate away from the page, the help doesn't need to 
> be closed separately.
>
> * If you switch to a different window or tab, the help isn't flopping 
> around unneeded.
> 
> But it also has three disadvantages compared with target="_blank":
>
> * It's impossible to arrange the application and the help side by side, 
> such that they don't obscure each other.
>
> * Whatever interface we provide for closing the help "window", it's 
> inconsistent with someone's platform conventions, and inconsistent with 
> other Web sites that do something similar.
>
> * It's literally thousands of times harder to implement.
> 
> What would an interface look like that avoided these disadvantages? It 
> would disappear whenever the page was closed, navigated away from, or 
> switched away from. It wouldn't obscure the page content. It would be 
> consistent with platform conventions. And it would be just as easy for 
> authors to implement as target="_blank" is.
> 
> The obvious solution, for large-screen browsers, is a pane that appears 
> at the bottom of the browser window -- like the docked palettes in some 
> drawing programs, or the Firebug add-on in Firefox. This pane would 
> disappear along with the rest of the page as soon as you went to a new 
> page. The browser would be in charge of giving it a Close button that 
> matches OS conventions. And a browser might also (but wouldn't need to) 
> let you drag it from the bottom to the side of the window, or even 
> undock it into its own floating window (though this should still 
> disappear when you closed the main page or navigated to another page).
> 
> For small-screen browsers, such as those in phones, it would be a 
> separate screen that -- unlike target="_blank" -- had a browser-supplied 
> "OK" button, and when closed always returned you to the screen whence it 
> was opened, preferably in exactly the state it was in when you left it.
> 
> To support this, I propose target="_reference", referring to a secondary 
> viewport that is strongly associated with the primary viewport from 
> which it is opened. A browser must provide an obvious mechanism for 
> closing this secondary viewport separately from the primary one; for the 
> author to do so should be non-conformant. And if the primary viewport is 
> closed, or navigates to a new resource (not just a separate fragment of 
> the same resource), the secondary viewport should close automatically.
> 
> Only one secondary viewport should be available per primary viewport: 
> within the secondary viewport, target="_reference" should refer to the 
> same viewport, not to a new one.
> 
> Web application developers could start using target="_reference" 
> immediately for providing help, since the way current browsers treat it 
> -- opening a separate window -- would be an acceptable fallback. (If 
> developers didn't consider it acceptable fallback, they could use script 
> to replace the new-window behavior with fake-popup behavior in legacy 
> browsers.)
> 
> As a bonus, once it was widely supported, document authors could also 
> start using target="_reference" for footnotes and endnotes. This would 
> be much better than most existing footnote/endnote mechanisms, in that 
> the browser wouldn't scroll or navigate away from the original text 
> while showing the note. This in turn would make it much easier to 
> implement than existing footnote/endnote mechanisms: authors wouldn't 
> need to provide special "Back to article" links, or insert dummy 
> id=/name= attributes to serve as the targets of those links. It would 
> work equally well regardless of where the note text was placed -- at the 
> end of a <section>, at the end of the page, or even on a separate page. 
> And it wouldn't even require adding any new elements or attributes to 
> HTML.

On Sun, 27 Apr 2008, Philip Taylor wrote:
> 
> IE6 supported target=_search and target=_media, to open pages in 
> sidebars (closable panes at the side of the browser window). Nobody uses 
> those target values (in 130K pages I see 3 pages with either), and 
> http://msdn2.microsoft.com/en-us/library/ms534659(VS.85).aspx says 
> _media was dropped in XP SP2 and _search was dropped in IE7 ("for 
> security reasons"). _reference sounds functionally very similar, so how 
> would it avoid those security problems and why would it be more 
> successful in practice?

On Sun, 27 Apr 2008, Matthew Paul Thomas wrote:
> 
> The problem with _media and _search was that if you gave them an invalid 
> URL, the resulting error page <res://blahblahblah> was in the "My 
> Computer" zone, but could still be manipulated (e.g. have malicious code 
> inserted in it) by the remote page. That could be avoided by not 
> treating error pages as being in the "My Computer" zone. I guess 
> Microsoft didn't bother with this because they knew that media was going 
> to be, and search already was, handled differently in IE7 anyway.

On Mon, 28 Apr 2008, fantasai wrote:
> 
> How are you supposed to figure out the size of this thing? If it's for 
> footnotes and TOS and errors and help and what's-this all at once.. they 
> have different layout requirements. Footnotes fit fine at the bottom, 
> but notifications should be at the top. Small help content could be 
> anywhere, but extensive help content would fit better on the side, 
> especially on wide screens. Squeezing significant amounts of text 
> content into a top or bottom panel would make it hard to read: that 
> space is wide and short. And TOS pages need more space than any of these 
> if you're actually planning to read them, but they don't need to be 
> side-by-side with the original page: in that case a floating box in the 
> middle of the page would be ideal. Etc.

On Sun, 4 May 2008, Matthew Paul Thomas wrote:
> 
> I don't intend target="_reference" for notifications; that would be 
> quite inappropriate. Firstly, a notification should appear unbidden, but 
> if an author tried to use target="_reference" in that way, the popup 
> blockers in legacy browsers would ensure it never appeared. Secondly, a 
> notification is typically something you read once and then ignore, so it 
> doesn't matter if it scrolls out of view, while part of the point of 
> target="_reference" is to ensure the resource *doesn't* scroll out of 
> view. And thirdly, it usually makes little sense for a notification to 
> have a separate URL, but this is much more useful for help, terms of 
> service, privacy policies etc.
> 
> I intend target="_reference" for the purposes I actually described: 
> help, terms of service, privacy policies, and (eventually) footnotes and 
> endnotes. I chose "_reference" because that term roughly covers all 
> those use cases. But if the name is confusing, which it may be, I'd be 
> happy for it to be "_secondary" or something similarly non-specific.
>
> 
> target="_reference" would be inappropriate for presenting errors, for 
> much the same reasons as it would be inappropriate for presenting 
> notifications.
> 
> The exact presentation is up to the UA, of course, but I imagine a 
> resizable pane at the bottom of the viewport, defaulting to about a 
> quarter of the viewport height or about 12 em, whichever is smaller. 
> (Ideally it would be sized based on the actual height of the linked 
> resource, but that's impractical: impractical for internal fragments 
> because you usually can't tell where the fragment ends, and impractical 
> for external resources because -- just as with target="_blank" -- 
> responsiveness would require showing the pane before the resource 
> finishes loading.)

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'



More information about the whatwg mailing list