Formulaire à étapes multiples
Les formulaires longs seront découpés en plusieurs formulaires plus petits, chacun repésentant une étape du formulaire complet. Cela permet de rendre les formulaires longs plus faciles à comprendre et d'alléger la charge cognitive liée à son remplissage, en particulier pour les personnes qui ont moins d'expérience en informatique ou qui ont divers troubles cognitifs.
Pour découper un formulaire en étapes multiples, chaque étape devra proposer les éléments présentés ci-après.
Titre de la page
Le titre de la page doit indiquer l’étape à laquelle se trouve l’utilisateur et reprendre le titre du formulaire.
Exemple
<head>
<title>Étape 2 sur 3 - Paiement - Votre commande</title>
</head>
Titre du formulaire
L’utilisation d’un titre (h1
, h2
,…) dans la page de contenu est un bon moyen d’informer l’utilisateur.
<h2>Paiement (Étape 2 sur 3)</h2>
Mise en place d’un indicateur de progression
Un indicateur d’étapes aide les utilisateurs à s’orienter. Il peut prendre 2 formes :
- une jauge de progression ;
- une liste des différentes étapes à compléter.
Jauge de progression
L’élément de progression progress
peut être utilisé pour informer les utilisateurs de leur progression dans le remplissage du formulaire. Cette façon de faire peut être particulièrement utile dans les situations où le nombre d’étapes dépend de l’entrée de l’utilisateur, comme dans une enquête où les étapes sont ignorées en fonction de la façon dont les questions ont été répondues.
Répondre à l'enquête <progress max="7" value="2">(Étape 2 sur 7)</progress>
L’élément progress
est animé par défaut dans certains navigateurs ce qui est contraire à règle d’accessibilité qui demande à ce que l’utilisateur ait la maîtrise des animations. Pour éviter cette animation automatique, il faudra rajouter le code CSS suivant :
:root {
--PROGRESS-color: #123456;
}
/* Microsoft IE */
progress {
color: var(--PROGRESS-color);
}
/* Apple Safari and Google Chrome */
progress::-webkit-progress-bar {
background-color: var(--PROGRESS-color);;
}
/* Mozilla Firefox */
progress::-moz-progress-bar {
background-color: var(--PROGRESS-color);;
}
Liste d’étapes
Mise à jour du titre de la page HTML
Le titre de la page (balises <title>...</title>
dans la partie head
de la page HTML) sera mis à jour pour indiquer la page en cours.
Implémentation du processus par étape sous forme de liste ordonnée
- Élement HTML
nav
- Le processus par étape sera balisé avec les balises
<nav>...</nav>
; l’attributrole="navigation
est optionnel. - L’attribut aria-label est ajouté à l’élément
nav
avec une valeur unique. Exemple :<nav role="navigation" aria-label="Étapes de la démarche">
.
- Le processus par étape sera balisé avec les balises
- Liste ordonnée et liens
- Les différentes étapes du processus seront balisées par un liste ordonnée (l’ordre ayant de l’importance)
<ol><li>...</li></ol>
- L’étape en cours sera identifiée avec l’attribut
aria-current="step"
- Des liens (élément HTML
a
) vers les étapes précédant celle en cours seront proposés.
- Les différentes étapes du processus seront balisées par un liste ordonnée (l’ordre ayant de l’importance)
Exemple HTML
<html>
<head>
<title> Étape 2/3 - Formulaire d'inscription - Sofève-Concept</title>
[...]
<body>
[...]
<nav role="navigation" aria-label="Étapes de votre démarche">
<ol>
<li><a href="path/to/pageIdentite">Identité</a></li>
<li aria-current="step">Adresse</li>
<li>Confirmation</li>
</ol>
</nav>
[...]
</body>
</html>
astuce
Un exemple de processus par étape est disponible dans la rubrique Motifs de conception - Formulaires - Processus par étape.