QualiBooth

guides

Test de lecteurs d'écran : NVDA, JAWS, VoiceOver

Un guide pratique du test de lecteurs d'écran avec NVDA, JAWS, VoiceOver et TalkBack — pourquoi tester plusieurs lecteurs et quoi tester.

16 min read QualiBooth
Formes d'ondes audio abstraites représentant quatre lecteurs d'écran qui annoncent différemment la même page web.

Une page peut réussir tous les contrôles automatisés, être livrée avec un code HTML valide et rester pourtant inutilisable pour une personne qui navigue sur le web à l’oreille. Les outils automatisés détectent environ un tiers des problèmes d’accessibilité ; le reste se loge dans l’écart entre ce que l’arbre d’accessibilité contient techniquement et ce qu’un lecteur d’écran annonce réellement à l’utilisateur. Combler cet écart, c’est confronter votre interface aux mêmes outils sur lesquels s’appuie votre public — et c’est précisément à cela que sert le test de lecteurs d’écran.

Ce guide explique en quoi les principaux lecteurs d’écran diffèrent, pourquoi en tester un seul ne suffit jamais, ce qu’il faut tester exactement, quelles combinaisons de lecteur et de navigateur utiliser, et les pièges qui surprennent même les équipes expérimentées. Il s’adresse aux développeurs, aux ingénieurs QA et aux spécialistes de l’accessibilité qui veulent tester délibérément plutôt que deviner. Si vous préférez confier le travail à des spécialistes qui utilisent ces outils au quotidien, notre service d’évaluation de lecteurs d’écran fait exactement cela.

Pourquoi un lecteur d’écran n’est pas un outil de « lecture à voix haute »

L’idée fausse la plus répandue est qu’un lecteur d’écran se contente d’énoncer le texte de la page. Il fait bien davantage, et comprendre cette différence est le fondement d’un bon test. Un lecteur d’écran construit un modèle parallèle, non visuel, de l’interface à partir de l’arbre d’accessibilité du navigateur. Il annonce le nom de chaque élément (« Envoyer, bouton »), son rôle (bouton, lien, titre, case à cocher) et son état (coché, déployé, désactivé, requis). Il permet à l’utilisateur de sauter entre les titres, les repères, les champs de formulaire et les liens sans toucher à la mise en page visuelle. Il énonce les changements dynamiques — messages d’erreur, résultats de recherche, mises à jour de statut — lorsque ces changements sont exposés correctement.

C’est fondamentalement différent de la synthèse vocale, qui convertit un bloc de texte en audio sans aucune notion de rôles, d’états ou de navigation. Nous détaillons cette distinction dans synthèse vocale ou lecteurs d’écran, et elle compte ici parce que tester l’un ne revient pas à tester l’autre. Un utilisateur de lecteur d’écran ne consomme pas votre page de haut en bas ; il y navigue de manière structurelle et attend de chaque élément interactif qu’il déclare ce qu’il est et ce qu’il fait.

En quoi NVDA, JAWS, VoiceOver et TalkBack diffèrent

Les quatre lecteurs dont la plupart des équipes doivent se soucier se comportent suffisamment différemment pour que « ça marche dans l’un » ne vous apprenne presque rien sur les autres.

NVDA (Windows)

NVDA est un lecteur gratuit et open source, et le lecteur d’écran le plus utilisé au monde. Il s’accorde le plus naturellement avec Firefox et Chrome. NVDA suit généralement de près la sémantique ARIA et HTML, ce qui en fait une excellente référence de base : si quelque chose est cassé dans votre balisage, NVDA le révèle souvent clairement. Il possède deux modes clés — le mode navigation (pour la lecture et la navigation structurelle) et le mode formulaire (pour saisir dans les formulaires et actionner les widgets) — et une source fréquente de bugs réside dans les widgets qui ne déclenchent pas le bon changement de mode.

JAWS (Windows)

