Règle n° 69 - Chaque champ de formulaire est associé dans le code source à une étiquette qui lui est propre.
Ne pas savoir à quoi sert un champ de formulaire peut être extrêmement déroutant.
Objectif
- faciliter la compréhension des données attendues dans les formulaires,
- permettre aux aides techniques d’accessibilité de restituer les champs de formulaires en les associant systématiquement à une étiquette indiquant leur rôle et la nature de la saisie attendue,
- faciliter la saisie en permettant de sélectionner le champ via un clic sur son étiquette aussi bien que sur le champ lui-même (particulièrement en cas de case à cocher ou de case radio),
- améliorer l’accessibilité des contenus aux personnes handicapées.
Solution technique
Donner à chaque champ de formulaire une étiquette qui lui soit explicitement associée :
- si l’étiquette est visible, sous la forme d’un élément
labeldoté d’un attributforreprenant la valeur de l’attributidaffecté au champ, par exemple :<label for="nom1">Nom de famille :</label><input id="nom1" type="text" name="nom"> - si l’affichage de l’étiquette n’est pas souhaité (placeholder), sous la forme d’un attribut
aria-labelouaria-labelledby.
Le recours à une étiquette <label for="..."> masquée via les styles CSS est déconseillé au profit de l’attribut aria-label ou aria-labelledby.
Moyen de contrôle
Pour chaque champ de formulaire :
- vérifier, en regardant le code source ou à l’aide de Firebug, que l’attribut
for, propre à l’élémentlabel, ainsi que l’attributiddu champ ont exactement le même contenu. Si les valeurs de ces deux attributs sont effectivement identiques, l’étiquette (label) est bien associée au champ (input), - dans le cas où aucune étiquette n’est visible dans le site (placeholder), vérifier que chaque champ de formulaire est doté d’un attribut
aria-labelouaria-labelledby.
Dans les deux cas, vérifier enfin que l’étiquette décrit effectivement le rôle du champ ou la nature de l’information qui doit y être saisie. Cette règle ne peut donc être automatisée, mais nécessite un examen manuel de chaque formulaire.