在单选按钮上使用“标签”


136

在单选按钮上使用“ label for”参数时,要符合508 *,以下正确吗?

 <label for="button one"><input type="radio" name="group1" id="r1" value="1" /> button one</label> 

还是这个?

 <input type="radio" name="group1" id="r1" value="1" /><label for="button one"> button one</label>

我问的原因是在第二个示例中,“标签”仅包含文本,而不包含实际的单选按钮。

* 1973年《康复法案》第508条要求联邦机构向残疾人提供软件和网站可访问性。

Answers:


216

差不多了 应该是这样的:

<input type="radio" name="group1" id="r1" value="1" />
<label for="r1"> button one</label>

中的值for应为您要标记的元素的ID。


4
您的回答当然是正确的,但玛莎有正确的答案。Martha的两个示例都是完全有效的HTML5。例如,如果您希望整个东西都放在一个框架中,则使用css设置第二个样式的样式会更容易。如果您希望标签位于其他位置,请第一个。但是两者都可以。最好的祝福!
Jacek Kowalewski 2014年

5
嗯..如何使一个标签在两个单选按钮之间切换?您不能有两个相同的ID ...:/
Nils Sens

1
@NilsSens每个电台和标签对都应该具有唯一的ID,并且它们永不应该共享ID
Daniel Waters

@NilsSens在2个单选按钮之间切换,它们只有1个标签?听起来很明显,使用复选框代替了:D
T_D

啊,我的意思不是说可以切换单选按钮的超级标签。像:类别最喜欢的水果,然后单击该类别,就可以在idk“香蕉”和“草莓”之间进行切换,因为,为什么仅在切换选项时执行鼠标移动UX。今天,我将使用JS进行手工编码,但很有趣的是,是否只有CSS ::
Nils Sens,

86

两种结构都是有效且可访问的,但for属性应等于id输入元素的:

<input type="radio" ... id="r1" /><label for="r1">button text</label>

要么

<label for="r1"><input type="radio" ... id="r1" />button text</label>

for属性在第二个版本中是可选的(包含输入的标签),但是IIRC中有一些较旧的浏览器不会使标签文本可单击,除非您将其包括在内。第一个版本(输入后带有标签)更容易通过CSS使用相邻的同级选择器进行样式设置+

input[type="radio"]:checked+label {font-weight:bold;}

9
是的,尽管在第二个示例中,“ for”属性不是必需的。
Ishmael

4
我认为有些浏览器版本仅在使用'for'属性时才使按钮文本“可单击”,即,将输入内容包装在标签内还不够。
Martha

@Martha-您知道哪些浏览器吗?
柯克兰

2
@Kirkland - w3.org/TR/html401/interact/forms.html#h-17.9似乎表明,第二种形式是有效的,但一些消息来源表明支持可能不能通用。for无论如何,最好提供该属性。
Ishmael 2013年

1
@RalphDavidAbernathy是的,相同的规则适用于复选框。
Ishmael

0

(首先读出已经说明了其他的答案for中的<label></label>标签。好了,无论是上衣的答案是正确的,但对于我的挑战,它是当你有几个单选框,你应该为他们选择一个共同的名字一样name="r1" ,但不同的IDS id="r1_1" ... id="r1_2"

因此,这种方式的答案更加清晰,并且消除了名称和ID之间的冲突。

您需要为单选框的不同选项使用不同的ID。

<input type="radio" name="r1" id="r1_1" />

       <label for="r1_1">button text one</label>
       <br/>
       <input type="radio" name="r1" id="r1_2" />

       <label for="r1_2">button text two</label>
       <br/>
       <input type="radio" name="r1" id="r1_3" />

       <label for="r1_3">button text three</label>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.