Slide 1

Slide 1 text

Améliorer l’expérience utilisateur des formulaires web Une histoire que vous connaissez déjà… by Kelly Sikkema Image

Slide 2

Slide 2 text

“L’expérience de vos formulaires web” — @geoffreycrofte DevFest Nantes 2022 Geoffrey Crofte @geoffreycrofte linkedin.com/in/geoffreycrofte creativejuiz.fr/blog/ Lead (System) Designer / UX Designer

Slide 3

Slide 3 text

Comment ça va se passer ? Autour du formulaire 
 Les bases ergonomiques d’un formulaire 
 Aide à la complétion et rétention 
 Traitement du formulaire et gestion des données 
 À emporter : une checklist

Slide 4

Slide 4 text

J’ai une histoire à vous raconter…

Slide 5

Slide 5 text

C’est l’histoire d’une personne qui veut partir en congés à l’étranger… — Tiré d’une histoire vraie

Slide 6

Slide 6 text

Un prénom n’est jamais invalide, il faut arrêter avec ce message. 
 L’erreur n’était pas claire. 
 Les fautes du système sont rejetées sur l’utilisateur final. 
 Le commandant de bord était un $%¶§ Plusieurs problèmes ici

Slide 7

Slide 7 text

Des histoires de ce type, il y en a plein les internets et sont des effets extrêmes de problèmes d’ergonomie ou de « mauvais » design. Et ce n’est pas 
 le seul cas

Slide 8

Slide 8 text

Le formulaire est le début d’une conversation (asynchrone) entre un visiteur et le propriétaire d’un site web.

Slide 9

Slide 9 text

Autour du formulaire

Slide 10

Slide 10 text

Vous ne pourrez que difficilement proposer une expérience acceptable à vos utilisatrices si le système traitant ou fournissant la donnée ne vous le permet pas. Le système en place…

Slide 11

Slide 11 text

Pour l’avoir vécu, vous risquez : Mauvais back, mauvaise expérience de perdre du temps en analyse, 
 de faire, défaire et refaire vos parcours, 
 de devoir faire des compromis sur l’expérience utilisateur

Slide 12

Slide 12 text

Avant de commencer un nouveau formulaire ou processus en ligne, quelques questions s’imposent : Les questions à (me) poser Est-ce que la logique métier me permet de faire cela ? Est-ce que les données existent et peuvent être stockées ? Est-il nécessaire de créer une nouvelle base de données ? Qu’en est-il des performances ? Y a t’il une API pour me retourner les données ? En combien de temps répond-elle ? etc.

Slide 13

Slide 13 text

Avant de tout chambouler, assurez-vous de l’attachement de vos utilisateurs et utilisatrices à votre l’existant. Partir d’un existant Allez-vous changer profondément des habitudes ? Pouvez-vous éviter de les changer ? Comment accompagner ce changement ?

Slide 14

Slide 14 text

La formation de l’ensemble des équipes est primordiale pour une numérisation des processus en place. Votre formation et vos connaissances en tant que designer ou développeur également. La formation des équipes

Slide 15

Slide 15 text

Posez-vous les bonnes questions : La formation des devs Suis-je capable de faire cela tout de suite ? Si non, ai-je du temps alloué à me former ? Ai-je la capacité d’absorber la formation avant la deadline ? Est-ce que cette deadline vaut le coup de dégrader l’expérience utilisateur ?

Slide 16

Slide 16 text

Posez-vous les bonnes questions : La formation des designers Ai-je suffisamment de connaissance métier ? Ai-je les bons contacts internes ? Ai-je les bons arguments pour m’adresser à la direction/manager et aux équipes de développement ? Ai-je le temps de faire tout cela, me former ?

Slide 17

Slide 17 text

Est-ce que je dois vraiment rester dans une boîte qui ne me laisse pas le temps d’apprendre et de faire correctement mon travail ?

Slide 18

Slide 18 text

Le service, c’est ce qui suit le remplissage du formulaire : une fois que je l’ai rempli et envoyé, il se passe quelque chose comme un traitement informatique, un traitement manuel par un humain, ou un ensemble de services client. Le service

Slide 19

Slide 19 text

Une expérience en ligne fabuleuse et fluide, mais un service client tout simplement absent. — Témoignage

