提问人:GlenPeterson 提问时间:11/8/2012 最后编辑:GlenPeterson 更新时间:10/18/2017 访问量:76362
将 HTML“label”标签与单选按钮一起使用
Using the HTML 'label' tag with radio buttons
问:
标签是否适用于单选按钮?如果是这样,你如何使用它?我有一个显示如下的表单:label
First Name: (text field)
Hair Color: (color drop-down)
Description: (text area)
Salutation: (radio buttons for Mr., Mrs., Miss)
我想使用左列中每个标签的标记来定义其与右列中相应控件的连接。但是,如果我使用单选按钮,规范似乎表明,突然间,表单控件的实际“称呼”标签不再属于标签,而是选项“Mr.、Mrs.等”进入标签。label
label
label
我一直是可访问性和语义网的粉丝,但这种设计对我来说没有意义。标记显式声明标签。标记选择选项。如何在一组单选按钮的实际标签上声明 a?label
option
label
更新:下面是一个代码示例:
<tr><th><label for"sc">Status:</label></th>
<td> </td>
<td><select name="statusCode" id="sc">
<option value="ON_TIME">On Time</option>
<option value="LATE">Late</option>
</select></td></tr>
这很好用。但与其他窗体控件不同的是,单选按钮对每个值都有一个单独的字段:
<tr><th align="right"><label for="???">Activity:</label></th>
<td> </td>
<td align="left"><input type="radio" name="es" value="" id="es0" /> Active  
<input type="radio" name="es" value="ON_TIME" checked="checked" id="es1" /> Completed on Time  
<input type="radio" name="es" value="LATE" id="es2" /> Completed Late  
<input type="radio" name="es" value="CANCELED" id="es3" /> Canceled</td>
</tr>
该怎么办?
答:
标签标签是否适用于单选按钮?
是的
如果是这样,你如何使用它?
与任何其他窗体控件相同。
您可以为其指定一个与控件匹配的属性,也可以将控件放在 label 元素内。for
id
我想为左列中的每个标签使用标签标签
标签用于一个控件,而不是一组控件。
如果要为一组控件添加标题,请使用带有 a 的 a(并为该集中的每个控件提供 a)。<fieldset>
<legend>
<label>
<fieldset>
<legend> Salutation </legend>
<label> <input type="radio" name="salutation" value="Mr."> Mr. </label>
<label> <input type="radio" name="salutation" value="Mrs."> Mrs. </label>
<!-- etc -->
</fieldset>
评论
<input type="radio"
<select>
<label><input>text<label>
Label 的 'for' 属性对应于单选按钮 ID。
<label for="thisRad">Radio Button 1</label>
<input type="radio" id="thisRad" />
希望它有所帮助。
你会希望你的看起来像这样......
Salutation<br />
<label for="radMr">Mr.</label><input type="radio" id="radMr" />
<label for="radMrs">Mrs.</label><input type="radio" id="radMrs" />
<label for="radMiss">Miss.</label><input type="radio" id="radMiss" />
评论
不能为一组按钮声明标签,而只能为每个按钮声明标签。 在本例中,标签是“先生”、“夫人”和“小姐”,而不是“称呼”。
更新
:也许你应该为你的这个“标签”使用另一个标签 - 因为它不是一个真正的标签。
<tr>
<th align="right" scope="row"><span class="label">Activity:</span></th>
<td> </td>
<td align="left"><label><input type="radio" name="es" value="" id="es0" /> Active  </label>
[... and so on]
</tr>
评论
回答您的问题:不可以,您不能将 Salutation 连接到其中一个单选按钮。如果您单击“称呼”,则会选择其中一个选项,这是没有意义的。相反,您可以为 Mr、Mrs 和 Miss 添加自己的标签,因此,如果有人单击其中一个单词,将选择相应的单选按钮。
<input id="salutation_mr" type="radio" value="mr" name="salutation">
<label for="salutation_mr">Mr.</label>
<input id="salutation_mrs" type="radio" value="mrs" name="salutation">
<label for="salutation_mrs">Mrs.</label>
<input id="salutation_miss" type="radio" value="miss" name="salutation">
<label for="salutation_miss">Miss</label>
我确实认为您仍然可以将 Salutation 包装在 我纠正了,请参阅下面的评论。虽然这在技术上是可行的,但这不是本意。<label>
元素中,只是不能使用 for
属性。<label>
评论
<fieldset>
<legend>
<标签>
的实际用途。
for
<label>
啊,是的。这是它的工作原理。
<label>
标记各个字段,因此每个字段都有自己的 .<input type="radio">
<label>
要标记一组字段(例如,共享相同的多个单选按钮),请使用带有元素的标签。name
<fieldset>
<legend>
<fieldset>
<legend>Salutation</legend>
<label for="salutation_mr">Mr <input id="salutation_mr" name="salutation" type="radio" value="mr"><label>
<label for="salutation_mrs">Mrs <input id="salutation_mrs" name="salutation" type="radio" value="mrs"><label>
<label for="salutation_miss">Miss <input id="salutation_miss" name="salutation" type="radio" value="miss"><label>
<label for="salutation_ms">Ms <input id="salutation_miss" name="salutation" type="radio" value="ms"><label>
</fieldset>
评论
可以使用 来关联控件,而无需使用 .这是 WCAG 2.0 建议的技术之一。aria-role="radiogroup"
<fieldset>
<div role="radiogroup" aria-labelledby="profession_label" aria-describedby="profession_help">
<p id="profession_label">What is your profession?</p>
<p id="profession_help">If dual-classed, selected your highest leveled class</p>
<label><input name="profession" type="radio" value="fighter"> Fighter</label>
<label><input name="profession" type="radio" value="mage"> Mage</label>
<label><input name="profession" type="radio" value="cleric"> Cleric</label>
<label><input name="profession" type="radio" value="theif"> Thief</label>
</div>
但是,我注意到使用这种技术 WebAim Wave 工具会发出有关丢失的警告,所以我不确定 AT 对此的支持是什么样的。<fieldset>
我对主题的 2 美分,或者更确切地说是一个侧节点(它不使用隐式关联来能够放置在任何地方,而是链接):按属性进行分组,并按属性进行链接:name
id
<ol>
<li>
<input type="radio" name="faqList" id="faqListItem1" checked />
<div>
<label for="faqListItem1">i 1</label>
</div>
</li>
<li>
<input type="radio" name="faqList" id="faqListItem2" />
<div>
<label for="faqListItem2">i 2</label>
</div>
</li>
<li>
<input type="radio" name="faqList" id="faqListItem3" />
<div>
<label for="faqListItem3">i 3</label>
</div>
</li>
</ol>
评论