Le marteau du juge posé sur un bureau, avec des personnes en arrière-plan, lors d'une audience.

Description de l'image : un marteau de juge posé sur un bureau, avec des personnes en arrière-plan, lors d'une audience.

Ce qui fait l'objet de poursuites : un guide pratique des modèles d'interface utilisateur à l'origine de 6 666 plaintes en matière d'accessibilité

Catalogue de modèles · 19 pièces exposées

Ce qui fait l'objet de poursuites : un guide pratique des modèles d'interface utilisateur à l'origine de 6 666 plaintes en matière d'accessibilité

Les plaintes fédérales en matière d'accessibilité déposées en vertu de l'Americans with Disabilities Act invoquent rarement des manquements inédits. Elles invoquent sans cesse les mêmes dix-neuf motifs, en utilisant à peu près les mêmes termes. Il s'agit ici d'un répertoire, point par point, des éléments de page, des erreurs de code et des choix de conception qui reviennent le plus souvent — chacun étant étayé par des citations textuelles tirées des documents de plainte correspondants.

Le précédent volet de cette série a analysé les litiges sous un angle global : 8 788 affaires fédérales aux États-Unis, qui les intente, le degré de concentration du barreau des plaignants et la rapidité avec laquelle les affaires sont réglées. Cette perspective est utile pour les équipes juridiques et financières. Elle l'est moins pour le développeur, le concepteur ou le chef de produit qui doit déployer la correction concrète dès lundi matin.

Ce guide adopte une approche inverse. Il part de la page pour aller vers l'extérieur. Chaque entrée ci-dessous correspond à un modèle d'interface utilisateur spécifique — parfois un élément isolé, parfois un enchaînement — qu'un utilisateur de lecteur d'écran, de clavier ou malvoyant a rencontré, n'a pas pu utiliser, et qui a fait l'objet d'une plainte devant un tribunal fédéral. Pour chacun d'entre eux, nous indiquons ce que les plaignants ont réellement écrit dans leur plainte, la fréquence à laquelle ce modèle apparaît dans l'ensemble de données, pourquoi il donne lieu à un litige, et à quoi ressemble la solution.

Index des pièces à conviction · Cat. 2026.04

19 types de problèmes · classés par fréquence dans les dossiers de réclamations analysés

n = 113 120 numéros
ID Motif Page / surface Problèmes signalés
E·01Champ de formulaire intitulé « zone d'édition »Formulaires valables pour l'ensemble du site17,693 ↑
Épisode 2Navigation globale / menu hamburgerEn-tête, sur chaque page7,934
E·03Indicateur de mise au point manquant ou invisibleSur l'ensemble du site7,294
E·04Logo et images décoratives sans texte alternatifEn-tête, bannières6,337
E·05Fenêtre modale / contextuelle non signalée ou non mise en avantSur l'ensemble du site3,476
E·06Vidéo sans sous-titres ni transcriptionHero, pages de contenu3,355
E·07Fiche produit / Grille PLP non fonctionnellePages de listes2,900
E·08Taille, quantité, boutons d'échantillon (page de détail du produit)Détails du produit2,725
E·09Liens vides et « Cliquez ici » / « En savoir plus »Sur l'ensemble du site2,723
E·10Structure de la page : absence de balise H1, repères non fonctionnelsSur l'ensemble du site2,485
E·11Erreurs lors du processus de paiement et champs obligatoiresPasser à la caisse1,656
E·12Commandes sous forme d'icônes uniquement (panier, chat, réseaux sociaux)En-tête, pied de page1,531
E·13Barre de recherche et suggestions de saisie semi-automatiqueEn-tête1,252
E·14Superposition d'accessibilité / widget lui-mêmeSur l'ensemble du site1,210
E·15Formulaires de connexion, d'inscription et de mot de passePages d'authentification1,158
E·16Page du panier : quantité, supprimer, mettre à jourPanier1,022
E·17Barrières réservées aux appareils mobilesSite web mobile / application mobile787
E·18« Ajouter au panier » — aucune confirmation sonorePDP, chariot718
E·19Libellés des champs de paiement (code de sécurité, numéro de carte)Passer à la caisse524

Les chiffres correspondent aux entrées classées par thème, extraites des documents de plainte figurant dans la base de données des tribunaux fédéraux ; une affaire génère généralement des dizaines d'entrées. Les tendances sont classées en fonction du nombre total de thèmes recensés, et non de leur fréquence au niveau de chaque affaire.

D'où proviennent ces données ?

Ce catalogue s'appuie sur le même ensemble de données des tribunaux fédéraux que celui décrit dans le précédent article : 8 788 affaires relatives à l'accessibilité des sites web au titre du Titre III de l'ADA, extraites de PACER (le système d'accès public aux dossiers judiciaires électroniques de la magistrature fédérale), dont 6 666 descriptions de problèmes spécifiques ont été extraites des plaintes et classées en 27 catégories fonctionnelles — navigation globale, annonces des lecteurs d'écran, navigation au clavier, formulaires, fenêtres modales, paiement, etc.

Chaque citation textuelle figurant dans les entrées ci-dessous est reproduite à partir des extraits du dossier tels qu’ils apparaissent dans la plainte initiale, avec de légères corrections rédactionnelles visant uniquement à corriger les erreurs manifestes d’OCR (par exemple, « A nnounced » → « Announced ») apparues lors de la numérisation des dossiers judiciaires. Le nombre de points reflète le nombre d'entrées classées par catégorie, et non le nombre de cas distincts — un seul cas génère généralement des dizaines d'entrées couvrant plusieurs catégories. Lorsque cela s'avère utile, nous signalons la prédominance relative d'un sous-motif au sein de sa catégorie.

Les plaignants ne contestent pas des bugs rares ou difficiles à détecter. Ils contestent le même processus de paiement, le même logo, la même fenêtre contextuelle, le même champ de formulaire, site après site après site.

Partie I · Le parcours utilisateur
Les schémas qui font l'objet de poursuites judiciaires, dans l'ordre où l'utilisateur les rencontre

Huit étapes, de l'arrivée sur le site jusqu'au paiement. Les éléments de la page à l'origine de la plupart des cas ne se trouvent pas en périphérie du site, mais tout au long du parcours de conversion — en-tête, recherche, produit, panier, paiement —, c'est-à-dire exactement là où le chiffre d'affaires est généré.

Épisode 2

La navigation globale et le menu « hamburger » sans libellé

Extrait des plaintes
Le bouton du menu principal n'est pas libellé
Le lien « Aller au menu » ne fonctionne pas correctement
Lien « Passer au contenu » manquant sur la page
La page ne comporte ni lien de saut ni zone de repère permettant aux utilisateurs du clavier de passer directement à la section suivante, ce qui les oblige à parcourir les éléments de l'en-tête à l'aide de la touche Tab
Fréquence
7 934entrées classées dans la catégorie « Navigation globale / En-tête »
301 entréesconcernant spécifiquement les problèmes liés au menu, aux hamburgers ou aux liens de saut
Pourquoi est-elle poursuivie en justice ?

L'en-tête est la première zone interactive de chaque page, et le bouton « hamburger » est souvent la première chose à laquelle accède un utilisateur du clavier. Lorsque ce bouton s'affiche sous la forme d'un <div> si un élément utilise une image d'arrière-plan CSS, ne dispose pas d'un nom accessible ou déploie un menu qui retient le focus ou ne signale pas son état (ouvert/fermé), l'ensemble du site devient structurellement inaccessible au clavier avant même que l'utilisateur n'ait pu consulter le contenu proprement dit.

