missing-form-labels
Moyen WCAG 1.3.1, 2.4.6Description
Les éléments de saisie de formulaire n’ont pas d’étiquette associée, rendant leur purpose peu clair pour les lecteurs d’écran et les technologies d’assistance.Importance
Les utilisateurs de lecteurs d’écran naviguent dans les formulaires en parcourant les champs étiquetés. Un champ sans étiquette est annoncé comme « champ de texte » ou « zone de saisie » sans indication de son purpose. Cela rend le formulaire pratiquement inutilisable sans la vue.Comment QAOS le détecte
L’agent analyse le DOM pour les éléments<input>, <textarea> et <select> qui n’ont pas de <label> associé (via le couplage for/id), d’attribut aria-label ou aria-labelledby.
Exemples
Comment corriger
Associez chaque champ de formulaire à une étiquette visible via<label for="...">, ou fournissez un nom accessible via aria-label ou aria-labelledby. Le texte d’espace réservé n’est pas un substitut à une étiquette.
button-no-text
Moyen WCAG 4.1.2Description
Les boutons n’ont pas de texte visible, rendant leur purpose ambigu pour tous les utilisateurs — surtout ceux qui ne peuvent pas voir les icônes ou qui utilisent des lecteurs d’écran.Comment QAOS le détecte
L’agent capture une capture d’écran et identifie les boutons qui ne contiennent pas de texte visible — y compris les boutons avec icône uniquement où l’icône n’a pas d’étiquette accessible.Exemples
Comment corriger
Pour les boutons avec icône uniquement, ajoutez unaria-label avec une action descriptive. Pour les boutons avec texte masqué, utilisez CSS sr-only ou aria-label au lieu de display:none :
missing-alt-text
Moyen WCAG 1.1.1Description
Les éléments<img> n’ont pas d’attribut alt du tout. Cela est distinct d’un alt="" vide — un attribut alt manquant amène les lecteurs d’écran à annoncer le nom de fichier de l’image à la place.
Comment QAOS le détecte
L’agent analyse le DOM pour les éléments<img> où l’attribut alt est complètement absent.
Exemples
Comment corriger
Ajoutez un attributalt à chaque élément <img>. Pour les images qui transmettent des informations, rédigez une description concise. Pour les images purement décoratives, utilisez alt="" (chaîne vide) pour indiquer aux lecteurs d’écran de les ignorer.
empty-alt-informative-image
Faible WCAG 1.1.1Description
Des images avec un attributalt="" vide qui transmettent réellement des informations significatives — telles que des graphiques, des infographies ou des photos de produits dont l’utilisateur a besoin pour comprendre le contenu.
Comment QAOS le détecte
L’agent identifie les éléments<img alt=""> et utilise une analyse basée sur LLM pour déterminer si l’image semble transmettre des informations (basée sur le nom de fichier, le contexte environnant et le contenu de l’image).
Exemples
Comment corriger
Fournissez un texte alt descriptif pour les images informatives. Réservezalt="" aux images véritablement décoratives :
insufficient-color-contrast
Moyen WCAG 1.4.3Description
Les éléments de texte ont un ratio de contraste couleur premier plan/arrière-plan inférieur au minimum WCAG de 4,5:1 pour le texte normal (3:1 pour le grand texte). Cela rend le texte difficile ou impossible à lire pour les utilisateurs avec une faible vision ou un daltonisme.Comment QAOS le détecte
L’agent calcule le ratio de contraste réel entre les couleurs du texte et de l’arrière-plan à partir des styles CSS calculés et signale tout texte en dessous du seuil.Exemples
Comment corriger
Utilisez un outil de vérification du contraste (WebAIM Contrast Checker) pour vérifier toutes les combinaisons texte/arrière-plan. Visez au moins 4,5:1 pour le corps du texte et 3:1 pour le grand texte (18pt+ ou 14pt+ gras).text-too-small
Moyen WCAG 1.4.4Description
Le texte a une taille de police inférieure à 14 pixels, le rendant difficile à lire — surtout pour les utilisateurs plus âgés, les utilisateurs avec une faible vision ou les utilisateurs sur des écrans haute densité.Comment QAOS le détecte
L’agent calcule la taille de police rendue de tous les nœuds de texte à partir du CSS calculé et signale tout ce qui est inférieur à 14px.Comment corriger
Définissez une taille de police minimale de 14px pour tout le corps du texte. Utilisez des unités relatives (em, rem) plutôt que des pixels afin que les utilisateurs puissent mettre le texte à l’échelle avec les paramètres du navigateur :
not-keyboard-reachable
Élevé WCAG 2.1.1Description
Les éléments interactifs — éléments qui répondent aux événements de clic — ne peuvent pas être atteints par tabulation au clavier. Cela affecte les éléments<div> ou <span> utilisés comme boutons, les menus déroulants personnalisés et tout composant interactif non natif qui manque d’attribut tabindex.
Importance
Les utilisateurs qui ne peuvent pas utiliser une souris (handicaps moteurs, utilisateurs avancés, navigateurs au clavier) dépendent entièrement de la touche Tab pour atteindre les éléments interactifs. Un élément inatteignable est complètement inaccessible pour eux.Comment QAOS le détecte
L’agent identifie les éléments avec des gestionnaires de clic ou des rôles interactifs qui ne sont pas nativement focalisables (pas un<button>, <a>, <input>, etc.) et vérifie s’ils ont tabindex ou un rôle ARIA approprié.
Exemples
Comment corriger
Utilisez des éléments HTML natifs (<button>, <a>, <input>) partout où c’est possible — ils sont focalisables par défaut. Pour les éléments interactifs personnalisés, ajoutez tabindex="0" et le role ARIA approprié.
not-keyboard-activatable
Élevé WCAG 2.1.1Description
Des éléments qui peuvent être focalisés via le clavier (soit nativement soit viatabindex) mais qui ne peuvent pas être activés avec une saisie au clavier. Typiquement des éléments personnalisés de type bouton qui ne répondent qu’aux clics de souris, pas à Entrée ou Espace.
Comment QAOS le détecte
L’agent se déplace par tabulation vers les éléments focalisables et appuie surEntrée et Espace, vérifiant si l’élément répond de la même façon qu’un clic de souris.
Exemples
Comment corriger
Ajoutez des gestionnaires d’événements clavier aux éléments interactifs personnalisés :<button> natif qui gère cela automatiquement.
missing-focus-indicator
Moyen WCAG 2.4.7Description
Les éléments interactifs ont leur anneau de focus par défaut supprimé via CSS (outline: none ou outline: 0) sans indicateur de focus alternatif fourni.
Importance
Les utilisateurs au clavier ont besoin de savoir quel élément est actuellement focalisé. Sans indicateur de focus visible, la navigation au clavier devient une navigation aveugle.Comment QAOS le détecte
L’agent se déplace par tabulation vers les éléments interactifs et capture une capture d’écran, utilisant une analyse basée sur LLM pour déterminer si un indicateur de focus visible est présent.Comment corriger
N’utilisez jamaisoutline: none sans fournir un style de focus alternatif :
color-only-distinction
Élevé WCAG 1.4.1Description
Des informations critiques sont transmises en utilisant la couleur comme seul différenciateur visuel — aucune étiquette texte, symbole, icône, motif ou différence de forme n’accompagne l’indice de couleur.Importance
Environ 8 % des hommes et 0,5 % des femmes ont une forme de déficience de la vision des couleurs. Quand la couleur est le seul indicateur de sens (ex. : une bordure rouge signifiant « obligatoire »), ces utilisateurs ne reçoivent aucune information. Cela affecte tous les utilisateurs daltoniens, ainsi que les utilisateurs sur des écrans monochromes.Comment QAOS le détecte
L’agent capture une capture d’écran et analyse les éléments où la couleur semble être le seul facteur distinctif — par exemple, les champs obligatoires marqués uniquement avec une bordure rouge et sans astérisque, texte ou icône.Exemples
Comment corriger
Combinez toujours la couleur avec au moins un autre indice visuel — texte, icône, motif ou forme :- Champs obligatoires : ajoutez un astérisque ou le texte « obligatoire »
- Indicateurs d’état : ajoutez des étiquettes textuelles (« Erreur », « Succès », « Avertissement »)
- Graphiques : utilisez des motifs ou des étiquettes directes en plus du codage couleur
image-as-text
Moyen WCAG 1.4.5Description
Du texte significatif est rendu comme une image rastérisée (PNG, JPG, GIF) plutôt que comme du texte HTML réel. Cela rend le texte non zoomable, non recherchable, impossible à restyliser et souvent absent de la sortie du lecteur d’écran.Importance
Les utilisateurs qui ont besoin de zoomer le texte, d’ajuster la taille de police, de changer le contraste ou de copier le texte ne peuvent pas le faire quand le « texte » est en réalité une image de pixels. Les moteurs de recherche ne peuvent pas non plus indexer le texte des images, réduisant la découvrabilité.Comment QAOS le détecte
L’agent capture une capture d’écran et utilise l’analyse visuelle pour identifier les images qui semblent contenir du texte significatif — tels que les titres, les messages promotionnels ou les étiquettes de navigation — sans alternative textuelle lisible équivalente.Comment corriger
Remplacez le texte basé sur des images par du texte HTML stylisé. Utilisez CSS pour les polices personnalisées, les couleurs et les effets visuels. Si un logo ou une marque doit être une image, fournissez un attributalt descriptif.
iframe-missing-title
Moyen WCAG 4.1.2Description
Un élément<iframe> n’a pas d’attribut title, rendant impossible pour les utilisateurs de lecteurs d’écran de comprendre le purpose du contenu intégré avant de décider d’y entrer.
Importance
Les lecteurs d’écran annoncent les iframes par leur titre avant de permettre à l’utilisateur d’y entrer. Sans titre, l’iframe est annoncé comme « frame » sans indication de ce qu’il contient — forçant les utilisateurs à entrer et explorer juste pour comprendre le contexte.Comment QAOS le détecte
L’agent analyse le DOM pour les éléments<iframe> sans attribut title.
Exemples
Comment corriger
Ajoutez un attributtitle concis et descriptif à chaque <iframe> :