Site • Accessibilité

Comment rendre les messages d’erreur de formulaire accessibles ?

Vérifiez que les erreurs de formulaire sont identifiées clairement, reliées aux champs concernés et compréhensibles sans dépendre uniquement de la couleur.

Par l’équipe Limpi. Les faits externes sont distingués des méthodes Limpi et aucune visibilité, position ou citation automatique n’est garantie.

Comprendre messages d’erreur de formulaire

Un formulaire accessible doit permettre de comprendre qu’une erreur s’est produite, quel champ est concerné et ce qui est attendu pour continuer. Un contour rouge seul peut être invisible pour certaines personnes et n’explique pas la nature de l’erreur.

Inspecter le comportement réellement servi

Soumettez le formulaire avec plusieurs erreurs volontaires : champ obligatoire vide, format invalide, valeur hors limite ou combinaison interdite. Relevez le message affiché, son emplacement, le champ associé et la manière dont il est annoncé lorsque l’utilisateur navigue avec une technologie d’assistance.

Distinguer les notions qui se ressemblent

Distinguez identification de l’erreur, aide à la correction et style visuel. Un message « Adresse e-mail invalide » identifie le problème ; une indication sur le format peut aider à le résoudre ; la couleur peut renforcer le repère mais ne devrait pas être l’unique information.

Identifier les causes les plus probables

Les erreurs deviennent difficiles à comprendre quand elles sont regroupées loin des champs sans liens, injectées après soumission sans être découvertes, remplacées par des icônes seules ou formulées de façon générique comme « valeur incorrecte ». Les validations client et serveur peuvent aussi produire des messages différents.

Décider ce qui mérite d’être corrigé en premier

Priorisez les formulaires liés à l’inscription, au paiement, au contact ou aux actions irréversibles. Une erreur qui bloque la validation sans explication claire empêche directement la tâche. Les champs facultatifs ou validations secondaires viennent ensuite.

Corriger à la bonne couche

Affichez un texte explicite près du champ et conservez une association programmatique appropriée lorsque le composant l’exige. Si un résumé d’erreurs est utilisé, fournissez des repères vers les champs concernés. Gardez le message jusqu’à ce que l’erreur soit réellement corrigée.

Traiter les cas limites sans automatisme

Les champs composés — date, adresse, mot de passe ou groupes de cases — demandent parfois un message au niveau du groupe plutôt qu’un message par sous-champ. Les validations asynchrones doivent éviter d’annoncer trop tôt une erreur pendant que l’utilisateur saisit encore.

Valider la correction sur des cas réels

Testez les scénarios au clavier, avec zoom et sur mobile. Après soumission, vérifiez que l’utilisateur peut identifier la première erreur, rejoindre le champ et comprendre la correction. Contrôlez aussi que la réussite d’un champ efface l’erreur sans supprimer des informations encore nécessaires.

Prévenir la régression dans le temps

Standardisez les composants de formulaire, la rédaction des erreurs et les associations entre champs et messages. Ajoutez des cas invalides aux tests fonctionnels afin que l’accessibilité des erreurs soit vérifiée en même temps que la logique métier.

Clôturer le contrôle sur messages d’erreur de formulaire

Pour clôturer le contrôle « Comment rendre les messages d’erreur de formulaire accessibles ? », conservez une preuve avant/après : URL ou composant testé, constat initial, origine technique, correction appliquée et résultat de la vérification. Contrôlez aussi les pages liées /site/accessibilite, /site/labels-formulaires-accessibilite, /site/verifier-contraste-couleurs afin de vérifier que la correction reste cohérente avec le reste du corpus. Le périmètre documentaire reste volontairement borné : Expliquer que les erreurs détectées doivent être identifiées et décrites de façon compréhensible. Ne pas considérer un simple changement de couleur comme une identification suffisante dans tous les contextes. Si le comportement dépend d’un gabarit, d’un CDN, d’un navigateur ou d’un outil tiers, testez au moins un second cas représentatif. Une anomalie ambiguë doit rester en revue plutôt que d’être fermée sur une hypothèse. Attribuez enfin la règle à une source précise — composant, template, serveur, CMS ou configuration — pour pouvoir la retester après une refonte.

Conserver une preuve exploitable dans l’audit

Un contrôle sur messages d’erreur de formulaire est utile seulement si une autre personne peut reproduire le constat. Enregistrez la réponse ou l’état observé, l’outil utilisé, le contexte de test et l’élément exact qui justifie la conclusion. Évitez les captures isolées sans URL, statut ou propriété mesurée. Pour les anomalies répétées, comptez les occurrences par gabarit avant et après correction. Cette trace permet de distinguer une résolution globale d’un exemple corrigé manuellement et évite de rouvrir le même diagnostic sans information nouvelle. Lorsque la documentation officielle est la borne du contrôle, notez également la source utilisée afin de pouvoir réévaluer la règle si elle évolue.

Tester un scénario représentatif

Utilisez un formulaire avec adresse e-mail, mot de passe, date et case de consentement. Envoyez-le vide, puis avec un format d’e-mail incorrect, une date impossible et un mot de passe trop court. Pour chaque erreur, vérifiez le texte affiché, son lien avec le champ, l’état aria-invalid si le composant l’utilise et la façon dont le focus rejoint la zone problématique. Recommencez après une correction partielle : une erreur résolue doit disparaître sans effacer les autres. Testez aussi la réponse du serveur lorsque JavaScript est désactivé afin de détecter des messages divergents entre validations client et backend. Si un résumé apparaît en haut de page, ses liens doivent conduire aux contrôles concernés. Cette matrice distingue une décoration rouge d’une identification réellement exploitable et fournit des cas réutilisables pour les tests de non-régression. Le relevé peut inclure id du champ, label, aria-describedby, aria-errormessage, aria-invalid, texte d’aide, message serveur, résumé global et destination du focus. Ajoutez un test après correction partielle et un autre après rechargement. Pour les groupes radio, cases à cocher ou dates segmentées, vérifiez si l’erreur appartient au contrôle individuel ou au fieldset complet. Ce niveau de détail évite les correctifs qui fonctionnent uniquement sur un input simple. Ajoutez un exemple de champ téléphone dont le format attendu varie selon le pays et un mot de passe avec plusieurs critères. Un message doit identifier la condition non satisfaite sans annoncer comme erreur une règle qui n’existe pas côté serveur. Cette cohérence réduit les boucles de correction impossibles. Contrôlez required, autocomplete, inputmode, pattern et contraintes métier séparément du message d’erreur. Un navigateur peut afficher sa validation native tandis que l’application produit une autre formulation. Testez saisie vocale, collage, auto-remplissage et retour arrière afin de vérifier que le message reste synchronisé avec la valeur actuelle et n’annonce pas une erreur déjà résolue.

Sources officielles

Les règles des moteurs et des fournisseurs de crawlers peuvent évoluer. Les affirmations techniques de cette page sont bornées par les documentations officielles ci-dessous.