Le lien d'accès direct est le problème qui va de pair. Un lien qui fonctionne "Skip to main content" Le lien de saut ne nécessite que cinq lignes de code, mais il constitue aussi le critère le plus efficace pour déterminer si une équipe de développement a réellement intégré l'accessibilité à sa liste de contrôle. Les plaintes mentionnent souvent ces deux éléments dans le même paragraphe, car un lien de saut manquant ou défectueux est un signe avant-coureur : si l'équipe n'a pas intégré de lien de saut, il est presque certain qu'elle n'a pas non plus pris en charge les états « aria-expanded ».

La solution

Afficher le déclencheur du menu sous sa forme réelle <button> avec une étiquette textuelle visible ou accessible uniquement par un lecteur d'écran et un élément géré aria-expanded attribut. Indiquez un "Skip to main content" lien qui s'affiche lorsque le curseur passe dessus et qui mène à la page <main> repère. Assurez-vous que le focus passe sur le menu lorsqu'il s'ouvre, qu'il revienne sur l'élément déclencheur lorsqu'il se ferme, et que Esc ferme le menu.

En-tête de page, sur chaque page WCAG 2.2 AA2.4.1 Contournement des blocs · 4.1.2 Nom, rôle, valeur · 2.1.1 Clavier
E·13

Barre de recherche et suggestions de saisie semi-automatique

Extrait des plaintes
L'utilisateur ne peut pas utiliser la barre de recherche
Les suggestions de recherche qui s'affichaient sous la barre de recherche ne pouvaient pas être sélectionnées à l'aide du clavier
L'utilisateur n'avait pas remarqué les suggestions de recherche après avoir saisi un terme dans la barre de recherche
Le plaignant n'a pas été informé que les résultats de la recherche s'affichaient à l'écran
Fréquence
1 252entrées sur la recherche et le filtrage
164 entréesportant spécifiquement sur la saisie semi-automatique, les suggestions ou les interfaces utilisateur prédictives
Pourquoi est-elle poursuivie en justice ?

Sur la plupart des grands sites, la fonction de recherche est recréée sous la forme d'un composant personnalisé : un champ de saisie textuel avec suppression du rebond qui envoie une requête à chaque frappe et affiche une liste flottante de suggestions à l'intérieur d'un élément positionné de manière absolue <div>. Le champ de saisie en lui-même fonctionne généralement bien. La liste de suggestions, en revanche, ne fonctionne presque jamais correctement. Elle s'affiche en dehors du contexte DOM du champ de saisie et ne dispose d'aucun role="listbox", non aria-activedescendant, et aucune notification de zone active ne s'affiche lorsque les résultats apparaissent. Un utilisateur de lecteur d'écran tape du texte, n'entend rien, appuie sur Entrée et obtient une page de résultats dont il ignorait l'existence.

On retrouve le même modèle architectural dans les panneaux de filtrage de la recherche à facettes et dans la liste des résultats elle-même : des éléments sur lesquels le curseur du clavier peut se poser, qui sont visibles mais qui ne sont jamais annoncés. Les plaintes concernant la recherche portent rarement sur le champ de recherche ; elles concernent tout ce qui s'affiche une fois que l'utilisateur a saisi son texte.

La solution

Utilisez le modèle de liste déroulante WAI-ARIA établi : role="combobox" à l'entrée avec aria-expanded, aria-controls, et aria-activedescendant raccordé à un role="listbox" de suggestions. Ajoutez une zone interactive qui affiche le nombre de résultats. Assurez-vous que la liste de suggestions soit accessible à l'aide de la touche fléchée vers le bas, et pas seulement avec la souris.

SurfaceHeader: recherche · page de résultats de recherche WCAG 2.2 AA4.1.2 Nom, rôle, valeur · 4.1.3 Messages d'état · 2.1.1 Clavier
E·07

Fiche produit et grille PLP

Extrait des plaintes
L'utilisateur ne peut pas utiliser ce filtre
L'utilisateur ne peut pas accéder au menu des filtres
attributs et filtres inaccessibles
Cela empêche les utilisateurs de lecteurs d'écran d'utiliser l'outil « Filtre »
Fréquence
2 900entrées sur la page de présentation des produits
30 casavec extraction détaillée des problèmes liés au PLP
Pourquoi est-elle poursuivie en justice ?

La grille PLP regroupe plusieurs anti-modèles sur un seul écran. Chaque tuile est généralement une carte cliquable comportant trois ou quatre éléments interactifs — lien vers une image, lien vers un titre, nuancier de couleurs, bouton d’ajout rapide —, le tout encadré par un autre lien vers la page du produit. Il en résulte des éléments interactifs imbriqués (une erreur HTML), des textes de lien redondants (« Hero Dash Three Graphic Image Link » répété quatre fois) et des nuanciers de couleurs créés à partir de <div> les éléments dotés d'un gestionnaire de clic, mais sans rôle ni nom.

La barre latérale de filtrage ajoute une deuxième catégorie d'erreurs. Les facettes de filtrage se présentent généralement sous forme de listes de cases à cocher, mais elles sont en réalité construites à l'aide d'éléments div et span personnalisés, stylisés pour ressembler à des cases à cocher, avec le véritable <input> masqué hors de l'écran. Lorsque cet élément masqué perd son association — à cause d'une règle CSS, d'un gestionnaire d'événements JavaScript qui intercepte les pressions sur la touche Espace, ou d'un élément manquant for attribut sur l'étiquette visible — le filtre ne peut alors être activé qu'à l'aide de la souris.

La solution

Utilisez un lien par vignette avec un texte descriptif, et non pas trois liens par produit. Affichez les échantillons de couleur tels qu'ils sont réellement <button> éléments à l'intérieur d'un role="radiogroup". Créer des facettes de filtrage sur les données réelles <input type="checkbox"> éléments associés <label> tags ; stylisez les champs de saisie de manière visible plutôt que de les masquer. Signalez les modifications apportées au filtre à l'aide d'une zone interactive claire.

Pages de listede produits, résultats de recherche WCAG 2.2 AA1.3.1 Informations et relations · 2.4.4 Objectif des liens · 4.1.2 Nom, rôle, valeur
E·08

Détails du produit : boutons « Taille », « Quantité » et « Échantillon »

Extrait des plaintes
Les boutons « Taille » et « Quantité » sur les pages produits ne sont pas libellés
Le bouton « Quantité » n'est pas libellé ni accessible sur les pages produits
Le bouton « Tableau des tailles » n'est pas indiqué sur les pages produits
Sur la page du produit, le site web ne propose pas de guide des tailles
Fréquence
2 725entrées sur la page de détails du produit
169 entréesportant spécifiquement sur la taille, la quantité, les échantillons ou les sélecteurs de couleur
Pourquoi est-elle poursuivie en justice ?

C'est sur la page de détail du produit qu'un utilisateur de lecteur d'écran doit effectuer plusieurs choix précis dans le bon ordre : choisir une couleur, choisir une taille, définir une quantité, puis ajouter le produit au panier. Chacun de ces choix est mis en œuvre dans le commerce électronique moderne sous la forme d'un widget personnalisé — généralement une rangée horizontale de <button>en forme de <div>En ce qui concerne les dimensions, les tuiles de couleur sont constituées de divs stylisées via CSS, et le curseur numérique est formé de deux boutons iconiques encadrant un champ de saisie. Les boutons d'augmentation et de diminution sont généralement fournis sans nom accessible ; les plaintes les décrivent comme annoncé sous le nom de « button, button » sans aucune indication sur ce qu'ils font.

Les guides des tailles et les tableaux des tailles constituent un autre problème : ils se trouvent presque toujours derrière un lien « Tableau des tailles » qui ouvre une fenêtre contextuelle, et ce lien n'est souvent pas libellé, la fenêtre contextuelle n'affiche souvent pas de titre, et le tableau qu'elle contient ne comporte souvent ni en-têtes de lignes ni de colonnes.

La solution

