Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Compréhensible

Cet article fournit des conseils pratiques pour rédiger vos contenus web afin qu'ils respectent les critères de succès du principe Compréhensible des Règles pour l'accessibilité des contenus Web (WCAG) 2.0 et 2.1. Le principe « Compréhensible » stipule que l'information et le fonctionnement de l'interface utilisateur doivent être compréhensibles.

Note : Pour lire les définitions du W3C pour « Compréhensible », ses lignes directrices et critères de succès, voir Principe 3 : Compréhensible — L'information et le fonctionnement de l'interface utilisateur doivent être compréhensibles (angl.).

Règle 3.1 — Lisibilité : rendre le contenu textuel lisible et compréhensible

Cette ligne directrice vise à rendre le contenu textuel aussi compréhensible que possible.

Critère de succès Comment satisfaire le critère Ressource pratique
3.1.1 Langue de la page (A) La langue humaine par défaut de chaque page web doit être détectable par le code. Cela permet notamment de s'assurer que la personne arrive sur une page rédigée dans une langue qui lui convient. Le moyen le plus simple est de définir l'attribut lang sur l'élément <html> de la page, en lui donnant la valeur du code de langue qui correspond le mieux à la langue du contenu. Voir Définir la langue principale du document.
3.1.2 Langue des parties (AA)