Slide 20

Slide 20 text

Lorsque vous introduisez un nouveau parcours ou formulaire en ligne, considérez vos collègues. 
 
 Ces collègues vont devoir offrir un service en traitant les données de ce formulaire. 
 
 Ont-ils la capacité de le faire ? La charge de vos collègues

Slide 21

Slide 21 text

Plusieurs choses à vérifier ici : La charge de vos collègues que la numérisation du processus soit faisable dans son ensemble. que les données demandées soient suffisantes pour un processus de bout en bout. que la charge des humains qui vont traiter cette donnée soit supportable à terme.

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

Les bases ergonomiques d’un formulaire

Slide 31

Slide 31 text

un label un champ de formulaire et c’est tout ! Tout le monde sait ce qu’est un champ de formulaire, n’est-ce pas ? L’anatomie d’un champ

Slide 32

Slide 32 text

le type de champ (d’un point de vue technique) l’autocomplete la notion de widget et d’aide à la complétion On oublie trop souvent la gestion des erreurs et correction, les descriptions riches et aides visuelles la rétention des informations disponibles

Slide 33

Slide 33 text

Contrôle du type ou de la forme du contenu On ne valide pas au bon moment. On utilise du placeholder à la place des labels Et parfois on applique trop de… On se permet des styles exotiques🍍 de champ, etc.

Slide 34

Slide 34 text

Les bases ergonomiques d’un formulaire Le contexte

Slide 35

Slide 35 text

Votre formulaire s’inscrit forcément dans un contexte de collecte de données, précisez à votre utilisatrice : Le contexte Le contexte de la collecte L’objectif de la collecte de ces données Éventuellement le résultat/bénéfice 
 (La manière dont elle pourra accéder ou corriger ces données)

Slide 36

Slide 36 text

Les bases ergonomiques d’un formulaire Le label

Slide 37

Slide 37 text

Le label, c’est la question que vous posez à votre visiteur pour obtenir un réponse, une donnée.

Slide 38

Slide 38 text

Pour quelque chose d’aussi simple qu’un formulaire de connexion, le champ identifiant peut facilement devenir plusieurs choses dans l’esprit des utilisateurs. Définir un libellé Une adresse e-mail Un numéro de client Un numéro de contrat Un numéro de téléphone Un pseudonyme choisi par la personne

Slide 39

Slide 39 text

Dans notre cas, nous avons explicité le type d’information attendu. Souvent une friction peut assez simplement être corrigée. Définir un libellé

Slide 40

Slide 40 text

Pro Tips Le numéro de téléphone n’est pas un identifiant valide* * sauf rares exceptions définies par une règle métier stricte

Slide 41

Slide 41 text

Placez votre label avant le champ, pas après, pas à côté, pas un mélange des 3 non plus. Placer un libellé Les gens en ont l’habitude Offre un parcours homogène Plus facile à implémenter (responsive) Plus accessible par défaut 👎

Slide 42

Slide 42 text

Placez votre label avant le champ, pas après, pas à côté, pas un mélange des 3 non plus. Placer un libellé Les gens en ont l’habitude Offre un parcours homogène Plus facile à implémenter (responsive) Plus accessible par défaut 👎

Slide 43

Slide 43 text

Les bases ergonomiques d’un formulaire La description d’un champ

Slide 44

Slide 44 text

La description a bien souvent sa place directement dans le label. C’est plus facile de l’associer au champ d’un point de vue technique. Cela apporte une meilleure structure d’un point de vue ergonomique. Ajouter une description

Slide 45

Slide 45 text

Identif i ant 
 Commence par… < / span> 
 < / label> 
 
 
 Identif i ant 
 Commence par… < / span> 
 
 < / label>

Slide 46

Slide 46 text

Cela complexifie un peu le code, mais également la lisibilité, notamment dans un formulaire riche. Description après ? Identif i ant < / label> 
 
 Commence par… < / span>

Slide 47

Slide 47 text

Les bases ergonomiques d’un formulaire Les champs et leurs types

Slide 48

Slide 48 text

Pour qu’un champ soit un champ, il faut pouvoir en distinguer ses contours, autrement ce n’est pas un champ : Le champs de formulaire Utilisez une bordure assez contrastée OU un fond assez fortement contrasté

