Po ustawieniu fokusu
Gdy jakikolwiek komponent interfejsu użytkownika otrzyma fokus, nie może to powodować zmiany kontekstu — żadnej automatycznej nawigacji do innej strony, żadnego nowego okna, żadnego znaczącego przesunięcia treści. Fokus służy orientacji, nie działaniu.
Czego wymaga
Otrzymanie fokusu nigdy nie może wyzwalać „zmiany kontekstu.” WCAG definiuje zmianę kontekstu jako: przejście do nowej strony, otwarcie nowego okna, przeniesienie fokusu do innego komponentu lub znaczące przestawienie treści strony. Fokus jest klawiaturowym odpowiednikiem najechania myszą na element — musi pozostać pasywny.
To użytkownik musi sterować zmianami kontekstu poprzez celowe działanie: naciśnięcie przycisku, wciśnięcie Enter na łączu, wysłanie formularza.
Jak spełnić kryterium
- Nigdy nie wywołuj
window.open,location.href = …aniform.submit()z procedury obsługi zdarzeniafocus. - Podpowiedzi i małe elementy ujawniane po ustawieniu fokusu są dopuszczalne — nie stanowią zmiany kontekstu. Duże zamiany treści już tak.
- W przypadku podpowiedzi autouzupełniania przeniesienie fokusu na opcję nie narusza tego kryterium, o ile lista sugestii jest oczekiwanym zachowaniem.
- Jeśli musisz ujawnić dodatkowy interfejs po ustawieniu fokusu na elemencie (np. tekst pomocy dla pola), umieść go w pobliżu i nie zakłócaj układu.
- Testuj za pomocą klawiatury: przemieszczaj fokus przez każdy interaktywny element. Wszystko, co „skacze” lub automatycznie wysyła formularz po ustawieniu fokusu, jest błędem.
Częste błędy
- Lista rozwijana, która automatycznie wysyła formularz, gdy opcja otrzymuje fokus za pomocą klawiszy strzałek.
- Fokus na łączu wyzwalający natychmiastową nawigację przez procedurę obsługi
onfocus. - Selektory daty, które zamykają się w chwili, gdy fokus przenosi się na następne pole, zanim użytkownik skończy interakcję.
- Formularze logowania, które automatycznie się wysyłają, gdy pole hasła otrzymuje fokus z menedżera haseł.
Dlaczego to ma znaczenie
Użytkownicy klawiatury nawigują po stronie, sekwencyjnie przesuwając fokus. Jeśli fokus wyzwala zmianę kontekstu, użytkownik nagle trafia tam, gdzie nie zamierzał — a dla użytkowników czytników ekranowych jest to dezorientujące, bo kolejka komunikatów nagle się przesuwa. Zasada jest prosta: fokus orientuje, aktywacja działa.