HTML,可访问性:是否可以使用单个标签标记两个控件?

时间:2011-01-28 10:54:58

标签: accessibility label html

我在网上找到了一个示例,其中label标签及其'for'属性用于提示标签所属的控件的浏览器。例如:

<form>  
  <label for="male">Male</label>
  <input type="radio" name="sex" id="male" />
  <br />
  <label for="female">Female</label>
  <input type="radio" name="sex" id="female" />
</form>

我的问题是,如果我实际上有两个控件,其中相同的单个标签应分配给两者的组合(如果可能的话,不分配给每一个),例如:

a label text + a numeric input field + a text (unit) input field  

我应该

  1. 仅将标签分配给数字输入字段(因为无法完成)或
  2. 是否可以将数字和文本输入字段放入单个span标记并将标签附加到该范围?
  3. 或者两个输入控件都可以放在单个标签标签内吗?
  4. 哪种解决方案适用于所有浏览器的辅助功能?

1 个答案:

答案 0 :(得分:7)

标签的for属性确实可以与任何元素一起使用(只要ID匹配),但仅适用于单个元素。此外,它实际上只对 form 元素有意义。

来自spec

  

for = idref [CS]

     

此属性显式将正在定义的标签与另一个控件相关联。如果存在,则此属性的值必须与同一文档中某个其他控件的id属性的值相同。如果不存在,则定义的标签与元素的内容相关联。

  

要隐式地将标签与另一个控件相关联,控制元素必须位于LABEL元素的内容中。在这种情况下,LABEL 可能只包含一个控制元素

(强调我的)