Mary avait une petite forme, et ses champs étaient étiquetés ainsi.
Chaque fois qu'une erreur s'introduisait, elle semait la confusion.
J'ai une étiquette pour chaque champ de saisie ... affaire assez standard. Après avoir validé le formulaire, j'affiche un petit paragraphe utile en haut du formulaire détaillant les informations manquantes ou incorrectes.
Puis-je avoir deux étiquettes pour le même champ de saisie? Un sous la forme appropriée et un dans le texte de rappel de validation? Y a-t-il une raison pour laquelle je ne devrais pas faire ça?
label
. Vous pouvez même omettre les attributsfor
etid
. La spécification appelle cette association implicite.Réponses:
Je suppose que cette question concerne les formulaires HTML. De la spécification :
Ainsi, chaque contrôle de formulaire peut être référencé par plusieurs étiquettes, mais chaque étiquette ne peut référencer qu'un seul contrôle. Donc, s'il est judicieux d'avoir une deuxième étiquette pour un contrôle (et dans la situation que vous décrivez, c'est le cas), n'hésitez pas à ajouter une deuxième étiquette.
la source
Le HTML est légal, et cela fonctionne (cliquer sur l'une des étiquettes transférera le focus sur le champ en question).
C'est un peu plus difficile à faire pour des raisons d'accessibilité.
Ce n'est pas une approche "commune", et à cause de cela au moins un lecteur d'écran commun (que j'ai testé avec NVDA) ne lit que la première étiquette lorsque vous déplacez le focus dans le champ - il ignore les étiquettes supplémentaires pour le même champ.
Ainsi, si votre message d'erreur se trouve en haut de la page, un utilisateur aveugle ou malvoyant qui parcourt les champs n'entendra que le message d'erreur lorsqu'il atterrit sur le champ en question, et non l'étiquette «réelle» à côté.
Par conséquent, si vous formulez correctement le message d'erreur, cela pourrait être une bonne chose (certainement mieux que de simplement mettre en évidence le champ non validant en rouge!).
la source
Oui, plusieurs étiquettes peuvent pointer sur le même contrôle de formulaire. C'est parfaitement légal :
Ceci n'est qu'un exemple ... normalement, vous encapsuleriez ces lignes avec une étiquette puisqu'elles sont proches.
la source
LABEL
peuvent être associés au même contrôle en créant plusieurs références via l'for
attribut."