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.
Que comprend le champ d'action de l'accessibilité ?
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 danstable
,grid
,rowgroup
outreegrid
. - Le rôle
rowgroup
doit se trouver danstable
,grid
,tree
outreegrid
. - Le rôle
listitem
doit se trouver danslist
.
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.