On Tue, Oct 28, 2008 at 10:32 AM, Ian Hickson wrote:
> On Tue, 31 Oct 2006, Lachlan Hunt wrote:
>>
>> [...] The problem is that each radio button or checkbox has it's own
>> label, but the whole group is often associated with a single question
>> and there is no way mark that up.
>>
>> e.g.
>>
>> <p>Gender:
>>   <label for="m"><input type="radio" id="m" name="gender" value="m">
>>     Male</label>
>>   <label for="f"><input type="radio" id="f" name="gender" value="f">
>>     Female</label>
>> </p>
>>
>> In this case, when screen readers are in forms mode and the user is
>> tabbing between form controls, it will only read out "Male" and
>> "Female", it won't read out "Gender:".
>>
>> There are workarounds using fieldset and legend for the question, like
>> this.
>>
>> <fieldset>
>>   <legend>Gender:</legend>
>>   <label for="m"><input type="radio" id="m" name="gender" value="m">
>>     Male</label>
>>   <label for="f"><input type="radio" id="f" name="gender" value="f">
>>     Female</label>
>> </fieldset>
>
> That's not a workaround. It's exactly what you're supposed to do.
> <fieldset> lets you group a set of controls with a common legend, which is
> exactly the problem you described.

Wouldn't aria-labelledby [1] be better-suited? (if and once ARIA is
added to HTML5)

<span id=gender>Gender:</span>

<input type=radio name=gender id=gender-male value=m
   aria-labelledby="gender male"
<label id=male for=gender-male>Male</label>

<input type=radio name=gender id=gender-female value=f
   aria-labelledby="gender female">
<label id=female for=gender-female>Female</label>

According to [2] it works in most AT (and note the use of <label
for=""> to both degrade gracefully and gain the "click to check"
behavior in "visual" browsers).

[1] http://www.w3.org/TR/wai-aria/#labelledby
[2] 
http://www.marcozehe.de/2008/03/23/easy-aria-tip-2-aria-labelledby-and-aria-describedby/


-- 
Thomas Broyer

Reply via email to