W3C home > Mailing lists > Public > whatwg@whatwg.org > October 2009

[whatwg] The legend element

From: Markus Ernst <derernst@gmx.ch>
Date: Mon, 12 Oct 2009 12:59:09 +0200
Message-ID: <4AD30BFD.2080606@gmx.ch>
Ian Hickson schrieb:
> 
>> 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.

Would it be possible and easy to allow <label> for fieldsets? This looks 
somehow consistent to me:

<h2><label for="question1">Favorite pet?</label><h2>
<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>

or:

<label>
   <h2>Favorite pet?<h2>
   <fieldset>
     <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>
</label>

>> 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.

That is how I do it now. The downside of it is the fact that some 
themplate authors might forget it - a relevant number of web designers 
in fact don't even know about fieldsets, as forms usually "work" with or 
without them. Anyway it is not a big problem; it would just be a nice 
enhancement of consistency if the template engine were able to output 
*all* form structuring elements.
Received on Monday, 12 October 2009 03:59:09 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:18 UTC