Slide 49

Slide 49 text

Votre bordure doit être pleine et proposer un contraste suffisant avec le fond de votre page ou bloc. La bordure WCAG parle d’un contrast de 3 : 1 Vous pouvez avoir une bordure > 1px

Slide 50

Slide 50 text

Votre bordure doit être pleine et proposer un contraste suffisant avec le fond de votre page ou bloc. La bordure WCAG parle d’un contrast de 3 : 1 Vous pouvez avoir une bordure > 1px

Slide 51

Slide 51 text

Votre bordure doit être pleine et proposer un contraste suffisant avec le fond de votre page ou bloc. La bordure WCAG parle d’un contrast de 3 : 1 Vous pouvez avoir une bordure > 1px

Slide 52

Slide 52 text

Votre bordure doit être pleine et proposer un contraste suffisant avec le fond de votre page ou bloc. La bordure WCAG parle d’un contrast de 3 : 1 Vous pouvez avoir une bordure > 1px

Slide 53

Slide 53 text

Lorsqu’une personne utilise le champ pour le remplir, l’état :focus est stylable en CSS. Idem pour l’état focus à la navigation clavier, stylable via :focus - visible. N’oubliez pas l’état :focus Proposez un état évidemment différent au moins pour l’état :focus. Vous êtes joueurs ? Testez :focus - within.

Slide 54

Slide 54 text

Les types de champ ont été complétés par HTML 5 il y a quelques années maintenant. Ces types ont aujourd’hui plus de 10 ans mais sont encore bien sous-utilisés. Pour plus de HTML 5 de bonne qualité, voir le sujet de Gaël Poupard dans l’après-midi. Les types de champ

Slide 55

Slide 55 text

Un des premiers avantages visibles en terme d’expérience utilisateur, est l’affichage d’un clavier adapté pour les utilisateurs mobiles. Les autres avantages : Leurs avantages peut être annoncé par un lecteur d’écran, affiche des indices visuels, propose un pattern de validation par défaut, est future-proof bit.ly/inputtype

Slide 56

Slide 56 text

Un des premiers avantages visibles en terme d’expérience utilisateur, est l’affichage d’un clavier adapté pour les utilisateurs mobiles. Les autres avantages : Leurs avantages peut être annoncé par un lecteur d’écran, affiche des indices visuels, propose un pattern de validation par défaut, est future-proof bit.ly/inputtype

Slide 57

Slide 57 text

Malgré tout, ces avantages peuvent aussi être des défauts. Leurs défauts le type number embarque un spinner control le type date affiche une icône calendrier la validation à la volée ne vous convient peut- être pas. l’expérience apportée n’est peut-être pas celle que vous recherchez.

Slide 58

Slide 58 text

inputmode à la rescousse inputmodes.com

Slide 59

Slide 59 text

inputmode à la rescousse inputmodes.com

Slide 60

Slide 60 text

VS inputmode à la rescousse inputmodes.com

Slide 61

Slide 61 text

VS inputmode à la rescousse inputmodes.com

Slide 62

Slide 62 text

No content

Slide 63

Slide 63 text

Ce mode de remplissage est privilégié pour les textes longs en général, et par tout type de personne. Par défaut, de type et d’inputmode text permet le remplissage du champ grâce à la voix. Speech input Keyword: SpeechRecognition API

Slide 64

Slide 64 text

Les bases ergonomiques d’un formulaire Respectez les règles en place

Slide 65

Slide 65 text

Un des premiers formulaire que j’ai trouvé remonte à 1990, autant vous dire que quelques habitudes se sont installées en 32 ans. Bien sûr ils ne ressemblaient pas forcément à ce qu’on connaît aujourd’hui. Je parle ici de règle d’affichage, d’aspect visuel et d’ergonomie. Un peu d’histoire Archie, le premier moteur de recherche d’un réseau FTP local.

Slide 66

Slide 66 text

WooCommerce propose un écran de choix de fonctionnalités lors de son onboarding sur l’écran dédié à l’installation du plugin. Le choix proposé semble être un choix unique avec des boutons radios, hélas très peu contrastés. Exemple des radio buttons

Slide 67

