Interopérabilité 2024: Chrome à 100% pour le domaine axé sur l'accessibilité

Jocelyn Tran
Jocelyn Tran

Au début de l'année, Chrome a réussi 88,2% des tests dans le domaine de l'accessibilité d'Interop 2024. En juin 2024, nous avons été les premiers à atteindre 100% des tests. Ce post explique le travail qui a été effectué pour atteindre pour atteindre cet objectif.

Comme tous les domaines d'action de l'outil Interop 2024, le domaine d'accessibilité est défini par un ensemble de tests de plate-forme Web pour les fonctionnalités sélectionnées. L'objectif des tests d'interopérabilité 2024 pour s'assurer que tous les navigateurs créent des noms accessibles et des rôles calculés de la même façon.

Les noms accessibles indiquent l'objectif ou l'intention d'un élément HTML. Cela vous aide les utilisateurs comprennent à quoi sert l'élément et comment ils peuvent interagir avec lui. La La spécification accname définit la manière dont les navigateurs crée cette chaîne de nom accessible pour un élément. La spécification ARIA comprend un tutoriel sur la façon dont ce nom calculé.

Le rôle calculé d'un élément est une chaîne représentant le rôle de calculé par le moteur du navigateur. Elle est principalement utilisée dans les applications de développement et, par exemple, dans la fonction WebDriver getComputedRole, des tests d'interopérabilité.

Que doit faire l'équipe Chrome ?

Nous devions réaliser deux grands axes de travail : modifier la cartographie en rôles génériques et en supprimant les rôles obsolètes. Ensuite, il y a eu quelques des correctifs et des fonctionnalités plus petites à implémenter. En plus des éléments suivants, l'équipe Chrome, nous avons aussi collaboré avec Microsoft les correctifs qu'ils comprenaient dans Chromium pour la zone d'amélioration de l'accessibilité.

Modifier le mappage de certains rôles vers un rôle générique

Le fait de remplacer un mappage par un rôle générique supprime la sémantique d'accessibilité d'un . Les éléments génériques n'apportent aucune valeur à une arborescence d'accessibilité, ils ne sont pas inclus dans l'arborescence. Cela améliore les performances et rend l'arbre plus petit et plus facile à analyser pour la technologie d'assistance. Les rôles suivants sont remplacé par un rôle générique.

  • <header> limité à <main> ou à un élément de contenu de section (<article>, <aside>, <nav> ou <section>).
  • <footer> limité à <main> ou un élément de contenu de section (<article>, <aside>, <nav> ou <section>).
  • Un élément <aside> à l'intérieur d'un élément de contenu de section (<article>, <aside>, <nav>, ou <section>) sans nom accessible.
  • Une <section> sans nom accessible.
  • Éléments de liste orphelins (<li>).

Pour les quatre premiers points, ces éléments sont généralement associés rôles de repère. Le fait d'avoir deux nombreux points de repère sur une page peut rendre la navigation plus difficile. permet de réduire les points de repère redondants qui facilitent la navigation sur la page. La L'élément final indique généralement une erreur de la part du développeur de la page, un élément de liste doit toujours figurer dans une liste, c'est pourquoi tout élément orphelin se voit attribuer un rôle de ressource.

Supprimer un rôle obsolète

Nous avons abandonné le rôle directory et l'avons mappé au rôle de liste. ARIA 1.2 abandonne directory rôle de ressource. La spécification explique qu'il est équivalent au rôle list. les développeurs doivent utiliser list. Afin de conserver la sémantique des anciennes contenu qui utilise directory, il est désormais mappé vers list dans Chrome.

Autres solutions

Vous pouvez désormais utiliser gridcell rôle de ressource. Ce nouveau rôle fait la distinction entre gridcell et cell plus claire. Contrairement à cell, une gridcell est sélectionnable, modifiable et sélectionnable.

Nous avons ajouté le calcul des rôles de remplacement. Auparavant, nous ne vérifiions pas les créations de remplacement Si le premier rôle n'est pas valide, nous en avons utilisé un autre, qu'est-ce qui est détaillé dans la spécification.

Certains rôles ne sont valides que s'ils sont dans le contexte approprié. Nous avons ajouté une vérification en cas d'utilisation incorrecte des rôles, comme suit:

  • Le rôle row doit se trouver dans table, grid, rowgroup ou treegrid.
  • Le rôle rowgroup doit se trouver dans table, grid, tree ou treegrid.
  • Le rôle listitem doit se trouver dans list.

Si le rôle n'est pas valide, Chrome utilise d'autres informations, comme le code HTML pour calculer un autre rôle.

Nous avons marqué thead et tfooter comme inclus dans l'arborescence d'accessibilité. Auparavant, ils étaient marqués comme ignorés, mais ils étaient toujours inclus dans l'arborescence. Maintenant l'en-tête et les pieds de page du tableau peuvent être analysés par des technologies d'assistance.


Même si ces modifications ne sont pas visibles par la plupart des développeurs, tous les navigateurs pour veiller à ce que tout fonctionne de la même manière, nous nous assurons que les différents sont exposés de la même manière partout.