验证HTML:label元素的for属性必须引用表单控件

时间:2013-09-22 15:58:08

标签: html validating

我不知道为什么我在http://validator.w3.org/check检查我的网页时一直收到此错误错误是:

Line 235, Column 84: The for attribute of the label element must refer to a form control.
… <label for="name" style="line-height:24px;">Your Name</label><br>&nbsp;&nbsp;

这是我的实际代码

<div>&nbsp;&nbsp;
  <label for="name" style="line-height:24px;">Your Name</label><br>&nbsp;&nbsp;
  <input class="css_form_namefield TooltipIstok " type="text" name="name" value="" style="width: 554px;" maxlength="50" >
</div>

2 个答案:

答案 0 :(得分:24)

如果在label元素中使用for属性,则必须匹配表单中input元素的id。

<label for="field-id" style="line-height:24px;">Your Name</label><br>&nbsp;&nbsp;
<input type="text" id="field-id">

此页面可能对更多信息有所帮助。 http://www.w3.org/TR/WCAG-TECHS/H44.html

答案 1 :(得分:11)

根据定义,for attribute值必须与“另一个”表单控件的id属性值匹配,才能使用HTML 4.01术语。 Controlsinputtextareabuttonselectobject元素创建,因此只需将“其他”视为“a” 。 HTML5对此有所不同,指定该属性必须引用labelable element

从错误消息中,您似乎正在针对HTML5进行验证,因此适用的规则是for属性必须引用buttoninput(除了type=hidden),keygenmeteroutputprogressselecttextarea元素。我的猜测是你忘记了id属性,错误地认为name属性可以完成它的工作。