web-dev-qa-db-ja.com

HTMLの検証:label要素のfor属性はフォームコントロールを参照する必要があります

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>
14
SOoCreative

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

25
Shane A. Darr

定義により、HTML 4.01の用語を使用するには、 for属性 の値が「別の」フォームコントロールのid属性の値と一致する必要があります。 Controlsinputtextareabuttonselect、またはobject要素によって作成されるので、 「別の」を「a」と読みます。 HTML5はこれを多少異なる方法で配置し、属性が labelable element を参照する必要があることを指定します。

エラーメッセージから、HTML5に対して検証しているようです。そのため、適用されるルールは、for属性がbuttoninputを参照する必要があることです( type=hidden)、keygenmeteroutputprogressselect、またはtextarea要素。私の推測では、id属性がその役割を果たし得ると誤って想定して、name属性を忘れただけだと思います。

11