WCAG 4.1.3: Komunikaty o stanie
Kryterium sukcesu WCAG 2.1 4.1.3 „Komunikaty o stanie” (Status Messages) na poziomie A ma na celu zapewnienie, że wszelkie dynamiczne aktualizacje treści, które przekazują informacje o stanie systemu lub wynikach działań, są programowo rozpoznawalne dla technologii wspomagających, bez konieczności zmiany kontekstu lub przenoszenia fokusu użytkownika.
Komunikaty o stanie to treści, które pojawiają się lub zmieniają w odpowiedzi na działania użytkownika lub na stan aplikacji (np. wynik wyszukiwania, status wysyłki formularza, komunikat o błędzie lub sukcesie, postęp ładowania), ale nie są na tyle krytyczne, aby wymagały natychmiastowej interakcji lub przeniesienia fokusu. Muszą być one dostępne dla użytkowników technologii wspomagających, tak aby mogli je zrozumieć i zareagować na nie, jeśli to konieczne.
Dlaczego to jest ważne?
Zapewnienie dostępności komunikatów o stanie jest kluczowe dla szerokiego grona użytkowników:
Kryteria sukcesu i wymagania
Głównym wymaganiem kryterium 4.1.3 jest, aby komunikaty o stanie były programowo określone za pomocą roli lub właściwości, aby technologie wspomagające mogły je prezentować. Oznacza to, że komunikat musi być zaimplementowany w taki sposób, aby czytnik ekranu lub inne narzędzie mogło go wykryć i ogłosić użytkownikowi, bez konieczności interwencji ze strony użytkownika (np. przesuwania fokusu).
Najczęściej używanymi mechanizmami do spełnienia tego kryterium są atrybuty ARIA live regions (otwiera nową kartę):
Ważne jest, aby region ARIA live był obecny w DOM zanim jego zawartość zostanie dynamicznie zmieniona. Jeśli region jest początkowo pusty, ale ma ustawiony aria-live, czytnik ekranu będzie go monitorował pod kątem zmian.
Praktyczne wskazówki dotyczące zgodności
Przykłady implementacji
Poprawne implementacje
Przykład 1: Komunikat o sukcesie (polite)
Użycie aria-live="polite" dla potwierdzenia akcji, takiej jak dodanie produktu do koszyka.
Przykład 2: Komunikat o błędzie (assertive)
Użycie role="alert" (które automatycznie ustawia aria-live="assertive") dla walidacji formularza, gdy użytkownik pominie wymagane pole.
Przykład 3: Komunikat o ładowaniu (status)
Użycie role="status" (automatycznie ustawia aria-live="polite") dla informacji o statusie ładowania.
Niepoprawne implementacje
Przykład 1: Brak atrybutów ARIA
Aktualizowanie elementu HTML bez użycia aria-live lub odpowiedniej roli, co sprawia, że komunikat jest niewidoczny dla czytników ekranu.
Przykład 2: Użycie JavaScriptowego alert()
Chociaż alert() jest modalny i zazwyczaj ogłaszany, przerywa on przepływ pracy użytkownika, wymaga interakcji (kliknięcia OK) i przenosi fokus, co może być uciążliwe i dezorientujące, zwłaszcza dla użytkowników klawiatury.
Przykład 3: Region ARIA live początkowo ukryty za pomocą display: none na głównym elemencie
Jeśli element z aria-live jest początkowo ukryty za pomocą display: none, czytniki ekranu mogą nie zarejestrować go jako regionu live i nie ogłaszać jego zmian.
Najlepsze praktyki i typowe pułapki
Najlepsze praktyki:
Typowe pułapki:
Dzięki zastosowaniu kryterium 4.1.3 „Komunikaty o stanie”, twórcy stron internetowych mogą zapewnić, że kluczowe informacje zwrotne są dostępne dla wszystkich użytkowników, niezależnie od używanej technologii.
Powiązane wpisy
- WCAG 5.2.3: Pełne procesy
- WCAG 5.2.4: Tylko sposoby korzystania z technologii wspierające dostępność
- WCAG 5.2.5: Brak zakłóceń
- WCAG 5.3.1: Wymagane elementy oświadczenia o zgodności
- WCAG 5.3.2: Opcjonalne elementy oświadczenia o zgodności
Nadal szukasz odpowiedzi?
Zapytaj naszych specjalistów używając czatu online.