Si le contenu d'une page contient des mots ou expressions dans une langue différente de la langue principale, utilisez l'attribut lang sur un élément englobant (par exemple un <span> s'il n'y a pas d'élément sémantique adapté) pour indiquer la langue appropriée.

Il n'est pas nécessaire d'indiquer une langue différente pour les mots ou expressions identiques dans toutes les langues (par exemple les noms propres, les termes techniques qui ne relèvent pas d'une langue spécifique).

3.1.3 Mots inhabituels (AAA) Lorsqu'on utilise des termes techniques, du jargon ou des idiomes, il faut fournir des définitions pour ces mots ou expressions. Le site doit proposer un glossaire contenant ces définitions, auquel on peut faire des liens lors de leur apparition, ou à défaut fournir les définitions dans le texte ou dans une liste de description en bas de page.
3.1.4 Abréviations (AAA)

Lorsqu'on utilise des abréviations, il faut fournir leur signification ou une définition si nécessaire.

L'élément <abbr> est souvent considéré comme la meilleure façon de fournir le développement d'une abréviation — il prend un attribut title qui contient le développement, affiché au survol de l'acronyme. Cependant, le contenu de title n'est pas accessible au clavier ni toujours lu par les lecteurs d'écran. Il est donc préférable de proposer des liens vers des pages de glossaire contenant le développement et l'explication, ou à défaut de les inclure dans le texte autour.

Voir Abréviations.
3.1.5 Niveau de lecture (AAA)

Si un texte nécessite un niveau de lecture supérieur à celui du collège (enfants de 11 à 14 ans environ), il faut fournir du matériel explicatif supplémentaire pour aider les personnes qui ne peuvent pas le lire, ou proposer une version alternative rédigée à un niveau collège.

Cela ne signifie pas que tout le monde doit comprendre tous les sujets, mais que le style d'écriture doit être accessible à tous. Il est préférable de rédiger tout le contenu à un niveau collège, même la documentation technique comme les tutoriels de programmation, sauf raison valable (par exemple, un style poétique) ou si un style strict est imposé (par exemple, les spécifications W3C).

3.1.6 Prononciation (AAA)

Un mécanisme doit permettre aux utilisateur·ice·s d'accéder à la prononciation des mots lorsque cela est nécessaire pour bien comprendre le contenu.

L'élément HTML <audio> peut servir à créer un contrôle permettant d'écouter un fichier audio contenant la bonne prononciation, et il est aussi pertinent d'inclure un guide de prononciation textuel après les mots difficiles, comme dans les dictionnaires.

Voir Contenus vidéo et audio, et Guide de prononciation pour l'anglais (angl.)

Règle 3.2 — Prévisible : rendre les pages web prévisibles dans leur apparence et leur fonctionnement

Cette ligne directrice vise à rendre les interfaces utilisateur intuitives et compréhensibles.

Critère de succès Comment satisfaire le critère Ressource pratique
3.2.1 À la sélection (A)

Lorsqu'un contrôle ou une fonctionnalité de la page reçoit la sélection, cela ne doit pas changer le contexte d'une manière qui pourrait dérouter ou désorienter l'utilisateur·ice.

Il s'agit d'une question de conception réfléchie : les personnes ne veulent pas être surprises par les interfaces, elles veulent que tout soit intuitif et conforme à leurs attentes. Par exemple, sélectionner une option de menu de navigation ne doit pas changer la page affichée : il faut activer l'option avant de changer l'affichage.

L'événement focus de l'interface Element contient des informations utiles. Voir aussi Remettre l'accessibilité au clavier pour des idées d'implémentation.
3.2.2 À la saisie (A)

Lorsqu'une donnée est saisie dans un contrôle ou qu'un paramètre est modifié, le contexte ne doit pas changer de façon inattendue. L'utilisateur·ice doit être prévenu·e ou averti·e du changement à venir avant qu'il ne se produise.

Là encore, il faut appliquer une conception réfléchie. Par exemple, si appuyer sur un bouton provoque la sortie de la vue courante, il faut demander à la personne de confirmer cette action, de sauvegarder son travail si besoin, etc.

L'événement input est utile ici.
3.2.3 Navigation cohérente (AA)

Le style et la position des menus ou contrôles de navigation doivent rester cohérents entre les différentes pages ou vues d'un site web, et les éléments existants doivent apparaître dans le même ordre, même si de nouveaux éléments sont ajoutés. Si la personne a initié un changement (par exemple, choix d'un autre thème de couleurs ou position du menu), ce choix doit être respecté sur toutes les pages.

Là encore, conception réfléchie : rendez les contrôles de navigation identiques sur toutes les pages ou vues.

Voir Structurer logiquement les sections de page pour des informations sur le balisage moderne des mises en page. Voir aussi Mettre en forme les liens comme des boutons pour un exemple de menu de navigation accessible.
3.2.4 Identification cohérente (AA)

Les contrôles ou composants ayant la même fonctionnalité doivent être identifiés de la même manière sur toutes les pages ou vues. Par exemple, un convertisseur de devises présent sur chaque page d'un site de voyage doit être strictement identique, sémantiquement et dans ses libellés.

Encore une fois, conception réfléchie !

Les « libellés » peuvent désigner des informations descriptives dans le contenu textuel ou des labels HTML de formulaire. Voir Utiliser des étiquettes de texte significatives pour plus d'informations.
3.2.5 Changement sur demande (AAA)

Les changements de contexte susceptibles de dérouter ou désorienter les utilisateur·ice·s ne doivent se produire que sur demande, OU la personne doit pouvoir les désactiver.

Si vous devez proposer un élément qui modifie fortement la vue courante (contenu ou contrôles), laissez la personne choisir quand ce changement doit se produire (par exemple, quelle page afficher, quand passer à la photo suivante dans une galerie, etc.).

Si vous devez proposer un carrousel sur une page, prévoyez une option pour arrêter l'avance automatique. Il vaut mieux éviter ce type de fonctionnalité si possible.

3.2.6 Aide cohérente (A)

Les pages web qui proposent des mécanismes d'aide (aide en ligne, contacts humains, etc.) répétés sur plusieurs pages doivent placer ces mécanismes dans le même ordre sur toutes les pages, sauf si la personne a initié un changement.

Consultez la documentation sur l'aide cohérente (angl.) pour en savoir plus.

Règle 3.3 — Aide à la saisie : aider les utilisateur·ice·s à éviter et corriger les erreurs

Cette ligne directrice vise à aider les utilisateur·ice·s à saisir des informations correctes avec un minimum d'erreurs.

Critère de succès Comment satisfaire le critère Ressource pratique
3.3.1 Identification des erreurs (A)

Lorsqu'une personne remplit un formulaire ou fait un choix, toute erreur détectée doit être clairement signalée, ainsi que le contrôle de formulaire concerné.

Il est conseillé de mettre en place une détection et une gestion des erreurs côté client, via les fonctionnalités de validation HTML ou JavaScript, selon le contexte. Lorsqu'une erreur est détectée, un message d'erreur intuitif doit s'afficher à côté du champ concerné pour aider la personne à corriger sa saisie. Pour les utilisateur·ice·s de lecteurs d'écran, on peut utiliser les régions aria-live pour signaler le changement.

Note : La validation côté serveur doit toujours être utilisée en complément de la validation côté client. La validation côté client est trop facile à contourner ou à désactiver, elle ne peut donc pas être utilisée seule.

Voir Validation des données de formulaire pour des informations complètes sur la validation, et WAI-ARIA : mises à jour dynamiques du contenu pour les régions aria-live.
3.3.2 Libellés ou instructions (A)

Des instructions claires doivent être fournies lorsque la saisie de données est requise. Pour une consigne ou un libellé court, utilisez des éléments <label> pour les champs simples (nom, âge, etc.), ou une combinaison de <label>, <fieldset> et <legend> pour les groupes de champs (date de naissance, adresse postale, etc.).

Si une explication plus complexe est nécessaire, ajoutez des paragraphes explicatifs ou essayez de rendre vos formulaires plus intuitifs.

3.3.3 Suggestion d'erreur (AA)

Lorsqu'une erreur est détectée et que des suggestions de correction sont connues, il faut les fournir à la personne (par exemple, proposer d'autres identifiants si le nom d'utilisateur choisi est déjà pris), sauf si cela pose un problème de sécurité (mot de passe) ou de contexte (réponse à une question dans un quiz).

Dans ce cas, on utilisera probablement une combinaison de JavaScript et de fonctionnalités côté serveur pour vérifier la saisie et, si besoin, proposer des suggestions utiles, affichées comme les messages d'erreur (voir 3.3.1).

Pas encore de suggestions de tutoriels.
3.3.4 Prévention des erreurs (juridique, financier, données) (AA)

Pour les formulaires impliquant la saisie de données sensibles (contrats, transactions, données personnelles), au moins une des conditions suivantes doit être remplie :

  • Les soumissions sont réversibles.
  • Les données sont vérifiées et la personne peut les corriger.
  • Un mécanisme permet de confirmer et corriger les informations avant validation finale.

Réversible : pour toute vue où des données peuvent être saisies, proposez une vue équivalente permettant de modifier ou supprimer une entrée (voir par exemple Django web framework).

Vérification des données : comme en 3.3.1, combinez validation côté client et côté serveur pour détecter les erreurs et afficher des messages utiles.

Confirmation et correction : après avoir rempli une série de champs (achat, etc.), affichez un écran de confirmation pour relire et corriger les saisies. Ce modèle est courant sur les sites e-commerce comme Amazon.

3.3.5 Aide contextuelle disponible (AAA) Fournissez des instructions et des aides appropriées en contexte pour faciliter la saisie et la soumission des formulaires. Cela complète 3.3.1 et critères similaires, mais demande une aide contextuelle plus poussée : lien dédié vers une page d'aide, exemples de saisie réussie, etc.
3.3.6 Prévention des erreurs (tous cas) (AAA) Ce principe étend les exigences de 3.3.4 à toutes les situations de saisie, pas seulement celles impliquant des données sensibles. Voir aussi 3.3.4.
3.3.7 Saisie redondante (A) Les informations déjà saisies ou fournies par la personne dans le même processus doivent être automatiquement reprises ou proposées dans une liste, sauf si la ressaisie est essentielle ou requise pour des raisons de sécurité, ou si l'information n'est plus valide. Voir la documentation sur la saisie redondante (angl.) pour en savoir plus.
3.3.8 Authentification accessible (minimum) (AA) Les tests de fonction cognitive, comme se souvenir d'un mot de passe, ne doivent pas être exigés à une étape d'authentification, sauf si une alternative est proposée (reconnaissance d'objet ou de contenu personnel, ou mécanisme d'aide comme le copier-coller ou l'enregistrement automatique des mots de passe). Voir la documentation sur l'authentification accessible (angl.) pour en savoir plus.
3.3.9 Authentification accessible (renforcée) (AAA) Un test de fonction cognitive, comme se souvenir d'un mot de passe, ne doit jamais être exigé à une étape d'authentification sans proposer une alternative qui ne repose pas sur une fonction cognitive ou un mécanisme d'aide. Les tests d'authentification qui demandent de reconnaître des objets ou du contenu non textuel fourni par la personne sont autorisés. Voir la documentation sur l'authentification accessible renforcée (AAA) (angl.) pour en savoir plus.

Voir aussi