Testy i audyty

Automat znalazł 73 błędy WCAG. Od czego zacząć ich poprawianie?

Raport automatyczny pokazuje dziesiątki błędów WCAG. Jak odróżnić liczbę wystąpień od realnych problemów i ustalić kolejność poprawek?

Przemek z AAA · · 4 min czytania

Analiza wyników audytu dostępności cyfrowej na ekranie laptopa.

Skaner dostępności pokazuje 73 błędy. Pierwsza reakcja jest zwykle prosta: trzeba zejść do zera. Tyle że sama liczba niewiele mówi o tym, ile naprawdę jest pracy i które problemy są najważniejsze.

Jedna źle zbudowana nawigacja może wygenerować ten sam błąd na kilkudziesięciu podstronach. Z kolei pojedynczy problem w formularzu płatności może wystąpić tylko raz, ale całkowicie zablokować użytkownikowi możliwość wykonania zadania. Dlatego po automatycznym skanie nie zaczynam od pozycji numer 1 w raporcie.

Najpierw sprawdź, co właściwie policzył automat

Lighthouse, axe, WAVE i inne narzędzia automatyczne są bardzo przydatne, ale nie wykonują pełnego audytu WCAG. W3C wprost zaznacza, że narzędzia nie są w stanie automatycznie sprawdzić wszystkich aspektów dostępności i że do oceny potrzebny jest człowiek.

Raport „73 błędy” może więc oznaczać 73 wystąpienia kilku problemów, a nie 73 niezależne bariery. Zanim cokolwiek poprawimy, warto pogrupować wyniki według przyczyny.

1. Grupuj błędy według komponentów

Jeżeli ten sam błąd pojawia się przy każdym elemencie menu, nie traktuję go jako kilkunastu osobnych zadań. To jeden problem komponentu nawigacji. Podobnie z kartami produktów, formularzami, przyciskami, akordeonami czy stopką.

W praktyce po pierwszym przeglądzie raportu tworzę raczej listę w rodzaju:

  • nawigacja — brak poprawnych nazw dla przycisków rozwijających menu,
  • formularze — błędne powiązanie etykiet z polami,
  • karty artykułów — zbyt niski kontrast metadanych,
  • modal — nieprawidłowe zarządzanie focusem,
  • szablon wpisu — pominięty poziom nagłówka.

Nagle z 73 pozycji robi się pięć realnych problemów do przeanalizowania.

2. Najpierw bariery, które blokują wykonanie zadania

Nie każdy błąd ma taki sam wpływ. Jeśli użytkownik klawiatury nie może otworzyć menu, osoba korzystająca z czytnika nie wie, co oznacza przycisk, albo formularz nie przekazuje informacji o błędzie, to są problemy, którymi zajmuję się wcześniej niż drobnymi niedoskonałościami struktury.

Dobrym pytaniem jest: czy ten problem może zatrzymać użytkownika przed wykonaniem ważnej czynności?

Jeżeli odpowiedź brzmi „tak”, taki błąd powinien trafić wysoko na liście niezależnie od tego, czy automat wykrył go raz czy sto razy.

3. Naprawiaj źródło, nie każde wystąpienie osobno

W CMS-ach i aplikacjach duża część problemów pochodzi z komponentów współdzielonych. Jeśli błędna karta artykułu występuje na stronie głównej, w kategorii, wynikach wyszukiwania i archiwum, poprawka powinna trafić do komponentu albo szablonu, a nie do czterech widoków osobno.

To szczególnie ważne w WordPressie, Drupalu i innych systemach opartych na szablonach. Jeden problem w motywie może pojawić się na setkach adresów URL. Po poprawieniu źródła raport automatyczny potrafi nagle zmniejszyć się o kilkadziesiąt pozycji.

4. Nie poprawiaj automatu kosztem semantyki

Raport wskazuje problem, ale podpowiedź narzędzia nie zawsze jest gotowym rozwiązaniem. Typowy przykład to ARIA. Jeżeli skaner sygnalizuje brak nazwy dostępności, najgorszym odruchem jest dopisywanie aria-label do wszystkiego bez sprawdzenia, czym dany element naprawdę powinien być.

Czasem poprawnym rozwiązaniem jest użycie natywnego <button>, czasem prawidłowej etykiety formularza, a czasem usunięcie niepotrzebnego elementu interaktywnego. Dobra poprawka powinna rozwiązać przyczynę, nie tylko sprawić, że skaner przestanie świecić na czerwono.

5. Po automacie zrób testy, których automat nie potrafi zrobić

Po usunięciu błędów automatycznych nadal zostaje duża część pracy. Trzeba sprawdzić między innymi:

  • czy całą funkcjonalność da się obsłużyć klawiaturą,
  • czy focus jest widoczny i porusza się logicznie,
  • czy po otwarciu i zamknięciu modala trafia we właściwe miejsce,
  • czy komunikaty błędów są zrozumiałe i dostępne programowo,
  • czy teksty alternatywne rzeczywiście opisują istotę obrazu,
  • czy kolejność treści ma sens po powiększeniu i zmianie układu,
  • czy komponenty dynamiczne przekazują zmianę stanu technologiom asystującym.

To właśnie dlatego wynik 100/100 w Lighthouse nie jest certyfikatem zgodności z WCAG. Oznacza tylko, że testy automatyczne wykonane przez to narzędzie nie wykryły problemów objętych jego zestawem reguł.

