Champ obligatoire : l'astérisque ne suffit pas au RGAA
En Bref : L'essentiel à retenir
- Le test RGAA 11.10.1 demande une indication du caractère obligatoire visible et permettant d'identifier nommément les champs concernés.
- Le test 11.10.2 ajoute que, sur un champ portant
requiredouaria-required, l'indication visible doit de préférence figurer dans l'étiquette elle-même. - Une astérisque seule ne suffit pas : il lui faut une légende explicite, placée avant le formulaire et non après.
- L'attribut HTML renseigne la technologie d'assistance ; il ne dispense jamais de l'indication visible.
L'astérisque rouge accolée à une étiquette est la convention la plus répandue du web, et l'une des plus mal implémentées. Le référentiel français y consacre deux tests distincts, et la plupart des formulaires que nous voyons en audit échouent sur le second sans s'en douter.
Le sujet paraît mineur. Il ne l'est pas : un champ dont on ignore qu'il est requis produit une soumission rejetée, donc un message d'erreur, donc un parcours d'erreur à gérer. Le traiter en amont évite tout ce qui suit.
Ce que le RGAA demande exactement
Deux tests du critère 11.10 encadrent le sujet, et il faut les lire dans l'ordre.
Le test 11.10.1 porte sur l'indication elle-même : elle doit être visible et permettre d'identifier nommément les champs obligatoires. Le mot « nommément » est celui qui compte : il ne suffit pas de signaler qu'il existe des champs obligatoires, il faut pouvoir dire lesquels.
Le test 11.10.2 vise les champs qui portent déjà required ou aria-required="true". Il exige que l'indication visible soit située dans l'étiquette associée au champ, ou à défaut qu'elle satisfasse une autre des conditions prévues. Autrement dit : porter l'attribut ne dispense de rien, cela ajoute une exigence de placement.
Pourquoi l'astérisque seule échoue
Le motif d'échec le plus fréquent n'est pas l'absence d'astérisque, c'est l'absence ou le mauvais placement de sa légende.
<!-- Échoue : l'astérisque n'est expliquée nulle part -->
<label for="email">Adresse électronique *</label>
<input type="email" id="email" required>
Une astérisque est un symbole conventionnel, pas une information. Un lecteur d'écran l'annonce « étoile » ou l'ignore selon sa configuration et le niveau de ponctuation choisi par l'utilisateur. Pour qui découvre le formulaire, elle ne signifie rien tant qu'on ne le lui a pas dit.
Le second motif d'échec est plus subtil et très répandu : la légende existe, mais elle est placée sous le formulaire, avec les mentions légales. La personne qui parcourt la page linéairement rencontre alors une dizaine d'astérisques avant d'apprendre à quoi elles servent.
Les trois implémentations qui passent
La plus robuste : le mot dans l'étiquette.
<label for="email">Adresse électronique (obligatoire)</label>
<input type="email" id="email" required>
Rien à interpréter, rien à expliquer ailleurs, aucune dépendance à l'ordre de lecture. C'est aussi la forme qui résiste le mieux aux refontes, puisque l'information vit dans l'étiquette et non dans un texte séparé.
L'astérisque avec sa légende, placée avant.
<p>Les champs suivis d'un astérisque (*) sont obligatoires.</p>
<form>
<label for="nom">Nom *</label>
<input type="text" id="nom" required>
</form>
Acceptable, à condition que la légende précède réellement le formulaire dans le code, et pas seulement à l'écran.
L'inversion, quand presque tout est requis. Si un formulaire ne comporte qu'un ou deux champs facultatifs, marquer ceux-là plutôt que les autres allège considérablement la lecture. L'étiquette devient « Complément d'adresse (facultatif) », et l'astérisque disparaît du formulaire.
L'attribut n'est pas l'indication
C'est la confusion à lever, parce qu'elle donne un faux sentiment de conformité.
| Élément | Ce qu'il fait | Suffit seul ? |
|---|---|---|
required | Annonce à la technologie d'assistance, bloque l'envoi | Non |
aria-required="true" | Annonce à la technologie d'assistance | Non |
| Indication visible | Informe qui voit l'écran | Oui, si nommée |
Un formulaire qui ne porte que required est correctement restitué au lecteur d'écran et muet pour tout le monde d'autre, y compris pour une personne malvoyante qui zoome sans utiliser de synthèse vocale. L'inverse, une indication visible sans attribut, laisse l'information hors de portée des technologies d'assistance. Les deux sont nécessaires.
Et si le champ est finalement vide ?
Le sujet bascule alors sur le test 11.10.3, qui traite le message d'erreur signalant l'absence de saisie : il doit être visible et permettre d'identifier nommément le champ concerné. Un « veuillez remplir tous les champs obligatoires » en tête de formulaire ne remplit pas cette condition.
Le rattachement du message au champ relève ensuite d'aria-describedby et d'aria-invalid, traités dans notre article sur les messages d'erreur accessibles.
Conclusion
Le marquage des champs obligatoires est un cas d'école de critère qu'on croit satisfait parce qu'on voit quelque chose à l'écran. La vérification tient en deux questions : cette indication permet-elle de savoir quels champs sont concernés, et l'utilisateur la rencontre-t-il avant les champs plutôt qu'après ?
Analysez un formulaire de votre site : l'absence d'étiquette et les attributs manquants ressortent automatiquement. Le placement de la légende, lui, se juge en parcourant la page dans l'ordre du code.
Questions fréquentes
Comment indiquer qu'un champ de formulaire est obligatoire ?
L'indication doit être visible et permettre d'identifier nommément les champs concernés. Une astérisque suffit à condition qu'une légende explicite précise ce qu'elle signifie et qu'elle soit placée avant le formulaire, pas après. La formulation la plus sûre reste d'écrire le mot dans l'étiquette elle-même, par exemple « Adresse électronique (obligatoire) ».
L'attribut required suffit-il pour le RGAA ?
Non. L'attribut `required` ou `aria-required` à true renseigne la technologie d'assistance, mais le test 11.10.2 exige en plus une indication **visible**, et de préférence située dans l'étiquette associée au champ. Un formulaire qui ne porte que l'attribut laisse sans information les utilisateurs qui voient l'écran et n'utilisent pas de lecteur d'écran.
Où placer la légende expliquant l'astérisque ?
Avant le formulaire, jamais après. Une mention « les champs marqués d'un astérisque sont obligatoires » placée en bas de page arrive trop tard : la personne qui parcourt le formulaire linéairement, au lecteur d'écran ou au clavier, rencontre les astérisques bien avant leur explication et ne peut pas les interpréter.
Guides RGAA associés
Pour aller plus loin sur les sujets abordés dans cet article, consultez nos fiches techniques :
Chaque champ de formulaire doit avoir une étiquette (label) qui lui est liée explicitement.
Chaque image porteuse d'information doit avoir une alternative textuelle pertinente via l'attribut alt. Les images décoratives doivent avoir un attribut alt vide.
Le contraste entre la couleur du texte et la couleur de son arrière-plan doit être suffisamment élevé (4.5:1 pour le texte normal, 3:1 pour le grand texte).
Vidéos RGAA sur ce thème
Pour voir ces sujets en action, regardez les épisodes vidéo correspondants :
Articles similaires
Votre site est-il conforme ?
Ne prenez pas de risques avec l'accessibilité. Lancez un audit complet de votre site en quelques minutes et obtenez un rapport détaillé des corrections à apporter.