Utilisez de véritables contrôles de formulaire. Les nuanciers de couleurs et les sélecteurs de taille doivent être des role="radiogroup" de role="radio" des boutons (ou des éléments radio dont l'apparence est masquée), chacun doté d'un nom accessible tel que « Taille : Moyenne ». Le curseur de quantité doit être un champ numérique étiqueté, accompagné de boutons d'augmentation et de diminution dont les noms accessibles indiquent l'action et la quantité actuelle. Enveloppez l'ensemble du bloc de sélection dans un élément `fieldset` muni d'une légende.

Pages de détailsdes produits Surface WCAG 2.2 AA1.3.1 Informations et relations · 4.1.2 Nom, rôle, valeur · 3.3.2 Étiquettes ou instructions
E·18

« Ajouter au panier » — le bouton qui ne confirme pas

Extrait des plaintes
Confirmation de l'ajout au panier non communiquée
Le bouton « Ajouter au panier » n'est PAS annoncé et n'est PAS accessible
Le message « Ajouter au panier » n'est pas lu à voix haute pour les utilisateurs de lecteurs d'écran
L'utilisateur ne peut pas ajouter cet article à son panier
Fréquence
718entrées de problèmeconcernant l'action « Ajouter au panier »
78 résultatscontenant spécifiquement l'expression « non annoncé » / « pas de confirmation »
Pourquoi est-elle poursuivie en justice ?

Le bouton « Ajouter au panier » est l'étape la plus testée dans tout entonnoir de vente en ligne, et l'une de celles qui posent le plus souvent problème aux utilisateurs de technologies d'assistance. Le schéma est classique : un visiteur clique sur le bouton, une petite fenêtre de confirmation ou un mini-menu de panier s'affiche pendant deux ou trois secondes, et l'icône du panier met à jour le compteur dans l'en-tête. Les utilisateurs voyants perçoivent ces trois signaux. Les utilisateurs de lecteurs d'écran n'en perçoivent généralement aucun. La fenêtre contextuelle s'affiche en dehors de toute zone interactive, le tiroir apparaît sans gestion du focus, et la modification du nombre d'articles dans le panier est traitée comme une simple mutation du DOM qu'aucun lecteur d'écran ne signalera.

Il en résulte un bouton qui, du point de vue de l'utilisateur, ne fait rien. Il appuie dessus, n'entend aucun son, pense que ça n'a pas marché et appuie à nouveau. Certains utilisateurs se plaignent d'avoir dû appuyer cinq ou six fois sur le bouton avant de se rendre compte que le panier s'était rempli en silence de cinq ou six articles.

La solution

Encadrez la zone « cart-status » avec aria-live="polite" et actualiser son texte à chaque ajout réussi. Si l'interface utilise un volet de confirmation, déplacer le focus vers ce volet lorsqu'il s'ouvre et le ramener sur le bouton d'origine lorsqu'il se ferme. Mettre à jour l'icône indiquant le nombre d'articles dans le panier avec une annonce destinée uniquement aux lecteurs d'écran, telle que « 1 article ajouté. Total du panier : 3 articles. »

Détailsdu produit· Panier · Pages de liste WCAG 2.2 AA4.1.3 Messages d'état · 4.1.2 Nom, rôle, valeur · 2.4.3 Ordre de focus
E·12

Commandes sous forme d'icônes uniquement : le panier, la bulle de discussion, la barre de réseaux sociaux

Extrait des plaintes
L'icône du panier n'est pas correctement libellée
Les icônes « Compte » et « Panier » ne sont pas identifiées sur la plateforme numérique du défendeur
L'icône de chat n'est pas accessible via le clavier
Les liens vers les réseaux sociaux en bas de page ne sont pas libellés
Fréquence
1 531entrées sur les icônes et les éléments visuels
40 articlesconsacrés spécifiquement à l'étiquetage des icônes de panier
Pourquoi est-elle poursuivie en justice ?

Les contrôles composés uniquement d'icônes présentent des dysfonctionnements prévisibles : le contenu visible est un fichier SVG ou un glyphe de police d'icônes, le contenu accessible est vide, et la lecture par un lecteur d'écran se réduit au rôle structurel de l'élément, qui n'a pas de nom. L'icône du panier est finalement annoncée comme « lien » ou « réduit »; la bulle de discussion comme « bouton »; la rangée d'icônes sociales dans le pied de page comme « lien, lien, lien, lien, lien ». L'utilisateur n'a aucun moyen de savoir à quoi elles servent.

Les icônes de panier présentent plus souvent des dysfonctionnements que les autres icônes pour une raison d'ordre architectural : de nombreuses implémentations affichent le nombre d'articles du panier dans le nom accessible de l'icône (par exemple, l'icône affiche « 0 » à l'intérieur du fichier SVG), et le lecteur d'écran ne détecte que le chiffre. Des utilisateurs se plaignent que l'icône de panier est annoncée comme « 3, lien » ou « 0, lien », sans aucune indication précisant que le « 3 » fait référence à la quantité d'articles dans le panier.

La solution

Chaque contrôle composé uniquement d'icônes doit avoir un nom accessible. Ajoutez un aria-label sur le bouton ou en y intégrant une étiquette de texte invisible : "Shopping cart, 3 items". Évitez d'inclure des chiffres dans le nom accessible de l'icône sans contexte. Pour les icônes décoratives qui accompagnent du texte visible, utilisez aria-hidden="true" sur l'icône et laissez le texte servir d'étiquette.

En-tête· pied de page · widgets flottants WCAG 2.2 AA1.1.1 Contenu non textuel · 4.1.2 Nom, rôle, valeur · 2.4.4 Objectif du lien
E·11

Paiement : le formulaire qui ne peut pas être rempli

Extrait des plaintes
Sur la page de paiement, le message d'erreur ne s'affiche pas
L'utilisateur ne parvient pas à saisir ses informations de facturation lors du paiement
Les menus déroulants de la section « Informations de facturation » ne peuvent pas être actionnés à l'aide de la touche Espace
Les messages d'erreur lors du paiement sont vagues et n'indiquent pas aux utilisateurs ce qu'il faut corriger
Fréquence
1 656entrées de problèmes concernant le processus de paiement
124 entréesconcernant les messages d'erreur, les champs obligatoires ou les obstacles liés aux formulaires de facturation
Pourquoi est-elle poursuivie en justice ?

La page de paiement concentre davantage de risques liés à la conformité par pixel carré que n'importe quelle autre page d'un site de commerce en ligne, et les sources d'erreur y sont nombreuses. Les menus déroulants d'adresse s'affichent sous forme personnalisée <div> éléments qui ignorent la touche Espace. Les champs obligatoires sont signalés uniquement par un astérisque rouge, sans aria-required et aucune association programmatique. Des messages d'erreur s'affichent en rouge sous le champ, sans aria-describedby le champ n'est pas associé à l'erreur et aucune zone active n'est mise en évidence lorsque la validation échoue. L'utilisateur remplit le formulaire, clique sur « Continuer », est redirigé sans avertissement et n'a aucun moyen de savoir quels champs ont posé problème ni pourquoi.

On retrouve les mêmes plaintes dans des centaines de cas : les messages d'erreur ne sont pas annoncés, ils sont vagues, il est impossible de saisir les informations de paiement. Il ne s'agit pas de bugs isolés. C'est le comportement par défaut de la plupart des composants de paiement en ligne fournis sans avoir fait l'objet d'un travail explicite en matière d'accessibilité.

La solution

Utilisez des données réelles <label> éléments associés aux entrées par for/id. Indiquez les champs obligatoires avec aria-required="true" et indiquez que le champ est obligatoire dans le texte visible, et pas seulement par la couleur. En cas d'échec de la validation, affichez le message d'erreur à l'intérieur du champ de saisie aria-describedby cible, indiquez le champ défaillant aria-invalid="true", et déplacer le focus du clavier sur le premier champ non valide. Afficher une zone récapitulative des erreurs en haut du formulaire, avec des liens vers chaque champ présentant une erreur.

SurfaceCheckout· formulaires d'adresse · formulaires de contact WCAG 2.2 AA3.3.1 Identification des erreurs · 3.3.3 Suggestions en cas d'erreur · 1.3.1 Informations et relations · 4.1.3 Messages d'état
E·19

Paiement : le champ CVV qui ne comporte pas de libellé

Extrait des plaintes
Les champs de saisie « Carte de débit ou de crédit » sur la page de paiement ne sont PAS intitulés
Lorsque l'utilisateur tente d'effectuer un paiement par carte bancaire, il n'y a pas d'étiquette appropriée pour identifier le champ de saisie du code CVV
L'utilisateur ne peut pas saisir les informations de sa carte bancaire lors du paiement
L'utilisateur ne peut pas ajouter de carte de crédit lors du paiement
Fréquence
524entrées relatives aux paiements
75 entréesportant spécifiquement sur l'étiquetage des cartes de crédit, du code CVV ou du numéro de carte
Pourquoi est-elle poursuivie en justice ?

Le bloc de paiement est particulier, car il est souvent intégré via une iframe tierce — Stripe Elements, Braintree Hosted Fields ou un module prêt à l'emploi d'Adyen. À l'intérieur de l'iframe, le formulaire propre au prestataire de paiement est généralement bien étiqueté. Mais dès qu’un site crée son propre formulaire de saisie de carte bancaire ou intègre les champs dans une mise en page personnalisée qui remplace les étiquettes par des espaces réservés visuels, les quatre champs — numéro, date d’expiration, CVV, code postal — apparaissent comme une ligne de champs vides pour un lecteur d’écran.

Le champ CVV est celui qui fait le plus souvent l'objet d'une erreur d'étiquetage, car les concepteurs remplacent souvent son libellé par une icône en forme de point d'interrogation qui ouvre une info-bulle expliquant ce qu'est un CVV. L'info-bulle ne remplace pas le libellé ; le champ doit tout de même disposer d'un nom programmatique. Lorsqu'il n'en a pas, le lecteur d'écran annonce l'ensemble du bloc de paiement comme « modifier, modifier, modifier, modifier » et la transaction s'interrompt.

La solution

Si vous utilisez une intégration de champs hébergés par un tiers, suivez les recommandations d'accessibilité du fournisseur : la plupart proposent une méthode documentée pour étiqueter les champs depuis l'extérieur de l'iframe. Si vous créez un formulaire de saisie de données personnalisé, chaque champ de saisie doit disposer d'un véritable <label> élément comportant une étiquette de texte visible, ainsi que autocomplete="cc-number" / cc-exp" / cc-csc" attributs afin que les gestionnaires de mots de passe et les technologies d'assistance puissent identifier les champs en fonction de leur fonction.

SurfaceCheckout· Étape de paiement WCAG 2.2 AA3.3.2 Étiquettes ou instructions · 1.3.5 Identifier l'objectif de la saisie · 4.1.2 Nom, rôle, valeur
E·16

Page du panier : le sélecteur de quantité et le bouton « Supprimer » manquant

Extrait des plaintes
Par conséquent, les utilisateurs de lecteurs d'écran ne peuvent pas supprimer d'articles de leur panier
Le demandeur n'a pas pu retirer de produit de son panier
Le plaignant n'a pas pu modifier la quantité d'articles dans son panier
Dans le panier, l'option de quantité n'est pas correctement libellée
Fréquence
1 022entrées sur la page « Panier »
174 entréesconcernant spécifiquement les opérations de quantité, de suppression ou de mise à jour
Pourquoi est-elle poursuivie en justice ?

La page du panier reproduit le problème rencontré avec le sélecteur de quantité de la page de détail du produit, mais avec des conséquences plus graves : un utilisateur de lecteur d'écran qui ne parvient pas à utiliser ce sélecteur ne peut pas finaliser sa commande. Le bouton « Supprimer » constitue en soi un anti-modèle : il s'agit généralement d'une petite icône en forme de « × » située à côté de chaque article, souvent dépourvue de texte visible, sans aria-label, et aucune notification n'est émise lorsque la ligne est supprimée. L'utilisateur clique sur ce qu'il pense être le bouton de suppression, la ligne disparaît, et le lecteur d'écran reste silencieux. Il n'y a aucun moyen de confirmer que l'action a bien abouti.

Plusieurs plaintes font état d'un problème similaire : le montant total du panier est mis à jour en temps réel lorsque les quantités changent ou que des articles sont retirés, mais le nouveau total s'affiche sous forme de texte DOM classique en dehors de toute zone dynamique, de sorte que l'utilisateur n'a aucune idée du montant qui lui sera facturé.

La solution

Chaque ligne doit comporter un bouton « Supprimer » clairement identifié (par exemple, "Remove Blue T-Shirt, size M, from cart"). Les curseurs de quantité doivent indiquer leur valeur actuelle soit dans leur nom accessible, soit via des mises à jour associées de la zone interactive. Le sous-total du panier doit figurer à l'intérieur d'un aria-live="polite" région, de sorte que les modifications soient signalées. Confirmez les suppressions à l'aide d'une fonction d'annulation.

PagePanier/ Panier WCAG 2.2 AA4.1.3 Messages d'état · 4.1.2 Nom, rôle, valeur · 2.4.4 Objectif du lien
Partie II · Modèles à l'échelle du site
Des erreurs qui se reproduisent à chaque page, quel que soit le parcours

Sept éléments qui ne sont pas liés à une étape spécifique de l'entonnoir de conversion. Il s'agit de questions d'infrastructure — conventions au niveau des pages, composants globaux, référentiel de contenu — et une seule défaillance à ce niveau se répercute sur toutes les pages où le composant apparaît.

E·01

Le champ de formulaire intitulé « zone d'édition »

Extrait des plaintes
Le plaignant s'est heurté à des champs de formulaire non identifiés, simplement désignés comme « zone d'édition », et n'a pas pu bénéficier des promotions ni finaliser le paiement
Sur la page de connexion, le champ de saisie n'a pas de libellé et n'est pas annoncé
Absence d'étiquettes visuelles sur les champs du formulaire • Problème : les champs « Nom » et « Adresse e-mail » ne comportent pas d'étiquettes
Les boutons « Augmenter » et « Diminuer » ne portent pas non plus d'étiquette et ne sont pas annoncés aux utilisateurs de lecteurs d'écran
Fréquence
17 693entrées classées dans la catégorie « Annonces pour les lecteurs d'écran »
2 522entrées figurant directement dans la catégorie « Formulaires »
Pourquoi est-elle poursuivie en justice ?

Il s'agit de la catégorie la plus importante de l'ensemble de données, car c'est le problème le moins coûteux à détecter et le plus coûteux à ignorer. Un lecteur d'écran parcourt le DOM, rencontre un <input>, et lit son nom d'accès — qu'il calcule à partir, dans l'ordre : aria-labelledby, aria-label, une société affiliée <label for>, le title attribut ou l'élément de remplacement. Si aucun de ces éléments n'existe, le lecteur d'écran n'annonce que le rôle : « zone d'édition » ou « édition, vide ». Cette phrase, reprise presque mot pour mot, revient dans des centaines de dossiers de réclamation.

La raison pour laquelle cette pratique est si courante est d'ordre structurel. Les systèmes de conception modernes affichent souvent un texte de remplacement à l'intérieur du champ de saisie pour suppléer à l'étiquette visible, et les développeurs partent du principe que ce texte de remplacement fait office d'étiquette. Or, ce n'est pas le cas. Le texte de remplacement disparaît lorsque l'utilisateur commence à taper, ne laisse aucune référence programmatique et rend le champ inutilisable pour toute personne qui y accède plus tard dans le flux ou qui y revient après une erreur.

La solution

Chaque élément de contrôle interactif est associé à une étiquette visible, définie par programmation. <label for="email">Email</label><input id="email" type="email"> C'est la norme. Les espaces réservés ne sont que des indications supplémentaires, et non des substituts. Pour les éléments de contrôle où un libellé visible n'est vraiment pas souhaitable (champs de recherche, boutons sous forme d'icônes), utilisez aria-label avec un texte descriptif — jamais avec le texte de remplacement dupliqué.

Surface: tous les formulaires du site WCAG 2.2 AA3.3.2 Étiquettes ou instructions · 1.3.1 Informations et relations · 4.1.2 Nom, rôle, valeur
E·05

Le modal qui n'est ni signalé ni mis en évidence

Extrait des plaintes
Cette fenêtre contextuelle n'est pas signalée et ne se met pas en avant
Cependant, le focus ne passe pas dans la fenêtre contextuelle
La boîte de dialogue n'a pas automatiquement reçu le focus
La fenêtre contextuelle ne reçoit pas le focus et n'est pas annoncée
Fréquence
3 476entrées concernant les fenêtres contextuelles, les fenêtres modales et les superpositions
1 165 entréesmentionnant les termes « concentration », « évasion » ou « rejet »
Pourquoi est-elle poursuivie en justice ?

L'expression « non annoncé ou sans focus » apparaît telle quelle dans plus de 400 signalements et constitue l'une des phrases les plus récurrentes de l'ensemble des données. Elle décrit un type de dysfonctionnement spécifique : une fenêtre modale ou une boîte de dialogue s'affiche sur la page (souvent automatiquement — inscription à une newsletter, vérification de l'âge, confirmation de la localisation), le contenu visible change, mais le lecteur d'écran ne reçoit aucun signal indiquant qu'un changement s'est produit. Le focus reste sur la page sous-jacente. L'utilisateur continue à naviguer à l'aide de la touche Tabulation sur ce qui se trouvait sous la fenêtre modale, sans se rendre compte qu'une boîte de dialogue bloquante est apparue.

C'est l'exemple type d'une fenêtre contextuelle qui échoue sur tous les plans à la fois : pas role="dialog", non aria-modal="true", pas de changement de focus programmatique lors de l'ouverture, pas de « focus trap » pendant l'ouverture, pas de fermeture par la touche Échap, pas d'annonce du titre. Comme tous ces problèmes vont de pair, le fait de corriger l'un d'entre eux isolément ne change rien à la situation.

La solution

Utilisez un modèle de boîte de dialogue standard (la spécification « WAI-ARIA Authoring Practices » sert de référence). À l'ouverture : déplacez le focus sur le premier élément pouvant recevoir le focus à l'intérieur de la boîte de dialogue, définissez aria-modal="true" et role="dialog", nommez la boîte de dialogue aria-labelledby en indiquant son titre. Tant qu'il est ouvert : maintenir le focus à l'intérieur de la boîte de dialogue. À la fermeture : renvoyer le focus vers l'élément qui l'a déclenché. Respecter la touche Échap. Si la fenêtre modale interrompt un flux (par exemple, la lecture automatique au chargement de la page), proposer à l'utilisateur un moyen unique de la fermer définitivement.

Fenêtres contextuellesde la newsletter Surface· bannières de cookies · filtres d'âge · volets de confirmation du panier WCAG 2.2 AA4.1.2 Nom, rôle, valeur · 2.4.3 Ordre de focus · 2.1.2 Absence de piège clavier · 4.1.3 Messages d'état
E·03

L'indicateur de mise au point manquant

Extrait des plaintes
Les indicateurs de sélection du clavier qui ne sont pas visibles
De plus, ils ne disposent pas d'indicateurs de mise au point visibles
l'indicateur de sélection du clavier n'était pas visible
Parmi les autres infractions, on peut citer les pièges à clavier
Fréquence
7 294tickets concernant la navigation au clavier et le focus
197 entréestraitant spécifiquement des indicateurs de mise au point ou de la mise au point visible
Pourquoi est-elle poursuivie en justice ?

Les indicateurs de focus sont généralement désactivés intentionnellement par un développeur ou un concepteur qui considérait le contour par défaut du navigateur comme un élément gênant et a écrit *:focus { outline: none; } dans une feuille de style globale. La page semble désormais plus claire pour un utilisateur voyant qui utilise la souris. En revanche, pour un utilisateur voyant qui utilise le clavier — notamment la plupart des personnes malvoyantes, des personnes à mobilité réduite et des utilisateurs qui naviguent sans souris —, la page devient inutilisable. L'utilisateur peut appuyer sur la touche Tab, mais il ne peut pas voir où il se trouve.

Il s'agit de l'un des rares problèmes d'accessibilité détectables sans aucun outil d'assistance. Un contrôleur qualité qui parcourt la page d'accueil à l'aide de la touche Tab, sans autre outil, le repérera en moins d'une minute. Le fait que les équipes chargées de l'accessibilité le repèrent systématiquement sur les sites faisant l'objet d'un litige, alors que les contrôles internes l'ont manqué, constitue l'un des indices les plus fiables dans l'ensemble de données indiquant que le site n'a absolument pas passé les tests d'accessibilité au clavier.

La solution

Ne désactivez jamais tout en bloc :focus des contours sans remplissage. Appliquez un style de surbrillance visible — généralement un contour de 2 à 3 pixels offrant un contraste suffisant par rapport à l'élément et à son arrière-plan — en utilisant :focus-visible L'indicateur s'affiche donc lors de la navigation au clavier, mais pas lors des clics de souris. Vérifiez-le sur chaque composant interactif, y compris les widgets personnalisés, les liens à l'intérieur des cartes et les éléments comportant tabindex.

Surface: tous les éléments interactifs du site WCAG 2.2 AA2.4.7 Focalisation visible · 2.1.1 Clavier · 1.4.11 Contraste des éléments non textuels
E·04

Logo et images décoratives sans texte alternatif

Extrait des plaintes
Texte alternatif manquant pour l'image du logo
Texte alternatif manquant pour l'image du logo
Image du logo manquante - Description textuelle
Une image dont l'attribut alt est vide ne doit pas comporter d'attributs title, aria-label ou aria-labelledby
Fréquence
6 337entrées sur « Images + texte alternatif »
394 occurrencesmentionnant spécifiquement le logo du site
Pourquoi est-elle poursuivie en justice ?

Le logo est l'image la plus consultée d'un site web et l'une de celles qui présentent le plus souvent des problèmes d'affichage. Il est généralement intégré à un lien qui redirige vers la page d'accueil, mais l'image est fournie sans alt, non aria-label sur le lien, sans texte d'accompagnement. Le lecteur d'écran n'annonce que « lien », sans aucune indication sur sa destination. Multipliez cela par chaque page du site.

La catégorie plus large — les images sans texte alternatif — englobe les bannières, les photos de produits, les illustrations de mise en avant, les icônes de réseaux sociaux et le vaste catalogue d'images marketing que propose généralement un site de commerce en ligne. Les plaintes relevant de cette catégorie mentionnent souvent des noms de fichiers d'images spécifiques, ce qui indique que l'expert du plaignant a effectué une vérification automatisée qui a répertorié toutes les images dont alt L'attribut était manquant ou vide alors qu'il aurait dû être descriptif.

La solution

Les logos doivent comporter un texte alternatif décrivant le nom de l'entreprise et, si le logo renvoie vers une page, la destination — alt="Acme Co. — homepage". Les images décoratives se voient attribuer un attribut alt vide (alt=""), qui les masque délibérément aux technologies d'assistance. Les images informatives doivent être accompagnées d'un texte alternatif descriptif. Évitez de générer automatiquement du texte alternatif à partir des noms de fichiers ou d'utiliser des légendes générées par l'IA sans vérification humaine ; les registres de plaintes font régulièrement état de cas où des outils de superposition ont légendé le logo d'une entreprise en le décrivant comme « un panneau bleu et jaune ».

LogoSurfaceHeader· bannières · images de produits · pages marketing WCAG 2.2 AA1.1.1 Contenu non textuel · 2.4.4 Objectif des liens
E·09

Liens vides et « Cliquez ici » / « En savoir plus »

Extrait des plaintes
Le site Web contient des liens vides, sans texte
Par exemple, des liens tels que « En savoir plus » ne fournissent pas suffisamment de contexte
Par exemple, un lien intitulé « Cliquez ici » ne fournissait pas suffisamment de contexte
Descriptions de liens trop vagues • Problème : les liens du type « cliquez ici » ne fournissent aucune indication sur leur objectif
Fréquence
2 723entrées concernant les liens et les boutons
85 entréescorrespondant aux modèles « empty-link » ou « generic-link-text »
Pourquoi est-elle poursuivie en justice ?

Les lecteurs d'écran proposent un affichage sous forme de « liste de liens », très utilisé par les utilisateurs expérimentés pour parcourir une page en quelques secondes. Cet affichage ne montre que le texte des liens, dissocié du paragraphe qui l'entoure. Une page où chaque accroche de blog se termine par « En savoir plus » s'affiche dans cette vue sous la forme de quinze entrées identiques. Une page comportant cinq liens vides — <a href="..."></a>, ce qui arrive souvent lorsque les icônes se trouvent dans des balises de lien sans texte de secours — affiche cinq espaces vides.

La solution est bien connue, tout comme le problème, ce qui explique pourquoi ce schéma revient sans cesse dans les plaintes — sa persistance témoigne d'un processus de développement dépourvu de linter automatisé pour le texte des liens et de vérification manuelle avec un lecteur d'écran.

La solution

Chaque lien doit comporter un nom accessible décrivant sa destination ou l'action qu'il permet d'effectuer. Remplacez les expressions génériques par des expressions descriptives — « En savoir plus » devient « En savoir plus sur les résultats du troisième trimestre ». Pour les liens comportant uniquement une icône, ajoutez du texte masqué ou un aria-label. Effectuez une vérification automatisée (axe, Lighthouse, etc.) pour détecter les champs vides <a> éléments au cours de la CI.

À l'échelle du site· extraits de blog · pied de page · blocs de contenu connexe WCAG 2.2 AAA2.4.4 Objectif du lien · 2.4.9 Objectif du lien (lien uniquement)
E·06

Vidéo sans sous-titres ni transcription

Extrait des plaintes
Le site web contient de nombreuses vidéos qui ne sont pas sous-titrées
Absence de sous-titrage codé sur les vidéos du site web
Il y a beaucoup d'autres vidéos qui ne sont pas sous-titrées sur le site web
Fréquence
3 355entrées sur le contenu vidéo et audio
86 entréesfaisant spécifiquement référence aux sous-titres, à la lecture automatique ou à l'audiodescription
Pourquoi est-elle poursuivie en justice ?

Les vidéos font l'objet de plaintes selon deux schémas. Le premier est évident : une vidéo marketing, une démonstration de produit ou une vidéo explicative est mise en ligne sans sous-titres, sans transcription ni aucune alternative textuelle — et un visiteur sourd ou malentendant ne peut pas accéder au contenu. Le second est plus subtil : une vidéo principale qui se lance automatiquement au chargement de la page, ce qui interfère avec la lecture par un lecteur d'écran et enfreint les contrôles de pause/arrêt attendus au niveau AA des WCAG 2.2 (conformément à la sous-section 2.2.2 Pause, arrêt, masquage pour le contenu animé et à la sous-section 1.4.2 pour tout contenu audio).

Certaines plaintes figurant dans cet ensemble de données affirment que « l'absence de sous-titrage codé sur les vidéos des sites web constitue une violation de l'ADA », ce qui est présenté comme une conclusion juridique. La validité de cette interprétation varie selon la juridiction et les circonstances ; ce qui est plus incontestable, c'est que ces vidéos ne respectent systématiquement pas les WCAG 2.2 AA, la norme que la plupart des tribunaux et des accords de règlement considèrent comme la référence en matière de conformité.

La solution

Fournissez des sous-titres synchronisés pour toutes les vidéos préenregistrées comportant un son. Fournissez également une transcription textuelle ; les transcriptions sont utiles pour les utilisateurs dont l'appareil est en mode silencieux, dans les environnements à faible bande passante, ainsi que pour l'indexation. Évitez la lecture automatique ; si celle-ci est nécessaire pour des raisons de conception, prévoyez une commande de pause/arrêt accessible immédiatement via le clavier. Pour les contenus exclusivement vidéo (sans son), fournissez une description audio ou un texte de remplacement.

VidéosSurfaceHero· Démonstrations de produits · Pages marketing · Vidéos YouTube intégrées WCAG 2.2 AA1.2.2 Sous-titres (préenregistrés) · 1.2.5 Description audio (préenregistrée) · 2.2.2 Pause, arrêt, masquer
E·15

Formulaires de connexion, d'inscription et de mot de passe

Extrait des plaintes
L'utilisateur ne peut pas utiliser le formulaire de connexion
L'utilisateur ne parvient pas à se connecter à son compte
L'utilisateur ne parvient pas à se connecter à son compte
L'utilisateur ne parvient pas à se connecter lors du paiement
Fréquence
1 158entrées relatives au compte utilisateur et à l'authentification
Pourquoi est-elle poursuivie en justice ?

La page de connexion est le point d'entrée de l'ensemble du processus d'authentification. Lorsque le formulaire ne fonctionne pas, toutes les pages qui s'y rattachent deviennent inaccessibles, et les utilisateurs perçoivent souvent cette cascade de problèmes comme un obstacle unique. Le schéma correspond à la même erreur de libellé du formulaire que dans le cas E·01, souvent associée à trois sous-erreurs spécifiques : un bouton « Afficher le mot de passe » implémenté sous la forme d’une simple icône, sans nom ni annonce de changement d’état ; un CAPTCHA qui rend l’utilisation d’un lecteur d’écran totalement impossible ; et des erreurs en ligne (« identifiants non valides ») qui s’affichent à l’écran mais ne sont pas annoncées.

La case à cocher « Se souvenir de moi » constitue une autre erreur secondaire récurrente : elle s'affiche sous la forme d'un élément stylisé <div>, avec le véritable <input> Cachée hors de l'écran, cette case à cocher est accessible à la souris, mais pas au clavier ni avec un lecteur d'écran. L'utilisateur n'a aucun moyen d'activer une session persistante.

La solution

Utilisez des données réelles <input>, <label>, et <button> éléments. Transformez le bouton d'affichage/masquage du mot de passe en un véritable bouton doté d'un nom accessible qui s'actualise en fonction de son état ("Show password" / "Hide password") et annoncer le changement avec aria-pressed. Proposer une alternative accessible aux CAPTCHA basés sur des images (CAPTCHA audio ou, de préférence, remplacer le CAPTCHA par une authentification basée sur le risque ou par les variantes accessibles de hCaptcha).

Pages de connexion àSurfaceLogin· Connexion à la caisse · Tableaux de bord des comptes WCAG 2.2 AA3.3.2 Étiquettes ou instructions · 4.1.2 Nom, rôle, valeur · 1.1.1 Contenu non textuel (CAPTCHA)
Partie III · Modèles d'infrastructure et au niveau du code
Des défaillances liées aux choix en matière de balisage, de structure et d'outils

Quatre exemples qui illustrent des échecs liés à l'architecture plutôt qu'à une interface utilisateur spécifique. Il s'agit de choix pris à un niveau supérieur à celui de la page — organisation des titres, compatibilité mobile, dépendances vis-à-vis de tiers — dont les conséquences se répercutent à tous les niveaux.

E·10

Structure de la page : absence de balise H1, repères non fonctionnels, aucune langue indiquée

Extrait des plaintes
Balise de titre manquante – H1
Structure des en-têtes incorrecte et absence de déclarations de langue dans le document
Main landmark not announced by screen reader • Issue: The <main> landmark is not defined within the page
La page ne comporte pas de lien de saut ni de repère permettant aux utilisateurs du clavier de passer directement à la section suivante
Fréquence
2 485entrées sur la structure des pages et la sémantique
Plus de 950 entréesmentionnant spécifiquement des problèmes liés aux titres, aux repères ou aux balises H1
Pourquoi est-elle poursuivie en justice ?

Les lecteurs d'écran permettent de parcourir la page selon trois modes de navigation : par titre, par repère et par lien. Une page qui est publiée sans <h1>, sans <main>, <nav>, et <footer> sites emblématiques, et sans lang="en" attribut sur le <html> a supprimé ces trois modes de navigation d'un seul coup. Les utilisateurs ne peuvent ni parcourir le contenu, ni accéder directement à celui-ci, ni permettre au lecteur d'écran de charger le moteur de prononciation approprié.

Il s'agit là d'une défaillance particulièrement grave : la simple absence d'un repère entraîne une cascade de problèmes en aval, car toutes les stratégies de navigation des lecteurs d'écran qui en dépendent échouent désormais. Les critiques relevant de cette catégorie énumèrent généralement quatre ou cinq problèmes structurels spécifiques, présentés comme la preuve que le site ne dispose d'aucune base sémantique.

La solution

Chaque page en a une et une seule <h1>, avec des sous-titres (<h2>, <h3>) imbriquées de manière logique. Encadrez les zones à l'aide d'éléments de repère HTML5 : <header>, <nav>, <main>, <aside>, <footer>. Définir lang à la racine <html> élément. Vérifiez-le à l'aide d'un vérificateur de structure ou exécutez document.querySelectorAll('h1').length === 1 comme test de fonctionnement dans CI.

Surface: toutes les pages WCAG 2.2 AA1.3.1 Informations et relations · 2.4.6 Titres et étiquettes · 3.1.1 Langue de la page
E·17

Barrières réservées aux appareils mobiles

Extrait des plaintes
Les erreurs ne sont pas signalées aux SRU mobiles
Le menu n'est pas lu à voix haute pour les utilisateurs de lecteurs d'écran sur mobile
Par exemple, le libellé du champ « Numéro de portable » n'est pas lu à voix haute
Les SRU mobiles ne peuvent pas sélectionner le bouton « Apple Pay » comme moyen de paiement
Fréquence
787entrées sur « Mobile + Adaptatif »
203 entréescomparant explicitement le comportement sur mobile et sur ordinateur de bureau
Pourquoi est-elle poursuivie en justice ?

La plupart des contrôles d'accessibilité sont effectués sur des navigateurs de bureau avec NVDA ou JAWS. Les technologies d'assistance mobiles — VoiceOver sur iOS, TalkBack sur Android — offrent un rendu différent du même DOM, souvent accompagné de bugs distincts. Les plaintes utilisent régulièrement l'abréviation « mobile SRU » (utilisateur de lecteur d'écran mobile) pour signaler des dysfonctionnements propres à l'affichage mobile : un menu hamburger qui fonctionne avec NVDA sur ordinateur de bureau mais reste silencieux sous VoiceOver, un bouton Apple Pay accessible sur un ordinateur portable mais pas sur la version iPhone de la page, des messages d'erreur qui s'affichent sur ordinateur de bureau mais pas sur mobile.

Les données indiquent que les défendeurs, dont l'accessibilité sur ordinateur de bureau est par ailleurs irréprochable, font tout de même l'objet de poursuites pour des problèmes spécifiques aux appareils mobiles. La parité mobile constitue en soi un critère d'acceptation lors des audits.

La solution

Testez au minimum avec VoiceOver sur Safari (iOS) et TalkBack sur Chrome (Android), en suivant les mêmes scénarios que ceux couverts par les tests d'assurance qualité sur ordinateur. Portez une attention particulière aux interactions gestuelles, aux boutons de paiement natifs et à la lecture des champs de formulaire lorsqu'ils sont sélectionnés. Si une application native existe, soumettez-la au même audit : les réclamations concernent souvent à la fois le site web et l'application dans le cadre d'un même dossier.

Webmobile· applications natives iOS / Android WCAG 2.2 AAAll— appliqué au rendu mobile · 2.5.1 Gestes du pointeur · 2.5.2 Annulation du pointeur
E·14

La superposition d'accessibilité ou le widget lui-même

Extrait des plaintes
Les widgets d'accessibilité par superposition, tels que UserWay, ne peuvent pas et ne parviennent pas à éliminer les obstacles à l'accessibilité au niveau du code sous-jacent
Le plaignant affirme connaître le widget de superposition d'accessiBe et estime qu'il « ne fonctionne tout simplement pas pour une personne entièrement aveugle ».
Problèmes causés par le plugin « Accessibility Adjustments » d'AccessiBe : loin de résoudre les problèmes d'accessibilité, ce plugin en crée de nouveaux
Les widgets d'accessibilité automatisés ne garantissent pas un accès égal à tous et peuvent même créer des obstacles supplémentaires pour les utilisateurs en situation de handicap
Fréquence
1 210entrées relatives aux composants tiers
26 entréesmentionnant explicitement un fournisseur ou décrivant des bogues introduits par une surcouche
Pourquoi est-elle poursuivie en justice ?

La superposition d’accessibilité est le seul cas présenté dans ce catalogue où le problème ne réside absolument pas dans le site sous-jacent, mais bien dans la couche de correction censée avoir été ajoutée pour y remédier. Les plaintes relevant de cette catégorie font état de deux préjudices distincts. Le premier est que les superpositions ne résolvent pas réellement les obstacles sous-jacents ; l’utilisateur se retrouve donc confronté aux mêmes fenêtres modales défectueuses, formulaires mal étiquetés et erreurs non signalées, que le widget soit présent ou non. Le second est plus précis : les superpositions introduisent parfois de nouvelles défaillances en injectant des étiquettes incorrectes, en appliquant de manière erronée les rôles ARIA ou en interférant avec la configuration des technologies d'assistance de l'utilisateur.

Un détail mérite d'être souligné : les plaintes déposées en 2024 et 2025 citent de plus en plus souvent le nom du fournisseur de la superposition. Deux passages spécifiques de ces plaintes mentionnent UserWay et AccessiBe en termes très clairs, et les récentes mesures prises par la FTC font désormais courir un risque réel que l'ajout d'une superposition soit considéré comme une preuve d'un manquement à l'obligation de mettre en œuvre de véritables mesures correctives — plutôt que comme un moyen de défense face à une action en justice.

La solution

Considérez les superpositions comme un indicateur, et non comme une solution. Si une superposition est actuellement déployée, élaborez une feuille de route pour une correction en profondeur qui s'attaque au code sous-jacent plutôt que de le masquer. La méthode qui a fait ses preuves consiste à combiner plusieurs éléments : un scanner automatisé intégré à l'intégration continue (CI), un audit manuel conforme aux WCAG 2.2 AA, des tests manuels avec au moins un lecteur d'écran et une navigation au clavier uniquement, ainsi qu'un contrôle qualité continu de l'accessibilité tout au long du processus de conception et de développement.

Widget de superpositionà l'échelle du site WCAG 2.2 AA : les superpositionsne satisfont pas à la conformité AA · tous les critères de succès pertinents restent applicables

Ce que ces dix-neuf modèles ont en commun

Ce catalogue n'est pas un échantillon aléatoire. En parcourant les illustrations dans l'ordre, on constate qu'un petit nombre de schémas structurels reviennent régulièrement — des schémas qui expliquent pourquoi ces défaillances spécifiques prédominent, plutôt que sur quelle surface elles apparaissent.

  1. Composants JavaScript personnalisés remplaçant les éléments HTML natifs

    Les échecs les plus souvent cités impliquent tous un <div> faire le travail d'un <button>, un <label>, un <select>, ou un <dialog>. Lorsque l'élément natif est utilisé, ce problème est rare. Lorsqu'il est remplacé — généralement pour des raisons esthétiques —, ce problème se produit systématiquement.

  2. Absence de liens programmatiques entre le contenu visible et sa signification

    Le caractère de remplacement est considéré comme une étiquette. L'astérisque est considéré comme aria-required. La bordure rouge est considérée comme un message d'erreur. Les utilisateurs voyants perçoivent ces relations visuellement ; les utilisateurs de technologies d'assistance ne peuvent voir que les relations présentes dans le DOM.

  3. Changements de statut qui ne sont pas annoncés

    Confirmations d'ajout au panier, nombre de résultats de recherche, erreurs de validation, ouverture de fenêtres modales, mise à jour du montant total du panier… Chaque changement d'état dynamique dans le catalogue fait l'objet d'au moins une plainte formulée en ces termes : « silencieux ». Les messages d'état et les zones interactives constituent la partie la plus sous-utilisée de la boîte à outils WAI-ARIA.

  4. Les appareils mobiles et les ordinateurs de bureau divergent

    Un composant créé une seule fois en HTML sémantique fonctionne aussi bien avec VoiceOver qu'avec NVDA. En revanche, un composant créé à l'aide de JavaScript personnalisé passe souvent les tests de qualité sur les lecteurs d'écran de bureau, mais échoue sur mobile, car le rendu sur les lecteurs d'écran mobiles fait apparaître des bugs différents dans le même code.

  5. Les réclamations sont rédigées à partir de modèles, mais les bugs en question ne sont pas inventés

    Les phrases types des plaintes apparaissent mot pour mot dans des centaines d'affaires — mais les conclusions spécifiques, au niveau des éléments constitutifs, contenues dans chaque plainte peuvent être vérifiées et sont exactes. Le fait qu'un cabinet d'avocats représentant un plaignant utilise un modèle standard ne signifie pas que les problèmes sous-jacents sont inventés ; cela signifie simplement que le même scénario est appliqué pour traiter les mêmes problèmes récurrents.

Par quoi commencer si vous ne disposez pas d'un programme d'accessibilité

Le catalogue ci-dessus est exhaustif, mais ne propose pas d'ordre de priorité pour le triage. Si une équipe part de zéro et souhaite savoir quels éléments examiner avant la prochaine version, l'ensemble de données suggère un ordre clair, déterminé à la fois par la fréquence et par la présence ou l'absence de ces schémas dans les dossiers de réclamations réels. La liste ci-dessous ne remplace pas un audit complet selon les WCAG 2.2 AA, mais elle couvre les non-conformités qui reviennent le plus souvent.

Niveau 1 — Fréquence la plus élevée, coût de réparation le plus bas

  • Parcourez votre page d'accueil à l'aide du clavier. Voyez-vous où se trouve le curseur à chaque étape ? (E·03)
  • Ouvrez le code source de la page et vérifiez chaque <input> sur chaque formulaire figure un véritable <label>. (E·01)
  • Ouvrez chaque fenêtre modale à l'aide d'un lecteur d'écran. Est-elle annoncée ? Le focus s'y déplace-t-il ? (E·05)
  • Lancez un outil d'analyse automatisé (comme DevTools ou Lighthouse) sur vos cinq principaux modèles. (E·04, E·09, E·10)

Niveau 2 — Risque financier maximal en cas de rupture

  • Effectuez un processus de paiement de bout en bout à l'aide d'un lecteur d'écran, en provoquant délibérément une erreur de validation. Les erreurs sont-elles annoncées ? Les champs obligatoires sont-ils signalés ? (E·11)
  • Ajoutez un produit au panier à l'aide d'un lecteur d'écran. Entendez-vous que le panier a été mis à jour ? (E·18)
  • Utilisez le champ de recherche et la fonction de saisie semi-automatique uniquement à l'aide du clavier. Pouvez-vous accéder à une suggestion et la sélectionner ? (E·13)
  • Vérifiez que chaque champ du formulaire de paiement porte un libellé réel, et non un libellé par défaut. (E·19)

Niveau 3 — Facile à négliger lors des tests sur ordinateur de bureau

  • Répétez les étapes de niveau 1 et de niveau 2 sur Safari (iOS) avec VoiceOver et sur Chrome (Android) avec TalkBack. (E·17)
  • Si vous avez mis en place une solution temporaire d'accessibilité, prévoyez sa suppression dans le cadre d'un plan d'action visant à apporter des corrections définitives. (E·14)
  • Vérifier que chaque vidéo comporte des sous-titres et une transcription. (E·06)
En résumé

La liste des éléments susceptibles de faire l'objet d'une plainte est courte, stable et visible dès la page d'accueil.

Les 19 schémas ci-dessus représentent la grande majorité des problèmes signalés dans les 113 120 plaintes classées relevant de 8 788 affaires fédérales. Ils n’ont rien de nouveau. Ils ne sont pas difficiles à repérer. Il s’agit des mêmes pages de paiement, des mêmes fenêtres contextuelles, des mêmes logos et des mêmes champs de formulaire que l’on pourrait repérer en parcourant le site pendant trente minutes à l’aide d’un clavier et d’un lecteur d’écran.

C'est justement cette asymétrie qui fait toute la différence. Les avocats des plaignants sont bien organisés, disposent de ressources importantes et analysent cette même liste à la recherche de schémas récurrents avec une efficacité industrielle : la moitié des affaires aboutissent à un règlement à l'amiable en moins de 100 jours. Les défendeurs, quant à eux, reproduisent sans cesse les mêmes schémas, souvent en y ajoutant un élément de surface ajouté à la va-vite pour faire office de défense.

Le travail visant à combler cette asymétrie n'est pas d'ordre juridique. Il s'agit d'une discipline d'ingénierie et de conception appliquée à une liste connue et exhaustive. Cet article constitue cette liste.

Méthodologie et données: Les 19 tableaux présentés sont issus de 113 120 descriptions de problèmes individuels, classées en 27 catégories fonctionnelles, extraites des documents de plainte relatifs à 8 788 affaires fédérales concernant l'accessibilité des sites web au titre du Titre III de l'ADA (dossiers PACER, 2007-avril 2026). Le nombre de problèmes cités par pièce à conviction reflète les entrées classées dans la feuille correspondante, et non le nombre de cas distincts — un seul cas génère généralement des dizaines d'entrées. Les citations textuelles sont reproduites telles qu'elles apparaissent dans les dossiers de plainte sous-jacents, avec uniquement de légères corrections des artefacts OCR.

Références aux WCAG :les critères de succès sont cités dans la version WCAG 2.2 AA, qui est celle que les tribunaux fédéraux américains et les accords de règlement conclus avec le ministère américain de la Justice (DOJ) considèrent le plus souvent comme la norme de conformité applicable. La version WCAG 2.2 introduit des critères de succès supplémentaires, mais elle ne constitue pas encore la norme de référence par défaut dans les litiges analysés ici.

Avertissements : Le présentguide est fourni à titre informatif et ne constitue pas un avis juridique. La question de savoir si un modèle d'interface utilisateur spécifique engage la responsabilité d'un défendeur dépend de la juridiction concernée, de la catégorie d'établissement public à laquelle appartient le défendeur, du préjudice spécifique subi par le plaignant et de la manière dont le litige a été présenté. Plusieurs extraits de plaintes cités énoncent des conclusions juridiques (par exemple, que l'absence de sous-titres « constitue une violation de l'ADA ») qui doivent être considérées comme des allégations des plaignants plutôt que comme des principes de droit établis.

(le système d'accès public aux dossiers judiciaires électroniques du pouvoir judiciaire fédéral)