Na początku roku Chrome spełniało 88,2% testów w obszarze ułatwień dostępu w ramach Interop 2024. W czerwcu 2024 r. jako pierwsi osiągnęliśmy 100% skuteczności testów. Z tego wpisu dowiesz się, jakie działania zostały podjęte, aby osiągnąć ten cel.
Co obejmuje obszar ułatwień dostępu?
Podobnie jak w przypadku każdej skoncentrowanej dziedziny na konferencji Interop 2024, obszar dotyczący dostępności jest definiowany przez zestaw testów platformy internetowej dla wybranych funkcji. Testy w Interop 2024 mają na celu zapewnienie, że wszystkie przeglądarki tworzą w taki sam sposób nazwy dostępne dla osób z ograniczonymi możliwościami oraz obliczone role.
Dostępne nazwy wskazują cel lub przeznaczenie elementu HTML. Dzięki temu użytkownicy wiedzą, do czego służy dany element i jak mogą z nim wchodzić w interakcje. Specyfikacja accname określa sposób tworzenia przez przeglądarki ciągu nazwy elementu obsługującego ułatwienia dostępu. Specyfikacja ARIA zawiera instrukcje obliczania tej nazwy.
Obliczona rola elementu to ciąg znaków reprezentujący rolę elementu obliczoną przez mechanizm przeglądarki. Jest on używany głównie w narzędziach dla programistów, np. w funkcji WebDriver getComputedRole
, która umożliwia testowanie interoperacyjności.
Co musiała zrobić ekipa Chrome?
Musieliśmy wykonać 2 duże zadania: zmienić mapowanie ról na role ogólne i usunąć role, których nie używamy już. Następnie wprowadziliśmy kilka dodatkowych drobnych poprawek i funkcji. Oprócz prac wymienionych poniżej, które zostały ukończone przez zespół Chrome, współpracowaliśmy też z Microsoftem nad poprawkami, które zostały wdrożone do Chromium w ramach obszaru dostępności.
Zmienianie mapowania niektórych ról na rolę ogólną
Zmiana mapowania na rolę ogólną powoduje usunięcie semantyki ułatwień dostępu z elementu. Elementy ogólne nie mają wartości dla drzewa ułatwień dostępu, więc nie są uwzględniane w drzewie. Pomaga to w zwiększeniu wydajności i czyni drzewo mniejsze i łatwiejsze do zanalizowania przez technologię wspomagającą. Te role zostały zmienione na role ogólne.
<header>
ograniczone do<main>
lub element treści w sekcji (<article>
,<aside>
,<nav>
lub<section>
).<footer>
ograniczone do<main>
lub element treści dzielący sekcję (<article>
,<aside>
,<nav>
lub<section>
).- Element
<aside>
w elemencie treści dzielącym sekcje (<article>
,<aside>
,<nav>
lub<section>
) bez nazwy na potrzeby ułatwień dostępu. <section>
bez nazwy na potrzeby ułatwień dostępu.- Osierocone elementy listy (
<li>
).
W przypadku pierwszych 4 punktów te elementy są zwykle mapowane na role punktów orientacyjnych. Zbyt duża liczba punktów orientacyjnych na stronie może utrudniać nawigację, dlatego ta zmiana pomoże zmniejszyć liczbę zbędnych punktów orientacyjnych, co ułatwi nawigację po stronie. Ostatni element zwykle wskazuje na błąd programisty strony. Element listy powinien zawsze znajdować się na liście, dlatego elementowi bez rodzica przypisuje się ogólną rolę.
Usuwanie wycofanej roli
Rola directory
została wycofana i przypisana do roli listy. ARIA 1.2 wycofuje rolę directory
. Specyfikacja wyjaśnia, że jest to równoważne z rolą list
, a deweloperzy powinni używać list
. Aby zachować semantykę starszych treści, które używają directory
, w Chrome została ona teraz mapowana na list
.
Inne poprawki
Dodaliśmy obsługę roli gridcell
. Ta nowa rola pozwala lepiej odróżnić rolę gridcell
od roli cell
. W przeciwieństwie do cell
element gridcell
można ustawić w centrum uwagi, edytować i wybierać.
Dodaliśmy obliczanie roli awaryjnej. Wcześniej nie sprawdzaliśmy ról zapasowych, więc jeśli pierwsza rola była nieprawidłowa, używaliśmy innej roli, co nie jest zgodne z specyfikacją.
Niektóre role są ważne tylko w odpowiednim kontekście. Dodaliśmy więc sprawdzanie nieprawidłowego używania ról:
- Rola
row
powinna znajdować się wtable
,grid
,rowgroup
lubtreegrid
. - Rola
rowgroup
powinna znajdować się wtable
,grid
,tree
lubtreegrid
. - Rola
listitem
powinna znajdować się w ramach rolilist
.
Jeśli rola jest nieprawidłowa, Chrome używa teraz innych informacji, takich jak element HTML, do obliczenia alternatywnej roli.
Oznaczyliśmy elementy thead
i tfooter
jako uwzględnione w drzewie ułatwień dostępu.
Wcześniej były one oznaczone jako zignorowane, ale nadal były uwzględniane w drzewie. Teraz nagłówki i stopki tabeli mogą być analizowane przez technologie wspomagające.
Chociaż te zmiany mogą być niewidoczne dla większości deweloperów, wszystkie przeglądarki pracują nad tym, aby te funkcje działały w ten sam sposób. Dzięki temu różne role są wszędzie wyświetlane w taki sam sposób.