JAWS est le lecteur commercial établi de longue date, encore dominant dans les entreprises, l’administration publique et de nombreux lieux de travail. Il s’accorde avec Chrome et Edge. JAWS est réputé « serviable » : il applique des heuristiques qui devinent le sens, annonce parfois des éléments sur lesquels NVDA reste silencieux, et masque à l’occasion des erreurs de balisage qui devraient être corrigées. Cette serviabilité a un revers — du code qui « marche dans JAWS » peut échouer dans NVDA ou VoiceOver parce que JAWS a camouflé le problème. Il dispose aussi de son propre curseur virtuel et d’un comportement en mode formulaire qui diffère subtilement de celui de NVDA.

VoiceOver (macOS et iOS)

VoiceOver est intégré à chaque Mac, iPhone et iPad, et s’accorde presque exclusivement avec Safari. Sur macOS, la navigation passe par le rotor et les combinaisons de touches VO ; sur iOS, elle est entièrement gestuelle — balayer pour se déplacer, double-toucher pour activer, tourner le rotor en pivotant deux doigts. VoiceOver est généralement le plus strict des quatre concernant ARIA : il reste souvent silencieux plutôt que de deviner lorsque des noms ou des rôles manquent, si bien qu’un contrôle annoncé par JAWS peut ne rien dire du tout dans VoiceOver. VoiceOver pour ordinateur et pour mobile diffèrent également l’un de l’autre, et comptent donc comme deux cibles de test distinctes.

TalkBack (Android)

TalkBack est le lecteur intégré à Android, associé à Chrome. Comme VoiceOver sur iOS, il est gestuel, mais ses gestes, son comportement de focus et sa gestion des régions dynamiques et des contrôles personnalisés diffèrent de ceux de VoiceOver. Les lecteurs mobiles révèlent en général des problèmes qui n’apparaissent jamais sur ordinateur : des cibles tactiles inatteignables par balayage, un focus qui saute de manière inattendue après une transition d’écran, et du contenu visuellement présent mais entièrement ignoré par l’ordre linéaire des gestes.

Pourquoi tester plusieurs lecteurs est essentiel

Parce que ces lecteurs divergent dans leur interprétation d’un même balisage, tester un seul lecteur produit un faux sentiment de sécurité. Quelques schémas concrets reviennent sans cesse :

  • Une liste déroulante personnalisée que JAWS annonce parfaitement peut devenir totalement silencieuse dans VoiceOver, car VoiceOver refuse de déduire un role ou un état aria-expanded manquant.
  • Une région dynamique que NVDA annonce poliment une seule fois peut être annoncée à répétition, ou pas du tout, dans un autre lecteur selon la façon dont aria-live et le moment d’insertion dans le DOM interagissent.
  • Un contrôle doté d’un nom redondant ou contradictoire (libellé visible plus aria-label plus title) peut être annoncé judicieusement par un lecteur et comme une suite confuse de doublons par un autre.
  • Un ordre de lecture qui correspond à l’ordre visuel dans une combinaison navigateur/lecteur peut diverger dans une autre lorsque le CSS réorganise le contenu sans que le DOM ne le fasse.

Chaque lecteur est par ailleurs lié à un navigateur différent : vous testez donc en réalité des combinaisons lecteur-plus-navigateur, et non des lecteurs seuls. La seule façon de savoir que votre produit est cohérent pour tout le monde est de tester les combinaisons réelles qu’utilise votre public. C’est le même principe qui sous-tend les audits d’accessibilité manuels en général : les outils réduisent le champ de recherche, les humains confirment l’expérience.

Quoi tester

Le test est bien plus efficace lorsqu’il est structuré. Voici les dimensions qui comptent, approximativement par ordre de priorité, chacune correspondant à des critères de succès précis des WCAG 2.2.

Annonces : nom, rôle, valeur

Pour chaque élément interactif, vérifiez que le lecteur annonce un nom exact (ce que c’est), le rôle correct (bouton, lien, case à cocher, onglet) et, le cas échéant, la valeur ou l’état. C’est le cœur du critère WCAG 4.1.2 (Nom, rôle et valeur). Écoutez en particulier : les contrôles silencieux, les contrôles annoncés seulement comme « cliquable » ou « groupe », les boutons-icônes sans nom accessible, et les noms qui se lisent comme des chemins de fichiers bruts ou des noms de classes.

Rôles et états

