- From: Maciej Stachowiak <mjs@apple.com>
- Date: Sun, 16 Sep 2007 16:53:30 -0700
- To: Lachlan Hunt <lachlan.hunt@lachy.id.au>
- Cc: "public-html@w3.org WG" <public-html@w3.org>
On Sep 16, 2007, at 7:31 AM, Lachlan Hunt wrote:
>
> Maciej Stachowiak wrote:
>> 3.b) Authors may have existing styling for label for form
>> control purposes that's not specifically scoped via classes, ids or
>> descendant rules. In this case, they would have to undo it for
>> figure labels. The same issue is possible in theory for <legend>,
>> but the use of <fieldset> seems to be relatively rare as it does
>> not fit well with modern visual/interaction design.
>> I think the problems with using <legend> are more serious than
>> either of the above problems.
>
> I think you're dismissing the pre-existing styling issue too
> quickly. It needs to be as easy as possible to migrate existing
> sites to HTML5 in the future, so we need to consider what kinds of
> issues authors will face in practice.
>
> A lot of authors style labels in a variety of non-trivial ways to
> achieve various form layouts, This often includes, among other
> things, floating, margins, padding, text alignment, colours, cursor
> pointers, etc. and writing styles to undo all of them in the figure
> case is not really that trivial in all cases.
I acknowledge this, the only reason I think it might be remotely
workable is that the first few sites I looked at with styled labels
seem to mostly use "form label" or ".someFormClass label" rules
instead of just "label". (Or, sadly, they don't use a label element at
all but instead a <div> or <p>).
> Since in IE, the label wouldn't be a descendant of the figure
> element, the labels could not be selected using the selector:
>
> figure label { ... }
>
> It would require the use of an additional class name or containing
> element, or for the DOM to be fixed up with a script.
I think IE will require script-based fixup (or namespace trickery) in
any case.
>
> This issue may still happen with legend as well, though its likely
> to be to a much lesser extent because the current limitations with
> styling fieldset legends mean that fewer styles are typically
> applied. Although, I do agree the current problems with legend are
> serious, I think we need more information from browser vendors.
>
> Is it possible for browsers to fix their handling of legend, so that
> it appears in the DOM when used outside of fieldset? Maciej
> indicated in IRC that this may be done as a way to avoid other
> problems. [1]
[...]
> In Safari 3 Beta (Win), the figure's legend element isn't present
> within the DOM.
I'm sure it's possible to fix this. But it seems to me that a new
element will not encounter these problems at all and so will work back
to even older browser versions (Safari 2, Firefox 1.5, etc). So a new
element seem to be better than <legend> with almost no disadvantages
(just the relatively minor one of introducing more new elements).
Thus, in my opinion, the only reasonable choice is between <label> and
one or more new elements.
Pro <label> / Con new element:
- Requires slightly less script-based fixup in IE
- Avoids introducing new elements (with some annoying naming choices
to be made)
Pro new element / Con <label>:
- New elements won't risk colliding with pre-existing styles
Out of the new names, I kind of like figcaption/detailslabel even
though it's two elements instead of one.
Regards,
Maciej
Received on Sunday, 16 September 2007 23:53:40 UTC