Interop 2024: Chrome bei 100% im Fokusbereich Barrierefreiheit

Jocelyn Tran
Jocelyn Tran

Zu Beginn des Jahres hat Chrome 88,2% der Tests im Schwerpunktbereich „Bedienungshilfen“ von Interop 2024 bestanden. Im Juni 2024 waren wir die erste Organisation, die 100% der Tests bestanden hat. In diesem Beitrag wird erläutert, wie wir dieses Ziel erreicht haben.

Wie bei jedem Schwerpunktbereich bei Interop 2024 wird der Bereich „Barrierefreiheit“ durch eine Reihe von Webplattformtests für ausgewählte Funktionen definiert. Die Tests bei Interop 2024 sollen dafür sorgen, dass alle Browser barrierefreie Namen und berechnete Rollen auf die gleiche Weise erstellen.

Barrierefreie Namen geben den Zweck oder die Absicht eines HTML-Elements an. So können Nutzer besser nachvollziehen, wozu das Element dient und wie sie damit interagieren können. Die accname-Spezifikation definiert, wie Browser diesen barrierefreien Namensstring für ein Element erstellen. Die ARIA-Spezifikation enthält eine Schritt-für-Schritt-Anleitung zum Berechnen dieses Namens.

Die berechnete Rolle eines Elements ist ein String, der die Rolle des Elements darstellt, wie sie von der Browser-Engine berechnet wird. Dieser Modus wird hauptsächlich in Entwicklertools und beispielsweise in der WebDriver-Funktion getComputedRole verwendet, um Interoperabilitätstests zu ermöglichen.

Was musste das Chrome-Team tun?

Es gab zwei größere Arbeitsbereiche, die wir abschließen mussten: die Zuordnung von Rollen zu generischen Rollen ändern und nicht mehr unterstützte Rollen entfernen. Außerdem mussten noch einige kleinere Fehler behoben und Funktionen implementiert werden. Neben den folgenden Änderungen, die das Chrome-Team vorgenommen hat, haben wir auch mit Microsoft zusammengearbeitet, um Fehler zu beheben, die das Unternehmen im Hinblick auf Barrierefreiheit in Chromium behoben hat.

Zuordnung bestimmter Rollen zu einer generischen Rolle ändern

Wenn Sie eine Zuordnung zu einer generischen Rolle ändern, werden die Barrierefreiheits-Semantiken aus einem Element entfernt. Generische Elemente bieten keinen Mehrwert für einen Navigationsbaum für Barrierefreiheit und werden daher nicht in den Baum aufgenommen. Das wirkt sich positiv auf die Leistung aus und macht den Baum kleiner und für Hilfstechnologien leichter zu parsen. Die folgenden Rollen werden in eine generische Rolle geändert.

  • Ein <header> mit dem Attribut „<main>“ oder ein Inhaltselement für Abschnitte (<article>, <aside>, <nav> oder <section>).
  • Ein <footer> mit dem Attribut „<main>“ oder ein Inhaltselement für Abschnitte (<article>, <aside>, <nav> oder <section>).
  • Ein <aside> in einem Inhaltselement für Abschnitte (<article>, <aside>, <nav> oder <section>) ohne zugänglichen Namen.
  • Ein <section> ohne barrierefreien Namen.
  • Waisenlistenelemente (<li>)

Bei den ersten vier Aufzählungspunkten werden diese Elemente in der Regel Markierungsrollen zugeordnet. Zu viele Markierungen auf einer Seite können die Navigation erschweren. Mit dieser Änderung werden redundante Markierungen reduziert, sodass die Navigation auf der Seite einfacher wird. Das letzte Element weist in der Regel auf einen Fehler des Seitenentwicklers hin. Ein Listenelement sollte immer in einer Liste enthalten sein. Daher wird einem verwaisten Element eine allgemeine Rolle zugewiesen.

Eine nicht mehr unterstützte Rolle entfernen

Die Rolle directory wurde eingestellt und der Rolle „Liste“ zugeordnet. In ARIA 1.2 wird die Rolle directory nicht mehr unterstützt. In der Spezifikation wird erläutert, dass sie der Rolle list entspricht und dass die Entwickler list verwenden sollten. Um die Semantik älterer Inhalte mit directory beizubehalten, wird directory in Chrome jetzt auf list umgestellt.

Weitere Fehlerkorrekturen

Die Rolle gridcell wird jetzt unterstützt. Mit dieser neuen Rolle wird die Unterscheidung zwischen gridcell und cell klarer. Im Gegensatz zu cell kann der Fokus auf gridcell gelegt, sie bearbeitet und ausgewählt werden.

Wir haben die Berechnung der Fallback-Rolle hinzugefügt. Bisher wurde nicht nach Fallback-Rollen gesucht. Wenn die erste Rolle also ungültig war, wurde eine andere Rolle verwendet. Das entspricht nicht der Anleitung.

Einige Rollen sind nur gültig, wenn sie im richtigen Kontext verwendet werden. Wir haben eine Prüfung für die ungültige Verwendung von Rollen hinzugefügt:

  • Die Rolle row muss sich in table, grid, rowgroup oder treegrid befinden.
  • Die Rolle rowgroup muss sich in table, grid, tree oder treegrid befinden.
  • Die Rolle listitem muss in list enthalten sein.

Wenn die Rolle ungültig ist, verwendet Chrome jetzt andere Informationen, z. B. das HTML-Element, um eine alternative Rolle zu berechnen.

Wir haben thead und tfooter als Teil des Baums für die Barrierefreiheit gekennzeichnet. Bisher wurden sie als ignoriert markiert, aber weiterhin in den Stammbaum aufgenommen. Tabellenüberschriften und ‑fußzeilen können jetzt von Hilfstechnologien geparst werden.


Diese Änderungen sind für die meisten Entwickler möglicherweise nicht sichtbar. Da alle Browser daran arbeiten, dass diese Funktionen gleich funktionieren, sorgen wir dafür, dass verschiedene Rollen überall gleich angezeigt werden.