Table des matières
- Le problème
- La solution
- Les règles qui s'appliquent aux formulaires
- L'évaluation de conformité
- La comparaison entre les standards SGQRI et WCAG 2.0
Le problème
Note : D'autres aspects de l'accessibilité des formulaires sont aussi traités aux règles 2.4 (Navigation) et 3.3 (aide à la saisie).
Pour être utilisable par une personne aveugle, un formulaire doit associer correctement les étiquettes et les champs de formulaire, afin qu'un lecteur d'écran puisse indiquer l'étiquette qui correspond au champ à remplir. Une association visuelle ne suffit pas : il faut que cette association soit créée dans le code de la page pour qu'un lecteur d'écran puisse l'interpréter correctement, sans avoir à jouer aux devinettes, avec la marge d'erreur que cela suppose.
Les personnes ayant des limitations motrices auront de la difficulté à sélectionner un bouton radio ou une case à cocher qui occupent une très petite surface à l'écran. Toutefois, lorsque l'étiquette et le champ sont correctement associés, l'utilisateur pourra cliquer n'importe où dans l'étiquette pour cocher ce type de champ.
Retour en haut de pageLa solution
Étiquettes
Vous devez associer explicitement les étiquettes et les champs correspondants avec l'attribut for, qui reprend le id du champ auquel il est associé :
- Donner un attribut id unique à chaque champ de formulaire.
- Donner à chaque balise <label> un attribut for, qui reprend exactement le contenu de l'attribut id du champ correspondant.
À moins que vous disposiez d'un outil spécialisé, cette association doit généralement être faite manuellement dans le code.
Les WCAG 2.0 considèrent comme une erreur de présenter un numéro de téléphone qui ne serait identifiable que par sa présentation visuelle. Il faut donc une étiquette ou une <legned> de <fieldset> qui soit visible pour tous. On peut utiliser un seul champ à condition d'indiquer clairement le format attendu ou accepter tous les formats en filtrant les caractères inutiles. Si on choisit plutôt d'utiliser plusieurs champs, l'utilisation d'une <legned> de <fieldset> est une bonne pratique à condition d'utiliser un attribut title explicite pour chaque champ.
Exemple de code pour l'association d'une étiquette à un champ
<form method="post" action="unepage.html">
<p> <label for="pnom">Prénom</label> <input id="pnom" name="pnom" type="text" /> </p>
<p> <label for="nomf">Nom de famille</label> <input id="nomf" name="nomf" type="text" /> </p>
</form>
Title
Lorsqu'aucune étiquette n'est visible, vous devez placer la description du champ dans l'attribut title. C'est une des rares situations où les lecteurs d'écran liront le contenu de l'attribut title automatiquement. Il ne faut pas oublier cependant que l'étiquette joue un rôle explicatif pour tous vos visiteurs, et qu'il est donc préférable d'avoir une étiquette pour tout champ dont la fonction pourrait être ambiguë.
Exemple de code pour l'utilisation de title
<form method="post" action="unepage.html">
<p> <input id="recherche" title="Recherche :" name="rech" type="text" /> </p>
</form>
Balises fieldset et legend
Les balises <fieldset> et <legend> sont appropriées pour regrouper un petit nombre de champs de même nature comme un numéro de téléphone ou un groupe de cases à cocher qui répondent à une même question. Il faut cependant éviter d'en abuser en les utilisant pour subdiviser les différentes sections d'un formulaire. Pour ce faire, il vaut mieux utiliser des en-têtes de section car les lecteurs d'écran permettent de ses déplacer facilement d'une section à l'autre mais ne comportent pas de commandes pour aller d'un <fieldset> à l'autre.Groupes d'options
Lorsque c'est pertinent, les groupes d'options dans un champ de liste doivent être identifiés à l'aide de la balise <optgroup> et de l'attribut "label". Cette identification est visuelle et peut donc aider à la compréhension, mais n'est pas lu par un lecteur d'écran.
Exemple de code pour les groupes d'options
<form action="http://example.com/prog/someprog" method="post">
<label for="food">What is your favorite food?</label> <select id="food" name="food">
<optgroup label="Fruits"> <option value="1">Apples</option> <option value="3">Bananas</option> <option value="4">Peaches</option> <option value="5">...</option> </optgroup>
<optgroup label="Vegetables"> <option value="2">Carrots</option> <option value="6">Cucumbers</option> <option value="7">...</option> </optgroup>
<optgroup label="Baked Goods"> <option value="8">Apple Pie</option> <option value="9">Chocolate Cake</option> <option value="10">...</option> </optgroup>
</select> </form>
Les règles qui s'appliquent aux formulaires
| SGQRI 008-01 (site Web) |
SGQRI 008-02 (doc. téléchargeable) |
SGQRI 008-03 (multimédia) |
WCAG 2.0 |
|---|---|---|---|
|
21. Tout formulaire Web doit :b) pour tout champ, comporter une étiquette codée conformément à l’annexe 1 ou lorsque l’espace est insuffisant pour placer une étiquette, la description de la fonction du champ concerné codée conformément à l’annexe 1; 21 c) pour tout champ associé à une étiquette, comporter un nom unique codé conformément à l’annexe 1; |
16. Tout formulaire téléchargeable à remplir de façon manuscrite doit être accompagné d’une offre d’assistance pour le remplir. 17. Tout formulaire téléchargeable à remplir à l’écran doit : a) pour tout champ, comporter une étiquette détectable par les technologies d’adaptation informatiques ou un texte d’assistance décrivant la fonction de ce champ; |
19. Tout formulaire doit : b) pour tout champ, comporter une étiquette détectable par les technologies d’adaptation informatiques ou un texte d’assistance décrivant la fonction de ce champ; | 1.3.1 Information et relations : l'information, la structure et les relations véhiculées par la présentation peuvent être déterminées par un programme informatique ou sont disponibles sous forme de texte. (Niveau A) |
L'évaluation de conformité
| SGQRI 008-01 (site Web) |
SGQRI 008-02 (doc. téléchargeable) |
SGQRI 008-03 (multimédia) |
WCAG 2.0 Grille AccessiWeb 2.1 de Braillenet (suivre ce lien pour voir les tests rattachés à chaque critère) |
|---|---|---|---|
Tout champ
Tout champ associé à une étiquette, comporte-t-il un nom unique codé avec l'attribut id et cette valeur est-elle reprise dans l'attribut for de la balise <label> de son étiquette (SW-21c et Annexe 1-7b) ?
|
Tout formulaire téléchargeable à remplir de façon manuscrite est-il accompagné d’une offre d’assistance pour le remplir et cette offre est-elle aussi présente dans la page Accessibilité (DT-16.1) ? Tout champ, comporte-t-il : |
Tout champ : - comporte-t-il une étiquette détectable par les technologies d’adaptation informatiques OU - un texte d’assistance décrivant la fonction de ce champ (M-19b) ? |
Critère 11.1 [Bronze] Chaque champ de formulaire a-t-il une étiquette ? Critère 11.5 [Bronze] Dans chaque formulaire, les informations de même nature sont-elles regroupées, si nécessaire ? Critère 11.6 [Bronze] Dans chaque formulaire, chaque regroupement de champs de formulaire a-t-il une légende ? Critère 11.7 [Bronze] Dans chaque formulaire, chaque légende associée à un groupement de champs de formulaire est-elle pertinente ? Critère 11.8 [Bronze] Dans chaque formulaire, chaque liste de choix est-elle structurée de manière pertinente ?
|
La comparaison entre les standards SGQRI et WCAG 2.0
Le critère de succès 1.3.1 des WCAG 2.0 est un principe général qui s'applique à plusieurs situations. Dans les standards SGQRI, on a plutôt choisi une approche plus concrète qui précise la portée de ce critère de succès en s'appuyant sur les techniques proposées par le W3C. Le tableau qui précède énumère les exigences des standards SGQRI qui découlent de ce critère de succès en ce qui concerne les formulaires. Nous verrons plus loin d'autres exigences qui correspondent également à 1.3.1 sur les tableaux.
Dans ce contexte, un site Web qui applique les techniques s'appliquant aux formulaires du critère de succès 1.3.1 est conforme aux standards SGQRI. Réciproquement, un site qui applique les exigences des standards SGQRI en cette matière est aussi conforme aux WCAG 2.0 pour ce critère de succès.
Voir aussi :
- Comprendre la règle 1.3 [Adaptable]
- Comprendre le critère de succès 1.3.1 [Information et relations]
Retour en haut de page