Cartographier le parcours
Listez origine, champs obligatoires, aides, pièces jointes, consentements, soumission, erreur, succès et éventuel message de suivi.

GUIDE / PROTOCOLE
Un formulaire fonctionne lorsque la personne comprend la demande, peut corriger ses erreurs et sait ce qui a été transmis.
Réponse directe
Parcourez chaque état du formulaire avec clavier et mobile. Vérifiez le besoin de chaque champ, la clarté des libellés, les erreurs, la validation côté serveur, la conservation des données et la confirmation effectivement reçue.
01 / Méthode de contrôle
Listez origine, champs obligatoires, aides, pièces jointes, consentements, soumission, erreur, succès et éventuel message de suivi.
Essayez valeurs valides, vides, longues, internationales et incorrectes ; vérifiez étiquettes, exemples, ordre de tabulation et absence de perte des données.
Contrôlez la validation côté serveur, les erreurs ciblées, les doublons, les échecs réseau, la protection contre l’envoi répété et les délais.
Vérifiez accusé de réception, destinataire fonctionnel, délai annoncé, données conservées et possibilité de reprendre sans ressaisir inutilement.
EN PRATIQUE
Un écran lisible peut encore bloquer une action. Testez un objectif complet : trouver la bonne section, utiliser le contrôle, comprendre le résultat et revenir en arrière. Consignez le premier obstacle et son effet concret.
Choisissez la situation observée. Chaque piste précise une première vérification, la preuve utile et la limite de ce contrôle.
Pour approfondir
| Situation | À éviter | Correction utile |
|---|---|---|
| Navigation | Tester uniquement à la souris. | Parcourir au clavier et conserver un focus visible. |
| Formulaire | S’appuyer sur un texte provisoire dans le champ. | Garder un libellé visible et relier l’erreur au champ concerné. |
| Résultat dynamique | Changer un chiffre sans expliquer son contexte. | Présenter le résultat, son unité et ce qui vient de changer. |
Le titre décrit-il la bonne tâche ?
Le contrôle est-il accessible et compréhensible ?
Le résultat et la prochaine action sont-ils explicites ?
Rejouez le parcours avec Tab, Maj+Tab et Entrée, puis à 200 % de zoom. Lors du défilement, vérifiez que l’en-tête fixe ne masque pas entièrement le contrôle qui reçoit le focus. Ouvrez et fermez le menu au clavier, provoquez une erreur de formulaire et vérifiez que vous pouvez la corriger. Notez la page, l’action et l’obstacle observé ; ces essais ciblés ne constituent pas une certification WCAG.
Consulté le .
Atelier de lecture
Le cas fictif DEMO-F22 suit un double envoi et un rafraîchissement sans transmettre de message réel.
Données et traces fictives pour apprendre : aucun résultat présenté ici ne provient d’un service interrogé en direct.
L’application de démonstration prévoit que deux POST de même clé K1 et même contenu renvoient le reçu R1 sans créer deux dossiers. Ce comportement doit être vérifié séparément du statut HTTP.
Ouvrir chaque proposition pour comparer son diagnostic. Plusieurs contrôles peuvent rester nécessaires.
Non : le statut ne prouve ni stockage ni livraison.
Non : GET répété et second POST sont deux essais différents.
Adapté au scénario. Un contenu différent avec la même clé demande un cas distinct selon le contrat.
Cas : DEMO-F22 POST 1 : K1 → 303 → /recu/R1 GET puis rafraîchissement : /recu/R1 ; 200 POST 2 : K1 ; contenu identique ; reçu R1 Journal : un dossier stocké Livraison : en attente Bilan : stockage établi dans le cas, réception non établie
Relier reçu, journal de stockage et suivi de livraison par l’identifiant de test. Ne pas conserver le contenu personnel d’un formulaire dans l’URL ou la preuve publique.
02 / Preuves à conserver
Entrées, état attendu, message affiché et résultat observé pour chaque cas.
Libellés, aides, focus, erreurs, résumé et confirmation sur mobile et clavier.
Statut de réponse, horodatage et identifiant de test sans conserver de données personnelles réelles.
Obstacle, impact sur la tâche, correction, responsable et nouveau test.
POINT DE CONTRÔLE
Une erreur de lecture fréquente et la vérification qui permet de l’éviter.
Un formulaire qui transmet les données lors d’un essai interne peut rester inutilisable pour une personne au clavier, sur mobile ou après une erreur de validation.
Tester chaque étape avec de vraies contraintes de saisie : champs requis, messages d’erreur, conservation des valeurs, confirmation, lecture au clavier et état du service d’envoi.
APRÈS LE CONTRÔLE
Traitez la perte comme un échec du parcours. Préservez les valeurs non sensibles, placez le focus sur le résumé et retestez la correction.
Ne considérez pas le parcours terminé. Vérifiez la réponse serveur et le traitement effectif avec une donnée fictive, puis corrigez le message.
Arbitrage et trace de décision
Ce que le contrôle doit permettre de décider, et la preuve à conserver pour réexaminer ce choix.
Tester une saisie valide, les erreurs, le clavier, le mobile, la conservation des champs et la confirmation. La réussite de l’interface ne prouve pas la réception du message.
Corriger la première rupture du parcours, puis refaire un envoi de bout en bout avec un destinataire de test autorisé. Suivre séparément accessibilité et délivrance.
Situations types pour préparer un contrôle. Elles ne décrivent pas des missions ou observations réalisées.
Distinguer l’envoi par le navigateur, l’acceptation par le serveur et la réception dans le système destinataire. Utiliser un environnement et une destination de test autorisés pour suivre chaque étape.
Formuler le résultat au niveau réellement observé. Si seule l’acceptation est confirmée, ne pas annoncer une livraison démontrée ; rechercher l’étape manquante et un mécanisme de reprise adapté.
Conserver les identifiants de test non sensibles, les heures et les états observés, sans recopier de secret ni de donnée personnelle inutile.
Tester une validation refusée, une interruption réseau et un retour au formulaire. Vérifier les champs conservés, les messages associés et la possibilité de corriger puis de soumettre sans recommencer.
Restituer un état compréhensible et conserver les valeurs utiles selon leur sensibilité. Éviter de placer le contenu du formulaire dans une URL pour compenser une perte d’état.
Garder la séquence, les champs affectés, le message affiché et le résultat du deuxième essai avec des valeurs de test.
Tester une entrée invalide et vérifier erreurs, langue et champs conservés.
Préserver les données non sensibles utiles à la correction sans déclencher d’envoi réel.
Entrée d’essai, rejet attendu, focus et possibilité de reprise.
Ces questions complètent la méthode. Elles aident à vérifier ce qui est réellement établi, sans effacer les réserves du relevé.
Dans un environnement d’essai, une saisie invalide explique-t-elle le problème sans perdre les autres champs utiles ? Vérifier aussi clavier, langue et retour après échec serveur.
Exemple fictif : l’état concerne uniquement le critère et le périmètre décrits.
Une double activation ou une réponse tardive peut-elle produire deux traitements ? Distinguer message de succès affiché, réception confirmée et traitement final, sans utiliser de données personnelles réelles.
Exemple fictif : l’état concerne uniquement le critère et le périmètre décrits.
Dans l’environnement d’essai, une requête invalide reste-t-elle refusée sans la validation du navigateur ? Un message côté client ne garantit pas le traitement serveur.
Documentation consultée : MDN · Constraint validation ·
Exemple fictif : l’état concerne uniquement le critère et le périmètre décrits.
OUTILS / REGISTRES
Tester succès, erreur de saisie et échec serveur avec des données de test identifiées. Vérifier que le message annoncé correspond au résultat réel et que la saisie reste récupérable.
03 / FAQ
Non. Elle améliore le retour immédiat, mais la validation doit aussi être effectuée côté serveur.
Oui, de façon compréhensible avant la saisie et dans le message d’erreur.
Expliquer quoi corriger, associer le message au champ et conserver autant que possible les autres valeurs.
Employez des cas fictifs et vérifiez les journaux avec des informations minimisées.
Prévoir un environnement ou un canal de test approprié et des données fictives. La méthode doit néanmoins permettre de vérifier les étapes réelles qui conditionnent la réception et le traitement.
04 / Références officielles
REPÈRES DOCUMENTÉS
Deux adresses d’un même formulaire peuvent attendre des valeurs différentes malgré des champs portant le même nom. autocomplete décrit une finalité et un groupe de champs ; il ne remplace ni le libellé visible ni la validation. Les exemples ci-dessous sont des cas de lecture de la grammaire HTML, pas des identités ou des coordonnées collectées.
| Repère | Valeur ou forme | Ce que cela désigne |
|---|---|---|
| section-* | 1 | Le préfixe section- vient en premier. Sa valeur distingue un groupe ; le navigateur ne doit pas lui attribuer une relation familiale ou une signification métier. |
| shipping | billing | 2 | shipping ou billing précise la destination des coordonnées. Ces deux jetons ne se cumulent pas dans la même liste. |
| home | work | mobile | fax | pager | 3 | home, work, mobile, fax ou pager peut précéder un champ de contact, par exemple email ou tel-national. work postal-code ne suit pas cette grammaire. |
| name | postal-code | email | … | 4 | Un jeton de finalité est nécessaire dans une liste détaillée. address-line1 address-line2 ne décrit pas deux champs : il en fournit deux là où un seul est attendu. |
| webauthn | 5 | webauthn, placé à la fin, peut signaler des identifiants à clé publique avec médiation conditionnelle. L’attribut seul ne met pas en place une authentification. |
| on | off | single token | on et off, employés seuls sur un champ visible concerné, sont des modes généraux ; ils ne précisent pas sa finalité. Ils ne sont pas autorisés comme tels sur input type=hidden. |
Ces exemples concernent des champs visibles de type indiqué. Ils isolent la grammaire : ni remplissage automatique ni authentification ne sont exécutés.
<input type="text" autocomplete="section-primary shipping work email">
Liste détaillée ordonnée · Groupe, destination, contact puis finalité : ordre de l’exemple ACT publié.
| Attribut autocomplete | Type du champ | Lecture | Interprétation |
|---|---|---|---|
| section-primary shipping work email | text | Liste détaillée ordonnée | Groupe, destination, contact puis finalité : ordre de l’exemple ACT publié. |
| section-blue shipping postal-code | text | Liste détaillée ordonnée | Deux groupes nommés peuvent séparer deux adresses de livraison sans changer la finalité postal-code. |
| section-red shipping postal-code | text | Liste détaillée ordonnée | Deux groupes nommés peuvent séparer deux adresses de livraison sans changer la finalité postal-code. |
| billing postal-code | text | Liste détaillée ordonnée | Une destination et une finalité, sans groupe de section obligatoire. |
| mobile tel-national | tel | Liste détaillée ordonnée | Le modificateur de contact précède une finalité téléphonique. |
| current-password webauthn | password | Liste détaillée ordonnée | Exemple ACT : finalité de mot de passe, puis jeton de justificatif à clé publique. |
| given-name | text | Liste détaillée ordonnée | Une finalité suffit ; les préfixes sont facultatifs. |
| on | text | Mode général | Mode général sans finalité détaillée ; la règle ACT 73f2c2 exclut ce cas de son champ. |
| off | text | Mode général | Mode général sans finalité détaillée ; la règle ACT 73f2c2 exclut ce cas de son champ. |
| work shipping email | Liste incorrecte | Le modificateur de contact est placé avant la destination : ordre incorrect. | |
| work,email | Liste incorrecte | Une virgule ne sépare pas les jetons HTML de cette liste. | |
| address-line1 address-line2 | text | Liste incorrecte | Deux finalités distinctes occupent la place d’une seule. |
| shipping | text | Liste incorrecte | La destination seule ne fournit aucune finalité. |
| work photo | text | Liste incorrecte | work ne peut pas modifier photo : ce n’est pas un champ de contact. |
| email invalid | Liste incorrecte | Le jeton supplémentaire invalid n’est pas autorisé après la liste. | |
| current-password webauthn invalid | password | Liste incorrecte | Le jeton supplémentaire invalid n’est pas autorisé après la liste. |
Une liste correctement ordonnée ne prouve pas que la finalité correspond au champ, que le remplissage aura lieu ou que le formulaire satisfait WCAG 1.3.5. Ce critère vise certaines informations sur l’utilisateur et dépend des technologies employées. Les exemples n’évaluent pas un formulaire externe.
Documentation consultée le .
APPROFONDISSEMENT / PRATIQUE
Un formulaire s’affiche normalement mais refuse une saisie légitime ou confirme un envoi qui n’aboutit pas. La recette distingue qualité de saisie, validation et traitement final.
Mis à jour le .
Tester champs obligatoires, formats, longueur, erreurs, consentement et double soumission. Utiliser des données de test et contrôler le résultat réel sans transmettre de contenu confidentiel.
Un bouton actif ou un message de succès ne suffit pas à démontrer l’achèvement du traitement. Les cas d’expiration de session et d’indisponibilité doivent aussi rester compréhensibles.
Le cahier de recette conserve données de test non sensibles, étape, résultat attendu et résultat observé. Chaque correction est accompagnée d’un contrôle du parcours complet.