[whatwg] Suggestion: Implementation of Tabbed Forms
Lachlan Hunt
lachlan.hunt at iinet.net.au
Wed Jun 30 02:49:00 PDT 2004
Matthew Raymond wrote:
> Lachlan Hunt wrote:
>> Tabs are not a control in a document, they are simply a
>> presentational/functional method of displaying sections.
>
> There is an element of presentation to many elements in HTML. In
> fact, few browsers render some elements with any noticeable difference.
> For instance: TT, I, B, BIG, SMALL, STRIKE, S, and U.
Correct, which is why strike, s and u were deprecated in HTML4, and
b, big, hr, i, small, sub, sup, tt are all in the presentation module of
XHTML1.1. You may have also noticed that most of the elements in the
presentation module have been completly removed from XHTML2, except
<hr/> (though it's still being questioned) and <sub>/<sup>, cause
they're not entirely presentational.
> While the user agent makes some determination as to how this will be rendered, do you
> honestly mean to tell me that <b> and <i> have no presentational
> context?
Of course not, they are entirely presentational. Where on earth did
that come from? I never mentioned anything about them not being
presentational.
> Similarly, if you look at the various values of the |type|
> attribute for <input>, you'll notice that pretty much ALL of the types
> are used for presentational or functional purposes.
Yes, I know. That is unfortunate. XForms attempted to address these
presentational tendencies of HTML forms, for example by replacing <input
type="radio"> and <select> with a single <select1> element, which can be
presented as either radio buttons, a dropdown list or anything else.
> If you like, however, we could do this:
>
> <fsgroup>
> <fieldset><legend>FS 1</legend> ...Some Content...</fieldset>
> <fieldset><legend>FS 2</legend> ...Some Content...</fieldset>
> <fieldset><legend>FS 3</legend> ...Some Content...</fieldset>
> </fsgroup>
A semantic structure like that would be better, but I don't like the
idea of the default presentation of a fieldset being changed to a tab
when within a group like that. Since, as you will likely know,
fieldsets are actually quite common within tab panes when they are used.
What about something like the following. It doesn't change the
meaning or presentation of fieldset, and does not specify anything about
it being presented as tabs, however tabs may be the default presentation
in visual user agents.
<categoryset id="firefox-options">
<category>
<label>General</label>
<fieldset>
<legend>Home Page</legend>
...
</fieldset>
<fieldset>
<legend>Fonts & Colors</legend>
...
</fieldset>
...
</category>
<category>
<label>Privacy</label>
...
</category>
</categoryset>
This structure could be presented as tabs along the top, as buttons down
the side as in Firefox, or as a list like in Mozilla, or any other
presentation you can think of.
> If you feel that HTML should ONLY be a language for documents, then
> what are you doing in a mailing list for adding application-related
> extensions to HTML?
Oh, sorry I didn't realise that this list was only for people who
actually agreed with everything the WG is doing. Never mind the fact
that it would make me a hypocrite if I was completely against them, yet
said or did nothing to at least help make them better.
I'm not saying that I'm completely against them yet, just that I have
some problems with them, but I'll have to leave most of my issues till
later because I haven't had much time to completely review all the
drafts, and reach my conclusions. At this stage, my biggest problems
are with web forms because XForms is already a recommendation, however I
like the concept of a seperate language for web apps. But I will always
diagree with making them extensions to HTML, just so they can be
internet-explorer-operable. I would prefer a new XML language, or
atleast an XHTML module.
>> 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.
>
> Go tell that to a room full of web developers and see how hard they
> laugh.
I'm sure if the room was full of HTML terrorists who've never built a
site with anything but presentational abuse of tables and font tags,
they would laugh, or at least stand there bewildered about there being
any other way of doing it. However, any descent web developer would
agree that tables for layout is incorrect.
>> Does the meaning of the content change in any way when it's not
>> displayed as the tabs? No, it doesn't...>
>
> Yes it does... The <div> element was specifically created
> to be styled, not to establish relationships between their
> contented elements.
No, the <div> element was created as a generic structural container
for logically and structurally grouping the document into divisions.
Because <div>, and <span>, have no default presentation except for being
block and inline, respectively, style sheets need to be used in order or
the structure to be percieved, but that doesn't mean it was created for
presentational purposes only.
>> Therefore, the use of tabs is purely presentational.
>
> As stated above, clearly it is not.
The reason for using tabs is semantic, the method to implement them
should be structural, however the use of tabs is presentational.
>> 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.
>
> Wrong. The example always requires CSS and Javascript to give the
> full effect.
Exactly. "effect" being the key word, indicates that it is entirely
presentational. Of course, we need some form of presentation in order
or us, as humans, to percieve the structure and semantics easily, but
that presentational method should not be defined, as anything but
default presentation in the spec.
>> 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.
>
> It is you who has presented an example of tabs containing document content, not me.
Yes, I know, I was simply stating that the use of fieldsets in that
example would not be appropriate. I presented the example to show that
the concept of tabs is presentational, but the structure they represent
should be marked up.
> The element <legend> is SEMANTICALLY liked to its container,
> <fieldset>. Can you say the same for <div> and <h3>? Nope!
The div, being a structual grouping element, semantically groups all
of it's content. The legend in a fieldset is not just semantically
associated with the fieldset, it is semantically and structurally
associated with the fieldset's content, as is the heading within the div
example.
--
Lachlan Hunt
http://www.lachy.id.au/
lachlan.hunt at lachy.id.au
More information about the whatwg
mailing list