[whatwg] The legend element

On Thu, 8 Oct 2009, Markus Ernst wrote:
>
> I found this post by Ian Hickson from August 15, 2006 in the list 
> archive:
> 
> > On Sat, 1 Apr 2006, Henri Sivonen wrote:
> > >
> > > Since the omission of <legend> does not cause any horrible effects, 
> > > I suggest making <legend> optional and reaffirming that if it 
> > > appears, it can appear only once per <fieldset> and only as the 
> > > first child (ignoring whitespace).
> >
> > I agree, and I will do this as part of HTML5, where I am defining 
> > content models. If you don't object, I'll leave this change out of WF2 
> > for now. (If you do object, then let me know, and I'll shoehorn it in 
> > somehow.)
> 
> It looks like this change has not made it into the HTML5 spec so far.

Oops. Done.


> Additionnally I want to suggest to make it possible to place the legend 
> element outside the fieldset element, providing a "for" attribute (just 
> as it is possible to place the label element apart from it's form field 
> element).

This is significantly harder to pull off, for the same reason that we 
haven't been able to use <legend> for <figure>. I recommend we wait for 
the next version of HTML before doing this.


> Background: When writing template based applications, it can be useful 
> to provide a placeholder for the whole fieldset, and another one for the 
> legend, as template authors might want to place or style them 
> individually.
> 
> Example - a questionnaire:
> 
> Template Variable {question} outputs:
> <legend for="question1">What ist your favorite Pet?</legend>
> 
> Template Variable {answers} outputs:
> <fieldset id="question1">
>   <p><label><input type="radio" name="q1" value="Cat">Cat</label></p>
>   <p><label><input type="radio" name="q1" value="Dog">Dog</label></p>
>   <p><label><input type="radio" name="q1" value="Ant">Ant</label></p>
> </fieldset>
> 
> One author might want to use this template:
> <h2>{question}</h2>
> {answers}
> 
> The other one prefers:
> <table>
>   <tr>
>     <td>{question}</td>
>     <td>{answers}</td>
>   </tr>
> </td>
> 
> While the desired results can be easily achieved with the current legend 
> specification when coding manually, it is quite hard to implement with a 
> template system, needing separate template variables for both the 
> fieldset start and end tags, and a loop for the questions. With the 
> focus of making an application as easy to use as possible (which 
> includes template authoring), application authors might rather go 
> without fieldset and legend, and accept the loss of structural 
> consistency and accessibility as a trade-off.
> 
> I am sure this change would not break legacy content in new browsers; 
> anyway I have no Idea how far it would break HTML5 content in legacy 
> browsers.

I don't understand why the <fieldset> and <legend> can't be in the 
template.

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

Received on Monday, 12 October 2009 00:18:01 UTC