Klawiatura
Każda funkcja strony musi być obsługiwana wyłącznie z klawiatury — bez konieczności używania myszy, przeciągania elementów ani zachowania określonych czasów naciśnięć. Użytkownicy czytników ekranu, przełączników i sterowania głosowego zależą od tej podstawowej zasady.
Czego wymaga kryterium
Wszystkie funkcje treści muszą być obsługiwane za pomocą interfejsu klawiatury — bez konieczności zachowania określonych czasów naciśnięć poszczególnych klawiszy. Użytkownik musi mieć możliwość dotarcia do każdego elementu interaktywnego za pomocą klawisza Tab, aktywowania go klawiszem Enter lub Spacja oraz obsługi złożonych widżetów za pomocą klawiszy strzałek i innych standardowych kombinacji.
Istnieją dwa wąskie wyjątki: wprowadzanie danych zależne od ścieżki ruchu użytkownika (rysowanie odręczne, podpisywanie dokumentu), a nie tylko od punktów końcowych, oraz wprowadzanie danych odzwierciedlające analogowe działania ze świata rzeczywistego, w których ścieżka ma znaczenie.
Jak spełnić kryterium
- Należy używać natywnych elementów interaktywnych (
<button>,<a href>,<input>,<select>) — są obsługiwane z klawiatury domyślnie. - Dla niestandardowych widżetów zbudowanych z elementów
<div>lub<span>należy dodaćrole,tabindex="0"oraz obsługę klawiszy Enter, Spacja, Escape i klawiszy strzałek stosownie do danego wzorca. - Należy stosować się do ARIA Authoring Practices Guide w odniesieniu do menu, zakładek, comboboxów, okien dialogowych i widoków drzewa — każdy z tych wzorców ma zdefiniowany model interakcji klawiaturowej.
- Dla każdego gestu obsługiwanego wyłącznie myszą należy zapewnić odpowiednik klawiaturowy: przeciąganie i upuszczanie wymaga alternatywy w postaci przycisków do zmiany kolejności, menu wyświetlane tylko po najechaniu muszą otwierać się po kliknięciu, karuzele obsługiwane gestem przesunięcia muszą mieć przyciski poprzedni/następny.
- Należy testować, odłączając mysz i przechodząc przez cały przepływ użytkownika.
Typowe błędy
- Element
<div onclick>bezrole="button",tabindex="0"ani obsługi klawiatury — całkowicie niewidoczny dla użytkowników klawiatury. - Niestandardowe listy rozwijane, w których wyzwalacz jest dostępny z klawiatury, ale opcje nie są nawigowalne klawiszami strzałek.
- Tablice kanban obsługiwane przez przeciąganie, programy do przesyłania plików lub narzędzia canvas bez alternatywy klawiaturowej.
- Przyciski zamknięcia modalu bez obsługi klawisza Escape.
- Dymki z podpowiedziami i menu wyświetlane wyłącznie po najechaniu myszą, które nigdy nie pojawiają się przy fokusie klawiaturowym.
- Karuzele i galerie zdjęć obsługiwane wyłącznie gestem przesunięcia lub kliknięciem wskaźników bez przypisanego
tabindex.
axe i Lighthouse oznaczą brakujący tabindex i brakujące nazwy dostępne, ale nie sprawdzą, czy niestandardowa lista rozwijana rzeczywiście reaguje na klawisze strzałek — ta część wymaga testów manualnych.
Dlaczego to jest ważne
Jest to najważniejsze kryterium sukcesu w zakresie obsługi. Użytkownicy czytników ekranu poruszają się za pomocą klawiatury. Użytkownicy przełączników emulują klawiaturę. Użytkownicy sterowania głosowego wydają polecenia mapowane na zdarzenia klawiaturowe. Doświadczeni użytkownicy z RSI polegają na nawigacji klawiaturowej. Strona, która nie spełnia kryterium 2.1.1, skutecznie wyklucza wszystkich, którzy nie mogą używać myszy — a ta grupa jest znacznie większa, niż mogłoby się wydawać.