Est-il préférable d'envelopper la balise d'étiquette autour d'un élément de formulaire ou d'utiliser le “pour” de l'attribut HTML?
Je sais que vous pouvez utiliser les deux, mais est-il préférable d'utiliser l'un plutôt que l'autre? Si oui, pourquoi?
Exemple de "pour" attribut:
<input type="text" id="male"><label for="male">Male</label>
Exemple de texte:
<label>Age:<input type="text"></label>
- J'avais envelopper l'étiquette autour de l'entrée juste parce que je tiens à éviter l'ajout superflu
id
attributs - Comme mentionné dans une des réponses, l'attribut est parfois utile. Le w3c est l'exemple de la pose de l'étiquette et de l'entrée correspondante dans la table distincte de cellules est un potentiel cas où vous auriez besoin d'eux distincts: w3.org/TR/html401/interact/forms.html#h-17.9.1
- Ok merci c'clarifier les choses pour moi.
- Pour ce que ça vaut, vous devez toujours utiliser le
for
de l'attribut et de l'utilisation IDs avec tous les éléments de formulaire, même si l'étiquette enveloppe l'élément. Cette aide grandement les utilisateurs avec des problèmes d'accessibilité, - de nombreux lecteurs d'écran, aujourd'hui, regardez pour lesfor
attribut, même si l'étiquette enveloppements d'un élément. En tout cas, c'est une bonne pratique. - Peut-être que les lecteurs d'écran devrait être mieux?
Vous devez vous connecter pour publier un commentaire.
Du point de vue sémantique, les deux possibilités sont les mêmes. Mais selon la mise en page que vous voulez, il y a des avantages et des inconvénients pour les deux possibilités. Par exemple, si vous voulez que l'étiquette est à un tout autre endroit, il ne ferait aucun sens de mettre de l'entrée dans le label. Mais si vous voulez être en mesure de faire un hover-effet via css, que les ensembles de e. g. un arrière-plan de l'étiquette et de la zone autour de l'entrée, il serait préférable de mettre l'entrée dans le label.
<label for="name"><span class="label">Name</span><input type="text" name="name" id="name" /></label>
selon
http://www.w3.org/TR/2008/WD-WCAG20-TECHS-20080430/H44.html
Ainsi, lorsque vous envelopper, vous pouvez également fournir le "pour" de l'attribut de l'élément label.
L'écharpe permet de déposer les
for
attribut, qui à son tour permet d'omettre l'attribut `id' sur l'élément d'entrée. Idéal pour les modèles ou les formulaires qui doivent être utilisés dans plusieurs instances sur une page....and if you use the for attribute it has to refer to a form element, but you don't have to use the attribute...
Il n'a pas d'importance. À la fois accomplir les mêmes choses en termes de définition de la relation entre l'étiquette et le champ.
L'incorporation de l'entrée dans le label affecte également l'habillage de comportement.
<label><checkbox/>Value with spaces</label>
s'enroule comme une seule unité par défaut. Alors que<checkbox id="check"/><label for="check">Value with spaces</label>
va envelopper le texte avec des sauts de au les espaces et s'envelopper l'étiquette d'une nouvelle ligne, mais laissez la case ci-dessus.Si ça compte pour rien, cadres comme ASP.NET mettre le
label
élément à côté de lainput
/select
/textarea
éléments et d'utiliser lelabel
'sfor
attribut.