Les états doivent se mettre à jour au fur et à mesure que l’utilisateur interagit. Un volet qui se déploie doit passer de « réduit » à « déployé » ; une case à cocher doit passer de « non cochée » à « cochée » ; un bouton de tri doit annoncer sa direction actuelle. Le balisage statique qui ne met jamais à jour aria-expanded, aria-checked, aria-selected ou aria-pressed est l’un des défauts les plus courants, et il ne se révèle que lorsque vous actionnez le widget avec un lecteur en marche.

Ordre et gestion du focus

Parcourez toute l’interface avec la touche Tab. Le focus doit se déplacer dans un ordre logique et prévisible (WCAG 2.4.3), doit toujours être visible et ne doit jamais être piégé, sauf délibérément à l’intérieur d’une fenêtre modale. Les cas difficiles sont dynamiques : à l’ouverture d’une boîte de dialogue, le focus doit s’y déplacer ; à sa fermeture, le focus doit revenir sur l’élément qui l’a ouverte. Négliger cela est la raison la plus fréquente pour laquelle un parcours modal devient inutilisable.

Ordre de lecture et de navigation

Au-delà du focus, les utilisateurs de lecteurs d’écran naviguent par la structure. Vérifiez que les titres forment une arborescence logique (WCAG 1.3.1), que les repères (header, nav, main, footer) permettent aux utilisateurs de se déplacer, et que les listes et les tableaux sont balisés de sorte que le lecteur puisse les parcourir et les dénombrer. Vérifiez que la séquence de lecture correspond à l’intention visuelle et que rien d’important n’est annoncé dans le désordre.

Régions dynamiques et mises à jour dynamiques

Les changements asynchrones — erreurs de validation, « 3 résultats trouvés », « enregistrement… », notifications éphémères — doivent atteindre l’utilisateur sans le submerger. aria-live="polite" pour les mises à jour non urgentes, aria-live="assertive" uniquement pour celles réellement urgentes, et role="status" ou role="alert" pour les cas courants. Vérifiez que la région existe dans le DOM avant que le contenu ne change, que la mise à jour est annoncée exactement une fois, et qu’elle n’interrompt pas l’utilisateur au milieu d’une phrase. Cela soutient le critère WCAG 4.1.3 (Messages d’état).

Widgets ARIA personnalisés

Tout ce que vous avez construit vous-même — menus, onglets, listes déroulantes, sélecteurs de date, carrousels, grilles de données, arborescences — exige le plus d’attention. Testez par rapport aux ARIA Authoring Practices pour l’interaction clavier et les annonces attendues, puis confirmez que les vrais lecteurs se comportent réellement ainsi. L’APG décrit l’idéal ; les lecteurs l’implémentent imparfaitement, et c’est pourquoi un modèle fonctionnel doit tout de même être vérifié dans chaque lecteur.

Un exemple concret : un interrupteur inaccessible vs accessible

Prenons un interrupteur de réglages. Une version visuellement stylisée mais sémantiquement vide :

<div class="toggle" onclick="setNotifications()">
  <span class="dot"></span> Notifications
</div>

Pour un lecteur d’écran, ce n’est, au mieux, qu’un morceau de texte statique. Il n’y a pas de rôle, donc il n’est pas annoncé comme un contrôle ; pas d’état, donc l’utilisateur ne peut pas savoir si les notifications sont activées ou désactivées ; et il n’est pas dans l’ordre de tabulation, donc un utilisateur de clavier ou de lecteur d’écran ne peut pas du tout l’atteindre ni l’actionner. Lors du test, NVDA lit « Notifications » et passe à la suite ; VoiceOver peut l’ignorer entièrement.

L’équivalent accessible utilise l’élément natif et expose l’état :

<button type="button" aria-pressed="false" id="notif">
  Notifications
</button>
const btn = document.getElementById('notif');
btn.addEventListener('click', () => {
  const on = btn.getAttribute('aria-pressed') === 'true';
  btn.setAttribute('aria-pressed', String(!on));
});

Désormais, chaque lecteur annonce « Notifications, bouton à bascule, non enfoncé », l’élément est atteignable avec Tab, actionnable avec Entrée ou Espace, et l’état bascule de façon audible lors de l’activation. La leçon est généralisable : privilégiez la sémantique native, et lorsque vous devez recourir à ARIA, vérifiez que chaque lecteur respecte effectivement le rôle et l’état. Des schémas comme ce défaut d’état manquant figurent parmi les problèmes d’accessibilité courants à éviter.

