Komunikaty o stanie
Silktide prosi o sprawdzenie, czy komunikaty o stanie — toasty, snackbary, bannery powiadomień oraz informacje zwrotne o powodzeniu i błędach — są skonfigurowane tak, aby ogłaszały je, gdy się pojawią.
To jest : automatyzacja nie potrafi wiarygodnie określić, które elementy są obszarami komunikatów o stanie (nazwy klas, języki i zminimalizowany kod różnią się bez końca), dlatego Silktide wyświetla prośbę na każdej stronie, a osoba ją potwierdza.
<!-- Bez ogłoszenia: czytniki ekranu nie ogłoszą tego, gdy się pojawi -->
<div class="toast">Produkt dodano do koszyka</div>
<!-- Ogłaszane: role="status" sprawia, że jest to region aktywny -->
<div class="toast" role="status">Produkt dodano do koszyka</div>
Dlaczego to jest ważne
Komunikaty o stanie informują o wyniku czynności wykonanej właśnie przez użytkownika: „Formularz zapisano”, „Produkt dodano do koszyka”, „Znaleziono 3 wyniki”, „Coś poszło nie tak”. Użytkownicy widzący zauważają ich pojawienie się; czytnik ekranu odczytuje to, co aktualnie ma fokus, a komunikat pojawiający się w innym miejscu strony nie jest w żaden sposób sygnalizowany. Użytkownik wysyła formularz i słyszy ciszę — nie może stwierdzić, czy operacja się powiodła, nie powiodła czy nadal trwa ładowanie.
Oznaczenie komunikatu jako informuje , aby ogłosiły go w chwili, gdy się pojawi, bez przenoszenia fokusu użytkownika.
Co sprawdzić
- Znajdź na stronie każdy obszar komunikatów o stanie (toasty, snackbary, komunikaty flash, wbudowane bannery powodzenia/błędu, aktualizacje liczby wyników).
- Potwierdź, że każdy z nich — lub stały kontener, do którego zapisuje treść — ma
role="status",role="alert",role="log"lubaria-live="polite"/aria-live="assertive". - Preferuj kontener regionu aktywnego, który istnieje w momencie załadowania strony; w czasie działania wstawiaj tylko tekst komunikatu. Regiony aktywne utworzone w tej samej chwili co ich komunikat często nie są ogłaszane.
Jeśli strona nie zawiera komunikatów o stanie albo wszystkie są poprawnie ogłaszane, wynik.
Jak to naprawić
- Dodaj rolę regionu aktywnego do kontenera komunikatu:
role="status"dla rutynowych aktualizacji, takich jak potwierdzenia i liczba wyników.role="alert"dla ważnych, wymagających szybkiej reakcji komunikatów, takich jak błędy.
- Możesz też użyć bezpośrednio atrybutu :
aria-live="polite"(czeka na przerwę w mowie) lubaria-live="assertive"(natychmiast przerywa).
Jak Silktide to testuje
Silktide nie może automatycznie wiarygodnie wykrywać obszarów komunikatów o stanie — zgadywanie na podstawie nazw klas tworzy fałszywe poczucie pewności i pomija generowany lub nieanglojęzyczny kod — dlatego ta kontrola wyświetla na każdej stronie jedną prośbę o przegląd, opisującą, co należy zweryfikować.