Ustawienia dostępności

Rozmiar tekstu

100%

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.

Kryteria WCAG, którym służy zarządzanie fokusem
KryteriumPoziomCo oznacza w aplikacji
2.1.2 Brak pułapki klawiaturowejAFokus 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ść fokusuAFokus 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 fokusAAFokus klawiatury ma widoczny wskaźnik
2.4.11 Fokus niezasłonięty (minimum)AAPrzyklejone nagłówki, banery i okna czatu nie zasłaniają całkowicie kontrolki z fokusem
3.2.1 Po otrzymaniu fokusuASamo otrzymanie fokusu nie zmienia kontekstu, np. nie otwiera nowej strony
4.1.3 Komunikaty o stanieAAKomunikaty takie jak {qzapisano} 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

  1. Understanding Success Criterion 2.4.3: Focus Order - W3C
  2. Understanding Success Criterion 2.4.11: Focus Not Obscured (Minimum) - W3C
  3. ARIA Authoring Practices Guide: Dialog (Modal) Pattern - W3C
  4. Accessibility in React Native - React Native

Najczęstsze pytania

Daria Gusieva
Daria Gusieva
Head of Design
Porozmawiaj z inżynierem
  • 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.

Zobacz: Projektowanie UX

Checklista wymagań

Do każdego hasła wyślemy definicję i to, czego wymaga od Twojego oprogramowania. Bezpłatnie, bez rozmowy handlowej.

Checklista jest pusta. Dodaj hasło plusem przy jego nazwie.

    Order Group sp. z o.o. (Warszawa) użyje Twojego adresu e-mail, żeby wysłać checklistę (art. 6 ust. 1 lit. b RODO), i zachowa informację o prośbie (art. 6 ust. 1 lit. f RODO). Zgoda marketingowa jest dobrowolna i możesz ją wycofać w każdej chwili. Polityka prywatności