[whatwg] Suggestion: Implementation of Tabbed Forms

Lachlan Hunt lachlan.hunt at iinet.net.au
Tue Jun 29 07:16:53 PDT 2004

Matthew Raymond wrote:
>    A structure that acts as a container for controls and other elements, 
> that is separate from other such containers. How does this not describe 
> <frameset>? Furthermore, <frameset> has an existing structure to name 
> each section: <legend>. The element <div> does not.

   I assume you meant <fieldset>.

>>  It should not be marked up that these sections should be displayed as 
>> tabs.  This should be left for the style sheet.
>    No, how the tabs should look or be oriented should be left to the 
> style sheet. The tabs themselves are a form of control used to manage 
> and organize data.

   Tabs are not a control in a document, they are simply a 
presentational/functional method of displaying sections.  In an 
application user interface language such as XUL, they may be implemented 
as a control, but not in a document language such as HTML.

>    Replacing markup with HTML+CSS+Javascript does little to protect the 
> semantic purity of HTML while it significantly increases complexity.

   Seperating structure from presentation and functionality does 
everything to protect the *semantic* purity of (X)HTML.

> For instance, I could use style sheets and Javascript to create a table 
> without using any of the HTML table elements, but this means recreating 
> both the organizational structure of tables and recreating the default 
> styling of tables. Why would we want to make the webmaster do all this 
> just to avoid introducing a small bit of additional markup?

   If something is being displayed as a table for purely presentational 
purposes, then that's exactly how it should be done.  If it's a table 
because the content is logically, structurally and semantically tabular, 
then it should be marked up in a table.

>    For instance, in Netscape Navigator 4.0, your example 
> (http://www.alistapart.com/d/eatcake/5.html) doesn't work at all. With 
> Javascript turned off, all of the panels in the example display at the 
> same time.

   Of course it's not going to function as tabbed panes, displayed one 
at a time with JS disabled, that's why it falls back to all the content 
displayed at the same time.  Does the meaning of the content change in 
any way when it's not displayed as the tabs?  No, it doesn't... 
Therefore, the use of tabs is purely presentational.

>  My solution using <del><frameset></del><ins><fieldset></ins> would have at least degraded 
> into a series of labeled frames with borders in NN4.

   Well, then replace the <div>s in that example with <fieldset>s and 
use the <legend>s to create the tabs instead of the links... it still 
shows exactly the same idea that tabs are presentational.

>    Why pursue a solution that degrades poorly,

   How does it degrade poorly?  The only difference between the two 
solutions is that one has a default presentation of a border and a 
label.  However, if fieldsets were used, then it would be semantically 
incorrect (in that example) because it's not marking up a group of form 
fields.  Also, in that example, the <legend>s have simply been replaced 
by headings, so there's very little difference.

> Semantic purity is all find and dandy, but when dealing with web apps,
>  an extreme level of semantic purity is counterproductive.

   No, semantic purity of the mark up language *MUST* be maintained, 
and, if anything, should infact be improved.  I think you will find that 
it more productive and flexible when the markup is not mixed with any 
presentation or functionality.

Lachlan Hunt

lachlan.hunt at lachy.id.au

More information about the whatwg mailing list