Jak ustalam kolejność prac

Przy większej liczbie błędów przydaje się prosty podział na cztery pytania:

  • Wpływ: jak bardzo problem utrudnia korzystanie ze strony?
  • Zasięg: ilu użytkowników i ile miejsc w serwisie może dotyczyć?
  • Źródło: czy naprawa jednego komponentu usunie wiele wystąpień?
  • Ryzyko regresji: czy poprawka może wpłynąć na inne funkcje?

W ten sposób powstaje kolejność oparta na rzeczywistym wpływie, a nie na numeracji w raporcie.

Przykład: 73 błędy, ale sześć poprawek

Wyobraźmy sobie raport: 32 problemy z kontrastem, 18 brakujących nazw przycisków, 12 błędów etykiet formularzy, 8 problemów z nagłówkami i 3 inne ostrzeżenia.

Po sprawdzeniu okazuje się, że 32 przypadki kontrastu pochodzą z jednego koloru w zmiennej CSS. Osiemnaście przycisków to ten sam komponent menu. Dwanaście etykiet pochodzi z jednego szablonu formularza. Osiem problemów nagłówków generuje jeden template.

Raport nadal miał 73 pozycje, ale technicznie cztery główne poprawki mogły usunąć większość z nich.

Jeśli masz raport z automatu albo audytu i nie wiesz, które poprawki zrobić najpierw, możesz opisać problem na redakcja@dostepnoscwcag.pl. Audytorzy i programiści mogą pomóc pogrupować problemy, ustalić priorytety i oszacować zakres wdrożenia.

Źródła

O autorze: Przemek z AAA

Tworzę strony internetowe i zajmuję się ich dostępnością. Na Trzy razy A wyjaśniam WCAG i opisuję rozwiązania, które można wykorzystać we własnym projekcie.

Komentarze

Nie ma jeszcze komentarzy. Możesz być pierwszą osobą, która się wypowie.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola oznaczone jako „wymagane” trzeba wypełnić.

Adres zaczynający się od https://

Ustawienia cookies

Wybierz, na które cookies się zgadzasz. Niezbędne działają zawsze.

Niezbędne zawsze włączone

Bez nich serwis nie działa poprawnie: zapamiętują Twój wybór dotyczący cookies i obsługują logowanie do panelu WordPressa. Nie wymagają zgody, więc nie da się ich wyłączyć.

Lista cookies w tej grupie (6)
  • wcag_zgoda

    Zapamiętuje, czy zgadzasz się na cookies analityczne, żeby nie pytać przy każdej wizycie.

    Dostawca: Trzy razy A. Czas przechowywania: 180 dni.

  • wordpress_test_cookie

    Sprawdza, czy przeglądarka przyjmuje cookies. Powstaje na stronie logowania.

    Dostawca: Trzy razy A (WordPress). Czas przechowywania: do zamknięcia przeglądarki.

  • wordpress_[…], wordpress_sec_[…]

    Uwierzytelniają osobę zalogowaną do panelu administracyjnego. Dotyczą tylko osób, które się logują.

    Dostawca: Trzy razy A (WordPress). Czas przechowywania: do zamknięcia przeglądarki, a z opcją „Zapamiętaj mnie” 14 dni.

  • wordpress_logged_in_[…]

    Informuje serwis, że jesteś zalogowany i jako kto. Dotyczy tylko osób, które się logują.

    Dostawca: Trzy razy A (WordPress). Czas przechowywania: do zamknięcia przeglądarki, a z opcją „Zapamiętaj mnie” 14 dni.

  • wp-settings-[…], wp-settings-time-[…]

    Zapamiętują ustawienia widoku panelu administracyjnego. Dotyczą tylko osób, które się logują.

    Dostawca: Trzy razy A (WordPress). Czas przechowywania: 1 rok.

  • comment_author_[…], comment_author_email_[…], comment_author_url_[…]

    Zapamiętują imię, e-mail i adres strony z formularza komentarza. Powstają tylko wtedy, gdy zaznaczysz „Zapamiętaj moje dane w tej przeglądarce”.

    Dostawca: Trzy razy A (WordPress). Czas przechowywania: 1 rok.

Pomagają nam sprawdzić, które treści są czytane i skąd przychodzą odwiedzający. Włączamy je tylko za Twoją zgodą. Dostawcą usługi jest Google Ireland Limited; dane mogą trafiać do Google LLC w USA na podstawie decyzji Komisji Europejskiej w sprawie EU-US Data Privacy Framework.

Lista cookies w tej grupie (2)
  • _ga

    Rozróżnia odwiedzających, żeby policzyć wizyty.

    Dostawca: Google Ireland Limited. Czas przechowywania: 2 lata.

  • _ga_EX5JS27JRK

    Zapamiętuje stan bieżącej sesji w Google Analytics 4.

    Dostawca: Google Ireland Limited. Czas przechowywania: 2 lata.

Pamięć przeglądarki tylko Twoje ustawienia

Rozmiar tekstu i kolory, które sam wybierasz, zapisujemy w pamięci przeglądarki (localStorage). Te dane nie trafiają na serwer.

Lista zapisywanych ustawień (2)
  • nr-font

    Rozmiar tekstu wybrany przyciskami A−, A, A+.

  • nr-theme

    Motyw kolorów (jasny, ciemny, kontrast) wybrany na pasku u góry strony.

Więcej informacji: Polityka prywatności.