- From: Ian Hickson <ian@hixie.ch>
- Date: Sun, 29 Aug 2004 20:20:13 +0000 (UTC)
On Thu, 26 Aug 2004, Matthew Raymond wrote: > Ian Hickson wrote: > > On Tue, 17 Aug 2004, Matthew Raymond wrote: > > > > > > Tabs are not mutually exclusive, they are just an unordered group > > > > of related sections that are usually shown such that only one is > > > > visible at any one time. > > > > > > Why do we need semantic mutual exclusion at all? It seems to be some > > > kind of semantic justification of the presentational value of having > > > a group of sections where only one can display at a time. On a > > > practical level, just how useful is non-presentational mutual > > > exclusion in markup? > > > > I've run into several cases where I've needed this. For example, > > writing a game application with four screens, all implemented in the > > same HTML file: the login screen, the game "lobby" screen, the actual > > game screen, and the results screen. Only one of those is to be > > displayed at any one time. > > That's _presentational_ mutual exclusion. I fail to see how that > amounts to _semantic_ mutual exclusion. I disagree. I think it is very much a semantic mutual exclusion. It makes no sense to be showing the game screen when the user hasn't yet logged in, for instance. > > > > Anyway, the spec currently has a separate section for tabs, which > > > > says that the tabbed version of the above would be: > > > > > > > > <tabbox> > > > > <section> > > > > <h1>Section 1</h1> > > > > </section> > > > > <section> > > > > <h1>Section 2</h1> > > > > </section> > > > > </tabbox> > > > > > > Quick note: I have to say, I don't like the header tags being > > > treated as tag labels. There are cases where we've done something > > > similar, but only when absolutely necessary. I'm a little concerned > > > that we're getting too clever with our markup rather than having a > > > straight-forward standard. > > > > What's not straight-forward about this? > > Well, for starters, exactly how would someone unfamiliar with HTML5 > know that the <h1> element contains the name of the tab for that > section? Why wouldn't the user just believe that the name is simply a > heading within the section? How would someone unfamiliar with HTML4 know that <var> is for marking up variables? How would someone not familiar with HTML5 know that <section> referred to a document section, and not a band section? (<section class="violins">). The name _is_ simply a heading within the section. And the heading's section title is the tab's title. I don't understand why that is a problem? I think it's a bit semantically dubious to have to give the section titles twice. > I would object far less if it were this: > > <sectionlabel for="section1"><h1>Section 1</h1></sectionlabel> > <section id="section1"> > Content. > </section> But that's really ugly. <h1>Section 1</h1> <section> </section> ...would not be as ugly, but even then, you've lost most of the possibilities of doing magic with <section> (as described in the spec, like using CSS selectors to style the <h1>) and it makes defining <h1>'s semanics a lot harder. > I'm strongly opposed to the use of <h1> as a tab label. [...] The reason > for my objection is semantic overloading. The <h1> element would mean > different things _semantically_ depending on the situation. Why is that a problem? What would <h1> mean there if it wasn't "section header"? > What I don't understand about the example is that there seems to be > an implied <iframe>, since there is no |target| specified. No <iframe>; the links just act like normal links and replace the current page if they have no target="" attribute. (This is similar to how the www.whatwg.org pages have a tab strip at the top with links to several pages.) > > > It could also be used with simple Javascript events, so vendors > > > could keep tabstrip even if they decide to pass on <section>. > > > > Not sure what you mean here. > > Right now, people can create tabs using DHTML. If webmasters had a > tabstrip like the one that exists in VB, all they would have to do is > write some Javascript that would run when a tab is clicked that would > change the ZOrder of a block so that it is on top. Without the tabstrip, > the webmasters have to implement the entire tabstrip widget, and for > DHTML, that means you run into styling problems. So basically you are saying "<tabstrip> allows people who have JS enabled to write JS that hooks into the <tabstrip> element to fake a tabstrip?" If so, then I don't understand your concern. If JS is enabled, they can synthesise all the elements they want from the markup, just like a native implementation would. > A section, in most people's minds, would be a set of paragraphs in a > document, not a (presentationally) mutually exclusive block. That's exactly the point. It needn't be rendered as a tab, that's just the preferred default rendering for visual UAs. It could, in fact, be rendered just as the sections one after the other (as it would in most legacy UAs). -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Sunday, 29 August 2004 13:20:13 UTC