Dostępność 3 min czytania
Zarządzanie fokusem
Zarządzanie fokusem (fokus klawiatury i czytnika ekranu) Inne nazwy: kolejność fokusu, pułapka fokusu, focus management
Definicja
Zarządzanie fokusem to sposób, w jaki aplikacja wybiera element, który dostaje fokus klawiatury lub czytnika ekranu, gdy ekran się zmienia: po nawigacji, przy oknie dialogowym albo błędzie. Dzięki niemu użytkownik zawsze wie, gdzie jest, i nie trafia na ukryte kontrolki.
Cytuj hasło
Tekst
"Zarządzanie fokusem". Order Group, Słownik oprogramowania, 10 października 2026. https://ordergroup.co/pl/slownik/zarzadzanie-fokusem/
HTML
<a href="https://ordergroup.co/pl/slownik/zarzadzanie-fokusem/">Zarządzanie fokusem</a> - Order Group
Jak działa zarządzanie fokusem
Fokus klawiatury wskazuje element, który przyjmuje działania użytkownika; osoba korzystająca z klawiatury widzi go jako wyróżnioną ramkę i przesuwa klawiszem Tab. Czytnik ekranu ma własny fokus, który użytkownik przesuwa gestami lub klawiszami i słyszy zamiast widzieć. Oba często stoją na tym samym elemencie, ale czytnik odczyta też tekst, do którego fokus klawiatury nigdy nie trafia. Gdy nic na ekranie się nie zmienia, kolejność fokusu wynika z kolejności elementów w kodzie. Zarządzanie fokusem dotyczy chwil, w których ekran się zmienia: ładuje się nowa strona, otwiera się okno dialogowe, treść zostaje dodana lub usunięta albo pojawia się błąd.
W każdej takiej chwili aplikacja musi celowo gdzieś ustawić fokus. Jeśli tego nie zrobi, zgaduje platforma. Na stronie internetowej fokus może zostać na przycisku, którego już nie ma, i wrócić na początek dokumentu. W aplikacji mobilnej czytnik ekranu może trafić na pierwszy znaleziony element, często przycisk na pasku narzędzi zamiast tytułu ekranu. Użytkownik musi wtedy przeszukać ekran, żeby dowiedzieć się, co się stało.
Najwięcej uwagi wymagają okna dialogowe. Wzorzec modalnego okna dialogowego z W3C ARIA Authoring Practices Guide opisuje trzy zachowania: gdy okno modalne się otwiera, fokus przechodzi do niego; dopóki jest otwarte, fokus zostaje w środku i nie dociera do strony pod spodem; gdy się zamyka, fokus wraca do elementu, który je otworzył, zwykle do naciśniętego przycisku. W przeglądarce aria-modal i natywny element dialog otwierany metodą showModal() pomagają utrzymać czytnik ekranu w oknie. Na iOS odpowiednikiem jest właściwość accessibilityViewIsModal, a na Androidzie treść za oknem można ukryć przed TalkBackiem za pomocą importantForAccessibility.
| Kryterium | Poziom | Co oznacza w aplikacji | |
|---|---|---|---|
| 2.1.2 Brak pułapki klawiaturowej | A | Fokus klawiatury zawsze może opuścić komponent; okno modalne spełnia to kryterium, bo użytkownik może je zamknąć, np. klawiszem Escape | |
| 2.4.3 Kolejność fokusu | A | Fokus przechodzi w kolejności, która zachowuje sens i obsługę, także przy wejściu do okien dialogowych i wyjściu z nich | |
| 2.4.7 Widoczny fokus | AA | Fokus klawiatury ma widoczny wskaźnik | |
| 2.4.11 Fokus niezasłonięty (minimum) | AA | Przyklejone nagłówki, banery i okna czatu nie zasłaniają całkowicie kontrolki z fokusem | |
| 3.2.1 Po otrzymaniu fokusu | A | Samo otrzymanie fokusu nie zmienia kontekstu, np. nie otwiera nowej strony | |
| 4.1.3 Komunikaty o stanie | AA | Komunikaty takie jak {q | zapisano} są odczytywane bez odciągania fokusu od zadania użytkownika |
Co zarządzanie fokusem oznacza dla Twojego oprogramowania
Problemy z fokusem rzadko widać na zrzutach ekranu i w przeglądach projektu, bo kryją się w przejściach. Wymagania dla zamawianej aplikacji:
- Dla każdego ekranu projekt określa, gdzie trafia fokus po wejściu: zwykle na nagłówek ekranu albo na przycisk wstecz, jeśli tego oczekuje konwencja platformy.
- Po czynności, która zmienia ekran, np. wysłaniu formularza, fokus przechodzi do wyniku: nagłówka potwierdzenia albo pierwszego pola z błędem.
- Każde okno dialogowe działa według tych samych zasad: fokus wchodzi, zostaje w środku i wraca do przycisku, który je otworzył. Buduje się to raz, we wspólnym komponencie, i testuje na każdej platformie.
- Treść, która pojawia się bez działania użytkownika, np. pasek postępu albo odliczanie, jest ogłaszana jako komunikat o stanie, a nie przejmuje fokusu.
- Strony z przyklejonym nagłówkiem albo banerem cookies lub czatu są sprawdzane klawiaturą, bo te elementy mogą zasłonić pole z fokusem.
- Testy obejmują klawiaturę i czytnik ekranu na każdej platformie. Poprawka, która działa na Androidzie, może zawieść na iOS, więc retesty obejmują obie.
Z naszych projektów
W aplikacji mobilnej Centrum Komunikacji, zbudowanej w React Native dla osób głuchych, słabosłyszących, niewidomych i głuchoniewidomych, w sierpniu 2026 r. ustaliliśmy, że właściwość accessibilityViewIsModal ustawiona na komponencie Modal z React Native nigdy nie docierała do widoku natywnego. Modal przekazuje dalej tylko wymienione w nim właściwości, a tej wśród nich nie było. Okno wyboru źródła pliku było wyświetlane jako przezroczysta nakładka (styl prezentacji overFullScreen), przy której ekran pod spodem zostaje w drzewie dostępności. Nasza analiza drzewa komponentów wykazała za oknem 25 kontrolek dostępnych dla VoiceOvera, w tym menu i powiadomienia, a w samym oknie 4. Tło okna i tak było w pełni nieprzezroczyste, więc przełączyliśmy je na styl fullScreen, w którym iOS sam usuwa ekran pod spodem z drzewa dostępności, i usunęliśmy martwą właściwość z trzech komponentów, które jej używały. Analiza obejmowała tylko drzewo Reacta, więc przed scaleniem zmian poprosiliśmy o test na fizycznym urządzeniu z VoiceOverem.
We wrześniu 2026 r. niewidomy ekspert ds. dostępności, testując aplikację produkcyjną, zgłosił, że fokus na ekranie usługi zaczynał się od przycisku zamówienia, a użytkownicy oczekują go na górze ekranu. Po poprawce fokus na ostatnim ekranie zamawiania trafiał na przycisk rozmiaru tekstu zamiast na nagłówek zamówienie przyjęte
, więc zmiana przeszła kolejną rundę poprawek i retestów.
W projekcie dla PSONI testy mobilne Generatora ETR we wrześniu i październiku 2026 r. wykazały, że po otwarciu dokumentu fokus przeskakiwał na przycisk zamknięcia zamiast na tekst, a podczas wgrywania pliku trafiał na nagłówek strony zamiast na informację o postępie. Te punkty są częścią mobilnej rundy z czytnikiem ekranu, która wciąż jest w testach.
Źródła
Najczęstsze pytania
-
Pułapka fokusu (focus trap) utrzymuje fokus klawiatury i czytnika ekranu w komponencie, zwykle w modalnym oknie dialogowym, do jego zamknięcia. W oknach modalnych jest poprawna, a wszędzie indziej błędna: pułapka na zwykłej stronie nie pozwala osobie z klawiaturą jej opuścić i narusza kryterium 2.1.2.
-
Na elemencie, który mówi użytkownikowi, gdzie jest: zwykle na nagłówku ekranu albo na przycisku Wstecz, jeśli tego oczekuje konwencja platformy. Ustal jedną zasadę dla całej aplikacji i przetestuj ją na każdej platformie.
-
Nie. Osoby korzystające z czytnika ekranu zależą od niego tak samo, a na urządzeniach mobilnych to właśnie one są główną grupą. Fokus w złym miejscu na telefonie oznacza, że użytkownik najpierw usłyszy niewłaściwą treść.
-
Każda platforma inaczej izoluje okna dialogowe, a frameworki wieloplatformowe nie zawsze przekazują właściwości dostępności do widoku natywnego. Testuj okna osobno z VoiceOverem i TalkBackiem i sprawdzaj zachowanie natywne, a nie tylko właściwości komponentu.
Budujesz system, w którym liczy się Zarządzanie fokusem?
Zobacz, jak budujemy oprogramowanie w tej dziedzinie: case studies i technologie, których używamy.