Slide 67 text

No content

Slide 68

Slide 68 text

No content

Slide 69

Slide 69 text

No content

Slide 70

Slide 70 text

No content

Slide 71

Slide 71 text

Le designer de ces checkboxes a aussi voulu jouer au malin. Ces checkboxes ressemblent fortement à des cases pré-cochées en lecture seule, non ? Exemple de checkboxes

Slide 72

Slide 72 text

Le designer de ces checkboxes a aussi voulu jouer au malin. Ces checkboxes ressemblent fortement à des cases pré-cochées en lecture seule, non ? Exemple de checkboxes

Slide 73

Slide 73 text

Vous vous rappelez certainement de la mode horrible des champs représentés avec une seule ligne ? Exemple de champs classiques confondus avec des séparateurs utilisateur ne sait pas où taper illisibles combinés à du placeholder bit.ly/material-fields

Slide 74

Slide 74 text

Vous vous rappelez certainement de la mode horrible des champs représentés avec une seule ligne ? Exemple de champs classiques confondus avec des séparateurs utilisateur ne sait pas où taper illisibles combinés à du placeholder bit.ly/material-fields

Slide 75

Slide 75 text

Si l’originalité de votre proposition graphique vient en perturber sa compréhension, alors changez-la, c’est qu’elle n’est pas bonne. 
 — Moi

Slide 76

Slide 76 text

Les bases ergonomiques d’un formulaire Agencement d’un formulaire

Slide 77

Slide 77 text

Peu importe la solution choisie, une des règles les plus élémentaire et l’utilisation d’un blanc- tournant, ou encore espace blanc. L’espace blanc Il est important de proposer un alignement uniforme et des espacements réguliers pour créer un rythme visuel.

Slide 78

Slide 78 text

Peu importe la solution choisie, une des règles les plus élémentaire et l’utilisation d’un blanc- tournant, ou encore espace blanc. L’espace blanc Il est important de proposer un alignement uniforme et des espacements réguliers pour créer un rythme visuel.

Slide 79

Slide 79 text

Notre perception regroupe d’abord les points proches les uns des autres. Dans une interface les groupes créés peuvent avoir une fonctionnalité ou un objectif commun. La loi de proximité

Slide 80

Slide 80 text

Loi de proximité

Slide 81

Slide 81 text

Loi de proximité

Slide 82

Slide 82 text

No content

Slide 83

Slide 83 text

Découper un long processus en plusieurs étapes est une bonne manière de décharger cognitivement vos utilisateurs et utilisatrices. Cependant, cela implique une bonne découpe logique, et la prise en compte de certaines contraintes. Multi-étapes

Slide 84

Slide 84 text

Dans les nombreux avantages du multi-étape : Multi-étapes : avantages expose en un clin d’oeil les différentes étapes soulage cognitivement et permet de focus rassure sur le niveau de complétion (donne de la visibilité à l’ensemble)

Slide 85

Slide 85 text

Malgré tout, voici quelques désavantages : Multi-étapes : inconvénients peut faire peur de prime-abord, demande un plus grand travail de design demande une attention en terme de dév. ils sont souvent le synonyme de règles métier trop complexes.

Slide 86

Slide 86 text

Pour ce type de solution, n’oubliez pas : Multi-étapes : ne pas oublier de créer des étapes cohérentes, thématiques, permettre de revenir en arrière, pouvoir sauvegarder et revenir plus tard, proposer un récapitulatif final

Slide 87

Slide 87 text

Pour ce type de solution, n’oubliez pas : Multi-étapes : ne pas oublier de créer des étapes cohérentes, thématiques, permettre de revenir en arrière, pouvoir sauvegarder et revenir plus tard, proposer un récapitulatif final

Slide 88

Slide 88 text

Pour ce type de solution, n’oubliez pas : Multi-étapes : ne pas oublier de créer des étapes cohérentes, thématiques, permettre de revenir en arrière, pouvoir sauvegarder et revenir plus tard, proposer un récapitulatif final

Slide 89

Slide 89 text

Pour ce type de solution, n’oubliez pas : Multi-étapes : ne pas oublier de créer des étapes cohérentes, thématiques, permettre de revenir en arrière, pouvoir sauvegarder et revenir plus tard, proposer un récapitulatif final

