web-dev-qa-db-fra.com

validation HTML: l'attribut for de l'élément label doit faire référence à un contrôle de formulaire

Je ne sais pas pourquoi je continue à recevoir cette erreur lors de la vérification de ma page à http://validator.w3.org/check L'erreur était:

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;

voici mon code actuel

<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

Si vous utilisez l'attribut for dans un élément label, il doit correspondre à l'id d'un élément d'entrée dans votre formulaire.

c'est à dire

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

Cette page peut être utile pour plus d'informations. http://www.w3.org/TR/WCAG-TECHS/H44.html

25
Shane A. Darr

Par définition, la valeur for attribut doit correspondre à la valeur d'attribut id d'un "autre" contrôle de formulaire, pour utiliser la terminologie HTML 4.01. Les contrôles sont créés par des éléments input, textarea, button, select ou object, donc juste lire "un autre" comme "a". HTML5 met cela un peu différemment, spécifiant que l'attribut doit faire référence à un élément étiquetable .

D'après le message d'erreur, il semble que vous effectuez une validation par rapport à HTML5. La règle qui s'applique est donc que l'attribut for doit faire référence à un button, input (sauf avec type=hidden), keygen, meter, output, progress, select ou textarea élément. Je suppose que vous venez d'oublier l'attribut id, en supposant à tort que l'attribut name pourrait faire son travail.

11
Jukka K. Korpela