Dostępne stany fokusu: projektowanie widocznego fokusu klawiatury
Jak zaprojektować widoczny fokus klawiatury zgodny z WCAG 2.2: czego wymagają wersje 2.4.7 i 2.4.13, jak działa :focus-visible i wskazówki dotyczące projektowania pierścieni ostrości.
Rdzeń na wynos
Każdy element interaktywny potrzebuje wyraźnie widocznego wskaźnika skupienia dla użytkowników klawiatury; WCAG 2.2 wymaga tego na poziomie AA (2.4.7). Aby uzyskać mocny wskaźnik, należy kierować się wytycznymi AAA WCAG (2.4.13): co najmniej obszar 2-pikselowego konturu CSS wokół elementu z kontrastem 3:1 pomiędzy stanami skupionymi i nieostrymi. Użyj :focus-visible, aby pokazać pierścienie użytkownikom klawiatury bez pokazywania ich przy każdym kliknięciu myszą.
Dlaczego stany skupienia mają znaczenie
Osoby korzystające z klawiatury, urządzenia przełączającego lub lupy poruszają się po stronie o jeden element na raz. Wskaźnik skupienia to jedyny sposób, w jaki wiedzą, gdzie się znajdują. Usunięcie konturu przeglądarki bez wymiany to jeden z najczęstszych błędów dostępności.
Czego wymaga WCAG 2.2
Kryterium sukcesu 2.4.7 Fokus widoczny (poziom AA) wymaga, aby każdy interfejs obsługiwany za pomocą klawiatury posiadał tryb, w którym widoczny jest wskaźnik fokusu. W WCAG 2.2 dodano 2.4.13 Wygląd ostrości (poziom AAA), który opisuje silny wskaźnik: co najmniej tak duży jak obszar obwodu komponentu o grubości 2 pikseli CSS, ze współczynnikiem kontrastu co najmniej 3:1 pomiędzy stanami skupienia i nieostrości.
:ostrość widoczna
MDN wyjaśnia, że :focus-visible ma zastosowanie, gdy element ma fokus, a przeglądarka za pomocą heurystyki decyduje, że fokus powinien być pokazany, zazwyczaj w przypadku użycia klawiatury. Dzięki temu możesz wyświetlać silne pierścienie ostrości użytkownikom klawiatury bez pokazywania ich za każdym razem, gdy ktoś kliknie przycisk myszą. Użyj go zamiast usuwać kontury.
Projektowanie pierścionka
Praktyczne wskazówki:
- Użyj konturu lub pierścienia z przesunięciem, aby nie wtapiał się w element.
- Sprawdź kontrast na każdym tle, na którym może pojawić się element; pomaga dwukolorowy pierścień.
- Zachowaj spójność między komponentami, zdefiniowanymi jako token w systemie projektowym.
- Nigdy nie polegaj wyłącznie na subtelnej zmianie koloru.
- Upewnij się, że zaznaczony element nie jest ukryty za lepkimi nagłówkami.
Fokus i ruch
Pierścień ostrości może pojawić się po bardzo krótkim przejściu, ale powinien być odczuwalny natychmiastowo. Unikaj animacji, które opóźniają dzwonek lub przesuwają element, a w przypadku niestandardowych komponentów rysowanych na płótnie upewnij się, że na stronie nadal znajduje się element, na którym można ustawić fokus, aby użytkownicy klawiatury mogli do niego dotrzeć.
Klucz Principles do zapamiętania
- Wymagane jest widoczne skupienie w WCAG AA (2.4.7)
- 2.4.13 (AAA): obszar o obwodzie 2 pikseli i zmiana kontrastu 3:1
- Użyj :focus-visible zamiast usuwać kontury
- Zdefiniuj pierścień ostrości jako żeton projektu
- Interfejs użytkownika renderowany na płótnie wymaga rzeczywistych elementów, na których można się skupiać
Często zadawane pytania
Źródła
- Understanding SC 2.4.7: Focus Visible — W3C WAI
- Understanding SC 2.4.13: Focus Appearance — W3C WAI
- :focus-visible — Dokumenty internetowe MDN