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

15

我不知道为什么在检查我的页面时,总是会收到这个错误信息: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个回答

26
如果您在标签元素中使用 for 属性,则其必须与表单中的输入元素的 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


这是我的代码<div>   <label for="name" style="line-height:24px;">你的名字</label><br>   <input class="css_form_namefield TooltipIstok " type="text" name="name" value="" style="width: 554px;" maxlength="50" > </div> - SOoCreative
5
这个答案是错误的。你必须匹配id而不是名称。参见:http://www.w3.org/TR/html5/forms.html#the-label-element。下面的答案是正确的。 - mtl

11
按照定义,for属性的值必须匹配“另一个”表单控件的id属性值,以使用HTML 4.01术语。控件inputtextareabuttonselectobject元素创建,因此只需将“另一个”读作“一个”。HTML5有所不同,指定该属性必须引用一个可标记的元素
根据错误信息,看起来您正在进行HTML5验证,因此适用的规则是for属性必须引用buttoninput(除了type=hidden)、keygenmeteroutputprogressselecttextarea元素。我猜测您只是忘记了id属性,并错误地认为name属性可以完成其工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接