Nawet najlepsza wiedza o dostępności nie zastapi praktycznego testowania. Tak jak archeolodzy systematycznie przeszukuja stanowiska wykopaliskowe, tak my musimy systematycznie testowac nasze strony pod katem dostępności, używając różnych narzędzi i metod.
Lighthouse to bezplatne narzędzie Google, które można uruchomić bezpośrednio z Chrome DevTools:
Lighthouse sprawdza m.in.:
axe to jedno z najpopularniejszych narzędzi do testowania dostępności:
1<!-- Wynik testu axe może wygladas tak: -->
2<!--
3 Violation: Images must have alternate text
4 Element: <img src="pharaoh.jpg">
5 Fix: Add an alt attribute to the image
6 Impact: Critical
7 WCAG: 1.1.1 (Level A)
8-->Poprawny HTML to fundament dostępności:
1<!-- Bledy wykrywane przez walidator: -->
2
3<!-- Błąd: Brak atrybutu alt -->
4<img src="photo.jpg">
5
6<!-- Błąd: Zduplikowane ID -->
7<input id="name">
8<label id="name">
9
10<!-- Błąd: Niepoprawne zagniezdzenie -->
11<p>Tekst <div>w divie</div> w paragrafie</p>Najprostszy test reczny - nawiguj po stronie używając TYLKO klawiatury:
1Checklist nawigacji klawiaturowej:
2[ ] Czy można dotrzec do każdego interaktywnego elementu Tabem?
3[ ] Czy kolejnosc focusu jest logiczna?
4[ ] Czy focus jest zawsze widoczny?
5[ ] Czy modalne okna dialogowe przechwytuja focus?
6[ ] Czy można zamknac modal klawiszem Escape?
7[ ] Czy skip link działa poprawnie?
8[ ] Czy formularze można wyslac Enterem?
9[ ] Czy rozwijane menu można nawigowac strzalkami?Popularne czytniki ekranowe:
1Checklist testu powiekszania:
2[ ] Powieksz stronę do 200% - czy całą tresc jest widoczna?
3[ ] Powieksz do 400% - czy strona nadal działa?
4[ ] Czy tekst się nie ucina i nie nakklada?
5[ ] Czy scrollowanie jest tylko w jednym kierunku?1Chrome DevTools > Elements > Accessibility:
2- Name: "Zamknij" (z aria-label)
3- Role: button
4- Keyboard-focusable: true
5- Description: "Zamknij okno dialogowe"Chrome DevTools > Rendering > Emulate vision deficiencies:
1Chrome DevTools > Elements > Computed:
2- Kliknij na kolor tekstu
3- Narzedzie pokaze wspolczynnik kontrastu
4- Zielona ikona = spelnia WCAG AA
5- Pomaranczowa ikona = spelnia WCAG A
6- Czerwona ikona = nie spelnia wyamagan1{
2 "plugins": ["jsx-a11y"],
3 "rules": {
4 "jsx-a11y/alt-text": "error",
5 "jsx-a11y/anchor-has-content": "error",
6 "jsx-a11y/label-has-associated-control": "error",
7 "jsx-a11y/no-noninteractive-element-interactions": "warn"
8 }
9}1<!-- Przykład wyniku testu axe-core: -->
2<!--
3 Rule: color-contrast
4 Description: Elements must have sufficient color contrast
5 Help: Fix any of the following:
6 Element has insufficient color contrast of 2.5:1
7 Expected minimum: 4.5:1
8 Target: .subtitle
9-->1<!-- Struktura HTML -->
2<!-- [ ] Poprawna hierarchia nagłówków (h1-h6) -->
3<!-- [ ] Semantyczne znaczniki (header, nav, main, footer) -->
4<!-- [ ] Jezyk strony (lang="pl") -->
5
6<!-- Obrazy -->
7<!-- [ ] Alt text dla obrazów informacyjnych -->
8<!-- [ ] Pusty alt="" dla dekoracyjnych -->
9
10<!-- Nawigacja -->
11<!-- [ ] Skip link -->
12<!-- [ ] Widoczny focus -->
13<!-- [ ] Logiczna kolejnosc Tab -->
14
15<!-- Formularze -->
16<!-- [ ] Label dla każdego pola -->
17<!-- [ ] Komunikaty o bledach -->
18<!-- [ ] aria-required dla wymaganych pol -->
19
20<!-- Kolor i kontrast -->
21<!-- [ ] Kontrast minimum 4.5:1 -->
22<!-- [ ] Informacja nie tylko przez kolor -->
23
24<!-- Multimedia -->
25<!-- [ ] Napisy do wideo -->
26<!-- [ ] Transkrypcje do audio -->
27
28<!-- ARIA -->
29<!-- [ ] aria-label dla przyciskow-ikon -->
30<!-- [ ] aria-live dla dynamicznych treści -->
31<!-- [ ] aria-expanded dla rozwijanek -->Testowanie dostępności to jak weryfikacja, czy każdy korytarz w piramidzie prowadzi dokad powinien - systematyczne sprawdzanie każdego elementu, aby upewnic się, że każdy odwiedzajacy dotrze do celu.