WCAG 2.1 A
Standard WCAG (Web Content Accessibility Guidelines) to zbiór zaleceń mających na celu uczynienie treści internetowych bardziej dostępnymi dla osób z niepełnosprawnościami. WCAG 2.1 Poziom A stanowi podstawowy, minimalny poziom dostępności, który powinien być spełniony przez każdą stronę internetową. Jest to fundament, na którym opierają się wyższe poziomy (AA i AAA).
Co to jest WCAG 2.1 Poziom A?
WCAG 2.1 Poziom A rozszerza kryteria WCAG 2.0 Poziom A, dodając nowe wymagania, które adresują współczesne wyzwania w zakresie dostępności. Dotyczy to przede wszystkim barier napotykanych podczas korzystania z urządzeń mobilnych, interakcji dotykowych, a także specyficznych potrzeb osób słabowidzących lub z niepełnosprawnościami poznawczymi. Ten poziom koncentruje się na zapewnieniu kluczowych elementów dostępności, które są absolutnie niezbędne do podstawowego korzystania z witryny.
Wśród wymagań poziomu A znajdziemy takie aspekty jak dostępność z klawiatury dla wszystkich elementów interaktywnych, zapewnienie tekstowych alternatyw dla treści nietekstowych (np. obrazy), unikanie treści mogących powodować napady (np. migające obrazy), a także nowe kryteria dotyczące orientacji urządzenia, gestów wskaźnika i uruchamiania funkcji ruchem. Zgodność z Poziomem A oznacza, że podstawowe funkcje i informacje są dostępne dla szerokiego grona użytkowników, niezależnie od używanej technologii wspomagającej.
Dlaczego WCAG 2.1 Poziom A jest Ważny?
Spełnienie wymagań WCAG 2.1 Poziom A jest fundamentalne z wielu powodów, wpływając pozytywnie na różnorodne grupy użytkowników i ogólną jakość cyfrowych produktów.
Wpływ na użytkowników
- Osoby z niepełnosprawnościami wzroku: Zapewnienie alternatyw tekstowych dla obrazów (
alt
teksty), transkrypcji dla materiałów audio oraz możliwość powiększania tekstu bez utraty treści to kluczowe elementy. Użytkownicy czytników ekranu mogą dzięki temu „widzieć” treści wizualne, a osoby słabowidzące mogą łatwiej czytać. - Osoby z niepełnosprawnościami ruchowymi: Pełna dostępność z klawiatury oraz unikanie skomplikowanych gestów wskaźnika są niezwykle ważne dla osób, które nie mogą korzystać z myszy lub precyzyjnych ruchów. Pozwala to na nawigację i interakcję za pomocą klawiatury, przełączników lub innych urządzeń wejściowych.
- Osoby z niepełnosprawnościami słuchu: Transkrypcje dla nagrań audio i napisy dla filmów umożliwiają dostęp do treści multimedialnych, które w przeciwnym razie byłyby dla nich niedostępne.
- Osoby z niepełnosprawnościami poznawczymi: Przewidywalność działania interfejsu (np. brak niespodziewanych zmian kontekstu przy fokusie), unikanie migoczących treści oraz jasna identyfikacja błędów pomagają zminimalizować dezorientację i frustrację.
- Użytkownicy urządzeń mobilnych: Kryteria dotyczące orientacji urządzenia i gestów wskaźnika znacząco poprawiają użyteczność stron na smartfonach i tabletach, niezależnie od tego, czy użytkownik trzyma urządzenie pionowo czy poziomo, oraz bez konieczności wykonywania złożonych gestów.
- Wszyscy użytkownicy: Dostępność podstawowa poprawia ogólną użyteczność dla każdego. Przykładowo, alternatywne teksty pomagają w sytuacjach, gdy obrazy się nie ładują, nawigacja klawiaturą jest przydatna dla zaawansowanych użytkowników, a jasna struktura strony ułatwia zrozumienie treści każdemu.
Kryteria Sukcesu i Wymagania WCAG 2.1 Poziom A
WCAG 2.1 Poziom A obejmuje wszystkie kryteria Poziomu A z WCAG 2.0, a także wprowadza nowe, specyficzne dla wersji 2.1. Poniżej przedstawiamy kluczowe kryteria, które należy spełnić.
Wybrane Kryteria Sukcesu WCAG 2.0 Poziom A (kontynuowane w 2.1)
- 1.1.1 Treści nietekstowe: Wszystkie treści nietekstowe (obrazy, grafiki, audio, wideo, przyciski) mają alternatywę tekstową, która służy temu samemu celowi, chyba że są dekoracyjne lub są kapsułą do innej treści.
- 1.2.1 Tylko dźwięk i tylko wideo (nagrane): Dla nagranych treści tylko audio i tylko wideo, dostarczana jest alternatywa dla mediów oparta na czasie (np. transkrypcja lub audio opis).
- 1.3.1 Informacje i relacje: Informacje, struktura i relacje przekazywane za pomocą prezentacji mogą być programowo rozpoznane lub są dostępne w tekście. Użycie semantycznego HTML jest kluczowe.
- 1.4.1 Użycie koloru: Kolor nie jest jedynym wizualnym środkiem przekazywania informacji, wskazywania działania, zachęcania do reakcji wizualnej lub rozróżniania elementu wizualnego.
- 2.1.1 Klawiatura: Cała funkcjonalność treści jest dostępna za pomocą interfejsu klawiatury bez konieczności użycia myszy, a kolejność tabulacji jest logiczna.
- 2.2.1 Możliwość regulacji czasu: Jeśli limit czasu jest wymagany do ukończenia działania, użytkownik ma możliwość jego wyłączenia, dostosowania lub wydłużenia (z wyjątkami, np. aukcje w czasie rzeczywistym).
- 2.3.1 Trzy błyski lub poniżej progu: Strony internetowe nie zawierają treści, które migają więcej niż trzy razy w ciągu jednej sekundy, lub błysk jest poniżej ogólnych progów błysków (aby zapobiec napadom padaczkowym).
- 2.4.1 Blokady pominięcia: Dostarczany jest mechanizm do pominięcia bloków treści, które powtarzają się na wielu stronach internetowych (np. link „przejdź do treści”).
- 3.1.1 Język strony: Domyślny ludzki język każdej strony internetowej może być programowo rozpoznany (za pomocą atrybutu
lang
w HTML). - 3.2.1 Przy ostrzeniu: Zmiana kontekstu nie jest inicjowana po otrzymaniu przez element fokusu.
- 3.3.1 Identyfikacja błędów: Jeśli błąd wejściowy jest automatycznie wykrywany, element, w którym wystąpił błąd, jest identyfikowany, a błąd jest opisany użytkownikowi w tekście.
- 4.1.1 Parsowanie: W treściach z językami znaczników elementy mają kompletne tagi początkowe/końcowe, elementy są zagnieżdżone zgodnie ze swoimi specyfikacjami, elementy nie zawierają zduplikowanych atrybutów, a wszystkie ID są unikalne.
Nowe Kryteria Sukcesu WCAG 2.1 Poziom A
- 1.3.4 Orientacja (Orientation): Treści nie ograniczają swojej orientacji wyświetlania do poziomej lub pionowej, chyba że konkretna orientacja jest niezbędna (np. bankomat). Oznacza to, że strona powinna działać poprawnie zarówno w trybie portretowym, jak i krajobrazowym.
- 2.5.1 Gesty wskaźnika (Pointer Gestures): Cała funkcjonalność, która wykorzystuje złożone gesty wskaźnika oparte na ścieżce (np. uszczypnięcie do powiększenia, dwupunktowe przeciągnięcie), może być również obsługiwana za pomocą pojedynczego wskaźnika bez gestu opartego na ścieżce (np. dotknięcie, długie naciśnięcie) lub za pomocą klawiatury.
- 2.5.4 Uruchamianie ruchem (Motion Actuation): Funkcjonalność aktywowana ruchem urządzenia (np. potrząśnięcie telefonem w celu cofnięcia) może być również aktywowana przez komponent interfejsu użytkownika, a użytkownik może wyłączyć uruchamianie ruchem, aby zapobiec przypadkowej aktywacji.
Praktyczne Wskazówki dla Zgodności
Aby spełnić wymagania WCAG 2.1 Poziom A, należy wdrożyć następujące praktyki:
- Dla treści tekstowych i grafik:
- Zawsze dostarczaj atrybut
alt
dla obrazów. Jeśli obraz jest dekoracyjny, użyjalt=""
. - Dla ikon graficznych reprezentujących akcje (np. „usuń”), upewnij się, że ich alternatywa tekstowa jasno opisuje akcję.
- Nie polegaj wyłącznie na kolorze do przekazywania informacji. Używaj tekstu, ikon lub innych wizualnych wskazówek.
- Zawsze dostarczaj atrybut
- Dla nawigacji i interakcji:
- Upewnij się, że wszystkie elementy interaktywne (przyciski, linki, pola formularzy) są dostępne za pomocą klawiatury (tabulacja, Enter, spacja).
- Zachowaj logiczną kolejność tabulacji, która odpowiada wizualnemu układowi strony.
- Upewnij się, że nie ma pułapek klawiaturowych – użytkownik musi być w stanie opuścić każdy element, do którego nawigował klawiaturą.
- Używaj semantycznych elementów HTML (
<button>
,<a>
,<input>
) zamiast generycznych<div>
czy<span>
dla interaktywnych komponentów. - Dodaj link „przejdź do treści” na początku strony, aby użytkownicy klawiatury i czytników ekranu mogli pominąć powtarzające się menu nawigacyjne.
- Dla treści multimedialnych:
- Dostarcz transkrypcje dla nagrań audio.
- Dostarcz napisy lub ścieżkę z opisem audio dla nagrań wideo.
- Dla interakcji mobilnych i nowoczesnych interfejsów:
- Zaprojektuj stronę tak, aby działała prawidłowo zarówno w orientacji pionowej, jak i poziomej urządzenia, chyba że konkretna orientacja jest absolutnie niezbędna.
- Dla funkcji aktywowanych złożonymi gestami dotykowymi, zapewnij alternatywny sposób interakcji za pomocą prostego dotyku lub klawiatury.
- Jeśli aplikacja lub strona internetowa wykorzystuje ruch urządzenia (np. potrząśnięcie), zapewnij alternatywny element interfejsu użytkownika do wykonania tej samej akcji oraz możliwość wyłączenia aktywacji ruchem.
Przykłady Implementacji
1.1.1 Treści nietekstowe
Poprawna implementacja
<img src="logo.png" alt="Logo firmy XYZ">
<img src="separator.png" alt=""> <!-- Obraz dekoracyjny -->
<input type="image" src="szukaj.png" alt="Przycisk wyszukiwania">
Atrybut alt
dostarcza tekstową alternatywę, która jest odczytywana przez czytniki ekranu lub wyświetlana, gdy obraz nie może być załadowany. Puste alt=""
oznacza, że obraz jest czysto dekoracyjny i powinien być zignorowany przez technologie wspomagające.
Niepoprawna implementacja
<img src="logo.png">
<input type="image" src="szukaj.png">
Brak atrybutu alt
dla istotnych obrazów lub przycisków graficznych powoduje, że ich treść lub funkcja jest niedostępna dla użytkowników czytników ekranu.
2.1.1 Klawiatura
Poprawna implementacja
<button onclick="doSomething()">Kliknij mnie</button>
<a href="#" onclick="doSomethingElse()">Więcej informacji</a>
Użycie natywnych elementów HTML (<button>
, <a>
) zapewnia domyślną dostępność z klawiatury (fokusowalność, obsługa Enter/Spacji).
Niepoprawna implementacja
<div onclick="doSomething()" style="cursor: pointer;">Kliknij mnie</div>
<span onclick="doSomethingElse()" style="cursor: pointer;">Więcej informacji</span>
Elementy <div>
i <span>
nie są domyślnie fokusowalne ani aktywowane klawiaturą. Wymagałoby to dodania atrybutów tabindex="0"
i obsługi zdarzeń klawiatury (Enter/Spacja) przez JavaScript, co jest dodatkowym wysiłkiem i często prowadzi do błędów.
1.3.4 Orientacja (WCAG 2.1 A)
Poprawna implementacja
<!-- Brak blokady orientacji w metatagach, CSS czy JS -->
<meta name="viewport" content="width=device-width, initial-scale=1">
/* Przykład responsywnych stylów, które dostosowują się do orientacji */
@media (orientation: portrait) {
.my-layout { flex-direction: column; }
}
@media (orientation: landscape) {
.my-layout { flex-direction: row; }
}
Strona jest zaprojektowana tak, aby dynamicznie dostosowywać swój układ do orientacji urządzenia, zapewniając pełną funkcjonalność i czytelność w obu trybach.
Niepoprawna implementacja
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, orientation=portrait">
/* Lub wymuszanie orientacji za pomocą CSS, co może prowadzić do ucięcia treści */
body {
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-o-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
width: 100vh; /* Zamiana szerokości z wysokością, aby wymusić obrót */
height: 100vw;
overflow: hidden;
}
Wymuszenie jednej orientacji może uniemożliwić korzystanie z aplikacji osobom, które mają na stałe zamontowane urządzenie w innej orientacji, lub mają preferencje związane z niepełnosprawnościami.
Najlepsze Praktyki i Typowe Pułapki
Najlepsze praktyki
- Testowanie klawiaturą: Regularnie testuj całą funkcjonalność strony, używając wyłącznie klawiatury (klawisze Tab, Shift+Tab, Enter, Spacja, strzałki).
- Używanie semantycznego HTML: Zawsze używaj właściwych tagów HTML dla ich przeznaczenia (np.
<h1>
–<h6>
dla nagłówków,<button>
dla przycisków,<ul>
/<ol>
dla list). - Walidacja HTML i CSS: Regularnie używaj walidatorów, aby upewnić się, że kod jest poprawny i wolny od błędów składniowych.
- Użycie narzędzi do audytu dostępności: Korzystaj z automatycznych narzędzi (np. Lighthouse, Axe, WAVE) do wczesnego wykrywania podstawowych problemów z dostępnością. Pamiętaj jednak, że automatyczne testy nie wykrywają wszystkich problemów.
- Zapewnienie spójnego interfejsu: Używaj przewidywalnych wzorców nawigacji i interakcji, aby zmniejszyć obciążenie poznawcze.
Typowe pułapki
- Brak atrybutów
alt
: Częste pomijanie alternatywnych tekstów dla obrazów, co sprawia, że treści wizualne są niedostępne. - Niewystarczająca dostępność klawiatury: Tworzenie niestandardowych elementów interfejsu (np. przycisków za pomocą
<div>
) bez zapewnienia pełnej obsługi klawiaturą. - Brak opisu dla treści multimedialnych: Pomijanie transkrypcji, napisów lub opisów audio dla filmów i nagrań dźwiękowych.
- Poleganie wyłącznie na kolorze: Przekazywanie ważnych informacji jedynie za pomocą koloru (np. „czerwony oznacza błąd”), co jest problematyczne dla osób z zaburzeniami widzenia barw.
- Blokowanie orientacji urządzenia: Wymuszanie tylko jednej orientacji (pionowej lub poziomej) dla strony, co może ograniczyć dostępność dla niektórych użytkowników mobilnych.
- Używanie migających treści: Umieszczanie elementów migających z częstotliwością mogącą wywołać napady padaczkowe.
Zapewnienie zgodności z WCAG 2.1 Poziom A to fundamentalny krok w tworzeniu dostępnych stron internetowych i aplikacji mobilnych. Skupiając się na tych podstawowych wymaganiach, można znacząco poprawić użyteczność dla szerokiego grona użytkowników, budując solidne podstawy dla dalszych ulepszeń dostępności.