Combinaisons de lecteur et de navigateur recommandées

Testez les combinaisons que les vrais utilisateurs emploient, et non des paires arbitraires. Une matrice pratique qui couvre la grande majorité des utilisateurs de lecteurs d’écran :

  • NVDA + Firefox (Windows) — la référence de base la plus propre pour repérer les problèmes de balisage
  • NVDA + Chrome (Windows) — la combinaison de lecteur gratuit la plus courante sur le terrain
  • JAWS + Chrome (Windows) — dominante dans les environnements d’entreprise et publics
  • VoiceOver + Safari (macOS) — la seule combinaison VoiceOver pour ordinateur entièrement prise en charge
  • VoiceOver + Safari (iOS) — mobile gestuel, une cible distincte de l’ordinateur
  • TalkBack + Chrome (Android) — la combinaison Android standard

Les combinaisons comptent parce que les lecteurs sont réglés pour des navigateurs spécifiques ; VoiceOver avec Chrome ou JAWS avec Firefox produit un comportement qui ne reflète pas la façon dont votre public expérimente réellement la page. Lorsque vos analyses révèlent un public particulier — par exemple un produit du secteur public à forte utilisation de JAWS, ou une application grand public orientée mobile — pondérez la matrice en conséquence. Notre service d’évaluation de lecteurs d’écran ajuste cette matrice aux analyses de chaque client plutôt que de tester une liste figée.

Pièges courants

Même les équipes minutieuses trébuchent sur les mêmes choses. Surveillez ceci :

  • Tester les yeux ouverts. Si vous voyez l’écran, vous compenserez inconsciemment ce que le lecteur ne vous dit pas. Éteignez le moniteur, ou détournez au moins le regard, et naviguez à l’oreille seule.
  • Ne tester qu’un seul lecteur. Abordé plus haut — c’est de loin la plus grande source de fausse confiance.
  • Sauter le mode formulaire/focus. Sur NVDA et JAWS, les widgets personnalisés nécessitent souvent que l’utilisateur soit dans le bon mode. Si vous ne testez qu’en mode navigation, vous manquerez des interactions qui se cassent en mode formulaire.
  • Abuser d’aria-label. Ajouter des libellés ARIA partout peut écraser le texte visible, désynchroniser le nom accessible de ce qui est affiché, et désorienter les utilisateurs de commande vocale. Privilégiez l’étiquetage natif ; ne recourez à ARIA que lorsque le HTML ne peut pas exprimer la relation.
  • Présumer que l’APG garantit le succès. Les ARIA Authoring Practices décrivent le comportement attendu, pas ce que fait chaque lecteur. Vérifiez toujours par rapport aux vrais lecteurs.
  • Faire confiance aux widgets overlay. Les widgets overlay et « d’accessibilité IA » qui prétendent corriger l’accès aux lecteurs d’écran à l’exécution n’offrent pas une expérience fiable et dégradent souvent la navigation pour les personnes qu’ils prétendent aider. Rien ne remplace un balisage accessible confirmé par des tests réels. Auditez le DOM et les annonces réels, pas le marketing de l’overlay.
  • Traiter le mobile comme une réflexion après coup. VoiceOver sur iOS et TalkBack sur Android révèlent leurs propres problèmes de gestes, de focus et de régions dynamiques que le test sur ordinateur ne dévoile jamais.

Pourquoi les tests par des personnes en situation de handicap apportent de la valeur

Faire tourner un lecteur soi-même détecte beaucoup de choses — mais il existe une différence significative entre réussir techniquement et être réellement utilisable, et c’est là que l’expérience vécue compte le plus. Un utilisateur quotidien de lecteur d’écran navigue par réflexe : il se déplace par titre, survole avec le rotor, reconnaît quand une annonce est verbeuse ou redondante, et ressent immédiatement quand un parcours le force à emprunter un chemin inefficace, même si chaque élément individuel est « conforme ».