Slide 90

Slide 90 text

Pour ce type de solution, n’oubliez pas : Multi-étapes : ne pas oublier de créer des étapes cohérentes, thématiques, permettre de revenir en arrière, pouvoir sauvegarder et revenir plus tard, proposer un récapitulatif final

Slide 91

Slide 91 text

Proposer un formulaire « ultra focus » affichant 1 champ après l’autre peut-être une bonne manière de ne pas perdre l’attention de l’utilisatrice. Cependant, cela implique d’avoir des indices visuels clairs et un formulaire court. Champ par champ

Slide 92

Slide 92 text

No content

Slide 93

Slide 93 text

Aide à la complétion & rétention

Slide 94

Slide 94 text

Utilisez un langage simple et non-jargonné, Testez votre formulaire avec votre cible, Décrivez plus longuement si nécessaire. Encore une fois, le label est l’élément primordial qui permet de démarrer une conversation. Le label

Slide 95

Slide 95 text

Utilisez un langage simple et non-jargonné, Testez votre formulaire avec votre cible, Décrivez plus longuement si nécessaire. Encore une fois, le label est l’élément primordial qui permet de démarrer une conversation. Le label

Slide 96

Slide 96 text

Utilisez un langage simple et non-jargonné, Testez votre formulaire avec votre cible, Décrivez plus longuement si nécessaire. Encore une fois, le label est l’élément primordial qui permet de démarrer une conversation. Le label

Slide 97

Slide 97 text

Utilisez le champ le plus adapté. Vérifiez que cela expose bien toutes les options sans surcharger le formulaire. Nous l’avons déjà vu, le type de champ peut influencer le comportement de nos visiteurs. Le type de champ

Slide 98

Slide 98 text

Utilisez le champ le plus adapté. Vérifiez que cela expose bien toutes les options sans surcharger le formulaire. Nous l’avons déjà vu, le type de champ peut influencer le comportement de nos visiteurs. Le type de champ

Slide 99

Slide 99 text

C’est un indice que la taille de la donnée attendue. C’est subtile mais peut jouer dans l’anticipation visuelle sur ce type de formulaire à plusieurs champs. La taille du champ

Slide 100

Slide 100 text

C’est un autre indice visuel au même titre que la taille du champ. Il aide à mieux comprendre le format attendu sur ce champ, voire accompagne la saisie en évitant de taper des caractères de séparation. (espace ou « / » par exemple), et facilite la relecture de la donnée. Les masques de champ Votre IBAN Exemple de format : LU16 1234 1234 1234 0000

Slide 101

Slide 101 text

C’est un autre indice visuel au même titre que la taille du champ. Il aide à mieux comprendre le format attendu sur ce champ, voire accompagne la saisie en évitant de taper des caractères de séparation. (espace ou « / » par exemple), et facilite la relecture de la donnée. Les masques de champ Votre IBAN Exemple de format : LU16 1234 1234 1234 0000

Slide 102

Slide 102 text

Le mieux pour une formulaire, c’est de ne pas avoir à le remplir. Ici par exemple, il existe des règles locale me permettant de pré-compléter plein de champs. Si vous avez déjà des informations en mémoire, ou via un autre système, pré-complétez ! La pré-complétion

Slide 103

Slide 103 text

D’ailleurs pour vous y aider, vous pouvez utiliser l’autocomplete. Un attribut pratique qui permet au navigateur de compléter des champs en 1 action de l’utilisateur, si ces données sont en mémoire. L’autocomplete Doc du MDN

Slide 104

Slide 104 text

D’ailleurs pour vous y aider, vous pouvez utiliser l’autocomplete. Un attribut pratique qui permet au navigateur de compléter des champs en 1 action de l’utilisateur, si ces données sont en mémoire. L’autocomplete bit.ly/otc-demo

Slide 105

Slide 105 text

Si je renseigne une adresse en France, il y a de fortes chances que je possède également un numéro de téléphone Français. Aidez-moi en pré-complétant le préfixe de téléphone à +33. Mais permettez-moi de changer cette valeur. Inter-connexion

Slide 106

Slide 106 text

