Une astuce pour l'accessibilité des champs de formulaire obligatoires
Par Victor Brito, le mardi 16 décembre 2008, à 12h06 - Catégorie Accessibilité - Lien permanent
Fabrice Bonny expose, dans un billet du blog de Temesis, ce qu'il pense être une nouvelle technique pour améliorer l'accessibilité des champs de formulaire, plus particulièrement les champs obligatoires.
Plutôt que d'une nouvelle technique, il s'agit d'une astuce qui part du constat suivant : souvent, la mention des champs obligatoires est effectuée au moyen d'une astérisque (*), qui est très souvent refoulée après le champ concerné, au lieu de se trouver à côté du libellé (ou étiquette) du champ.
Faut-il donc rapprocher systématiquement l'astérisque de l'intitulé ? Pas nécessairement. En effet, l'élément HTML label peut être parent de l'élément HTML employé pour le champ de formulaire (que ce soit input, select ou textarea) : c'est ce qu'on appelle l'association implicite du libellé du champ et du champ correspondant. Dans ce cas, on pourra toujours placer l'astérisque après le champ, mais à l'intérieur de l'élément label ; de plus, pour que l'association du libellé et de son champ soit bien repérée, on ajoutera l'attribut for à label, qui reprend la valeur de l'attribut id du champ en question. Ce qui donne le code suivant :
<form action=""> <p>Les champs accompagnés d'une astérique (*) sont obligatoires.</p> <p> <label for="obligatoire"> Libellé du champ <input id="obligatoire" name="obligatoire" type="text" /> * </label> </p> </form>
Les aides techniques, telles que les lecteurs d'écran, tiendront compte de l'astérisque comme partie intégrante du libellé du champ : Jaws, par exemple, lira bien les deux parties du contenu textuel de l'élément label.
Fabrice Bonny fournit un exemple de formulaire accessible selon cette méthode, dont le code source est enrichi par rapport au code ci-dessus : des éléments HTML sont ajoutés, comme span autour de la première partie de chaque libellé et strong autour de chaque astérique, de quoi permettre d'appliquer au formulaire un design élaboré. 


Commentaires
Intéressant, mais il y a toutefois un bémol.
Si pour la grande majorité des cas cette astuce est valable, elle sera difficilement applicable à un label concernant un groupe de champs, des boutons radio ou des cases à cocher par exemple, pour lesquels on utilisera pas obligatoirement un label individuel. Pour le cas des boutons radio, il pourra être obligatoire d'en cocher un, la mention d'obligation devant dans ce cas être assortie au label du groupe.
Peut-être serait-il intéressant de suggérer au groupe de travail du W3C en charge de l'évolution du (X)HTML d'envisager un attribut spécifique pour les champs de formulaires ?