Un développeur voyant qui teste pour la première fois tend à vérifier la présence — « le bouton est annoncé » — tandis qu’un utilisateur expert évalue l’expérience — « le bouton est annoncé, mais le libellé est ambigu, la confirmation n’est pas énoncée, et arriver ici a demandé douze balayages supplémentaires ». Ces constats d’utilisabilité figurent rarement dans une liste de conformité, et pourtant ce sont précisément eux qui déterminent si quelqu’un peut réellement accomplir une tâche. C’est pourquoi QualiBooth associe un logiciel d’analyse d’accessibilité automatisé et notre boîte à outils d’accessibilité à des audits par des personnes en situation de handicap : les outils trouvent l’évident, les experts trouvent ce qui casse réellement l’expérience. Pour les produits qui évoluent fréquemment, des audits d’accessibilité récurrents empêchent cette couverture de dériver entre les versions.

Où le test de lecteurs d’écran s’inscrit dans votre programme

Le test de lecteurs d’écran est une discipline au sein d’une pratique plus large. Il se marie naturellement avec le test au clavier seul et avec les outils web adaptatifs sur lesquels vos utilisateurs s’appuient, et il produit le type de preuves qui soutiennent les obligations légales au titre de l’EAA, de l’ADA et de la Section 508. Les constats alimentent aussi directement la documentation : notre équipe traduit les résultats lecteur par lecteur en rapports VPAT et en plans de remédiation priorisés que nous livrons via le conseil en accessibilité. Si vous bâtissez un programme à long terme plutôt qu’un contrôle ponctuel, c’est cette intégration qui empêche l’accessibilité de régresser.

Conclusion

Les lecteurs d’écran ne sont pas interchangeables, et un rapport automatisé impeccable n’est pas un produit utilisable. NVDA, JAWS, VoiceOver et TalkBack interprètent chacun votre balisage différemment, s’accordent avec différents navigateurs et révèlent différents défauts — tester les combinaisons réelles qu’utilise votre public est donc la seule façon d’être sûr. Structurez vos tests autour des annonces, des rôles et des états, du focus, de l’ordre de lecture, des régions dynamiques et des widgets personnalisés ; privilégiez la sémantique native aux rustines ARIA ; ignorez les overlays ; et chaque fois que possible, laissez les personnes qui utilisent ces outils au quotidien vous dire ce qui marche vraiment.

Lorsque vous voulez faire vérifier cette assurance par des spécialistes, l’évaluation de lecteurs d’écran de QualiBooth teste tous les principaux lecteurs et vous restitue des constats accompagnés des corrections exactes de balisage. Vous pouvez aussi commencer par une analyse gratuite ou demander une démo pour voir où en est votre interface aujourd’hui.

FAQ

Combien de lecteurs d’écran dois-je réellement tester ?

Au minimum, testez NVDA, JAWS et VoiceOver sur ordinateur, plus VoiceOver sur iOS et TalkBack sur Android si vous proposez une expérience mobile. En tester moins laisse des angles morts, car les lecteurs divergent dans leur gestion d’ARIA et du contenu dynamique.

Les outils automatisés peuvent-ils remplacer le test de lecteurs d’écran ?

Non. Les outils automatisés ne détectent de façon fiable qu’une partie des problèmes — texte alternatif manquant, certains problèmes de contraste, certaines erreurs structurelles — mais ils ne peuvent pas juger si une annonce est claire, si le focus se déplace judicieusement, ou si une tâche est réellement réalisable à l’oreille seule. Cela exige un vrai lecteur et, idéalement, un vrai utilisateur.

Les widgets overlay ou « d’accessibilité IA » suppriment-ils le besoin de tester ?

Non. Les overlays ne produisent pas une expérience fiable de lecteur d’écran et introduisent fréquemment de nouveaux problèmes. La correction durable est un balisage accessible confirmé par des tests réels avec des lecteurs, ce que fournit notre service d’évaluation de lecteurs d’écran.

Quels critères WCAG le test de lecteurs d’écran couvre-t-il ?

Il soutient directement 1.3.1 (Information et relations), 2.4.3 (Ordre de focus), 4.1.2 (Nom, rôle et valeur) et 4.1.3 (Messages d’état), entre autres. Chaque constat issu d’une évaluation structurée peut être rattaché au critère de succès WCAG 2.2 pertinent.

Vous ne savez pas comment votre produit se lit sur un vrai lecteur d'écran ?