Une fois que vous avez récupéré ces informations, assurez-vous de les retenir. Rétention de l’info Ne les perdez pas en cas d’erreur, Ne les perdez pas en cas de crash, N’utilisez pas de button type reset 🤬 Ne donnez pas un temps limite de session. bit.ly/form-saver

Slide 107

Slide 107 text

Validation et gestion des erreurs

Slide 108

Slide 108 text

Le meilleur moyen de limiter les erreurs, c’est de limiter les données demandées, et les vérifications sur ces données.

Slide 109

Slide 109 text

Il arrive soit trop tôt (onchange) Soit trop tard, quand l’utilisateur quitte le champ (onblur) ou quand l’utilisatrice souhaite soumettre le formulaire. D’après plusieurs études et constats, le message d’erreur n’arrive jamais au bon moment. Jamais au bon moment

Slide 110

Slide 110 text

Supprimer l’erreur quand l’utilisateur a corrigé le champ, Valider le contenu le plus rapidement possible, mais pas pendant le remplissage de la donnée. …c’est que plusieurs règles permettent de limiter la frustration des utilisatrices. Mais ce qui est sûr…

Slide 111

Slide 111 text

Take aways S’il fallait résumer

Slide 112

Slide 112 text

Soyez light demandez uniquement l’utile. Take aways S’il fallait résumer

Slide 113

Slide 113 text

Soyez light demandez uniquement l’utile. Take aways S’il fallait résumer Pensez aux types de champs pour accompagner la complétion

Slide 114

Slide 114 text

Soyez light demandez uniquement l’utile. Take aways S’il fallait résumer Pensez aux types de champs pour accompagner la complétion Pensez au contexte et fournissez l’objectif du formulaire

Slide 115

Slide 115 text

Soyez light demandez uniquement l’utile. Take aways S’il fallait résumer Pensez aux types de champs pour accompagner la complétion Pensez au contexte et fournissez l’objectif du formulaire Utilisez un langage simple pour que toutes et tous comprennent

Slide 116

Slide 116 text

Soyez light demandez uniquement l’utile. Take aways S’il fallait résumer Pensez aux types de champs pour accompagner la complétion Pensez au contexte et fournissez l’objectif du formulaire Utilisez un langage simple pour que toutes et tous comprennent Validez au bon moment et validez uniquement le nécessaire

Slide 117

Slide 117 text

Soyez light demandez uniquement l’utile. Take aways S’il fallait résumer Pensez aux types de champs pour accompagner la complétion Pensez au contexte et fournissez l’objectif du formulaire Utilisez un langage simple pour que toutes et tous comprennent Validez au bon moment et validez uniquement le nécessaire Testez testez testez car chaque cible est unique.

Slide 118

Slide 118 text

DevFest Nantes 2022 “L’expérience de vos formulaires web” — @geoffreycrofte Geri Reid, « Forms best practices » Adrian Roselli, « Avoid messages under fields » Stéphanie Walter, « Hello My Name is Stéphanie » Twilio, « Why username and password on 2 different pages » Jessica Kerr, profil de l’autrice de nombreux contenus sur les formulaires Venture Harbour, « The evolution of webforms » MDN, Accessible Basic Form Hints Geoffrey Crofte, Customize Radio Button and Checkboxes with CSS WhatWG, Form control infrastructure, Autofill Ressources complémentaires Évitez UX Movement

Slide 119

Slide 119 text

Elle arrive, il faudra attendre 1 semaine encore. Et la checklist ?

Slide 120

Slide 120 text

https://forms.gle/pjxDXiekmakTjxgY6 Feedback sur la conf. https://forms.gle/ME1WQRu3KSmeE4TJ7 Checklist & Ebook En général je ne mords pas. Des questions ? geoffreycrofte.com/book

Slide 121

Slide 121 text

https://forms.gle/pjxDXiekmakTjxgY6 Feedback sur la conf. https://forms.gle/ME1WQRu3KSmeE4TJ7 Checklist & Ebook

Slide 122

Slide 122 text

“L’expérience de vos formulaires web” — @geoffreycrofte DevFest Nantes 2022 Geoffrey Crofte @geoffreycrofte linkedin.com/in/geoffreycrofte creativejuiz.fr/blog/ Lead (System) Designer / UX Designer @