Dostępność zgody na pliki cookie: Zgodność z WCAG 2.2 dla banerów zgody
Baner cookie, którego użytkownicy klawiatury nie mogą zamknąć, czytniki ekranu nie mogą ogłosić lub osoby z daltonizmem nie mogą odczytać, to nie tylko zła jakość UX — to błąd zgodności na dwóch frontach. Od czasu wejścia w życie Europejskiego Aktu o Dostępności w czerwcu 2025 r. interfejsy zgody na komercyjnych stronach internetowych obsługujących użytkowników z UE muszą spełniać wymagania WCAG 2.1 poziom AA, a dla 2026 roku zdecydowanie zaleca się WCAG 2.2. W połączeniu z wymogiem GDPR, że zgoda musi być "dobrowolna, konkretna, świadoma i jednoznaczna", niedostępne banery niosą teraz podwójne narażenie prawne. Ten przewodnik wyjaśnia dokładnie, jak wygląda baner cookie zgodny z WCAG w 2026 roku.
Dlaczego Dostępność i Zgoda Teraz się Pokrywają
GDPR wymaga, aby zgoda mogła być uzyskana od każdego użytkownika, nie tylko od tych, którzy mogą zobaczyć baner i go kliknąć. Europejska Rada Ochrony Danych wyjaśniła, że jeśli osoba, której dane dotyczą, nie może w sposób znaczący wchodzić w interakcje z interfejsem zgody — z powodu niepełnosprawności, której strona nie uwzględniła — zgoda nie została ważnie uzyskana. Oznacza to, że pliki cookie w ogóle nie powinny były zostać załadowane.
Po stronie dostępności Europejski Akt o Dostępności (EAA), transponowany do prawa krajowego we wszystkich państwach członkowskich UE, czyni z WCAG 2.1 AA minimum dla stron internetowych i aplikacji sektora prywatnego oferujących usługi konsumenckie. System kar różni się w zależności od kraju, ale zazwyczaj wynosi od 50 000 do 500 000 euro za naruszenie, plus nakazy wycofania z rynku w przypadku trwałej niezgodności.
Podstawowe Wymagania WCAG dla Banerów Cookie
Obsługa Klawiaturą
Każdy element sterujący banera — Akceptuj, Odrzuć, Zarządzaj preferencjami, zamknij — musi być dostępny i obsługiwalny wyłącznie za pomocą klawiatury. Użytkownicy powinni móc używać Tab do nawigacji między przyciskami w logicznej kolejności i aktywować je za pomocą Enter lub Space. Fokus musi być widoczny przy minimalnym współczynniku kontrastu 3:1 względem tła.
Pułapka Fokusa w Banerach Modalnych
Jeśli baner blokuje interakcję z resztą strony, fokus klawiatury musi być uwięziony wewnątrz banera, dopóki użytkownik nie dokona wyboru. Użytkownicy nie powinni móc wyjść Tab-em z banera, by przewijać stronę w tle. Gdy fokus był uwięziony i baner się zamknie, fokus powinien powrócić do elementu, który wywołał baner, lub do sensownego domyślnego ustawienia.
Ogłoszenia Czytnika Ekranu
Baner musi być ogłaszany jako dialog z dostępną nazwą i rolą. Użyj `role="dialog"` lub `role="alertdialog"` z `aria-labelledby` wskazującym na nagłówek banera i `aria-describedby` wskazującym na tekst objaśniający.
Kontrast Kolorów
Tekst podstawowy musi spełniać kontrast 4,5:1 względem tła; duży tekst (18pt+ lub 14pt pogrubiony) wymaga 3:1. Tekst przycisków, ikony i wskaźniki fokusu mają własne minima kontrastu. Jasnoszary przycisk „Odrzuć" na białym tle to częsty błąd WCAG, który widzimy w audytach.
Brak Wyłącznie Kolorowych Wskazówek
Nie polegaj wyłącznie na kolorze, by odróżnić Akceptuj od Odrzuć. Używaj odróżniających się etykiet, ikon lub kształtów, aby użytkownicy z daltonizmem mogli rozróżnić przyciski.
Ciemne Wzorce i Dostępność
WCAG 2.2 wprowadza nowe kryteria, które bezpośrednio celują w ciemne wzorce — szczególnie istotne dla zgody:
- 3.3.8 Dostępna Autentykacja — zakazuje zagadek poznawczych jako przeszkody w udzielaniu zgody.
- 3.3.7 Zbędne Wprowadzanie — użytkownicy nie powinni musieć ponownie wprowadzać informacji tylko po to, by wycofać zgodę.
- 2.4.11 Fokus Nie Jest Zasłonięty — sam baner nie powinien zasłaniać wskaźnika fokusu elementów za nim.
- 2.5.7 Ruchy Przeciągania — jeśli baner używa interakcji przeciągnij-aby-zaakceptować, musi istnieć alternatywa z pojedynczym wskaźnikiem.
RTL i Internacjonalizacja
Dostępność rozciąga się na języki od prawej do lewej (arabski, hebrajski, perski, urdu) i wymowę czytników ekranu:
- Ustaw `dir="rtl"` na banerze gdy język dokumentu jest RTL, aby kolejność przycisków i przepływ fokusu odpowiadały kierunkowi czytania.
- Używaj poprawnych atrybutów `lang` na przetłumaczonej treści banera, aby czytniki ekranu wymawiały słowa z właściwą fonetyką.
- Lustrzane odbicie ikonografii — szewrony, strzałki i wskaźniki postępu powinny być odwrócone dla lokalizacji RTL.
Testowanie Banera pod Kątem Zgodności z WCAG
Nie polegaj na jednym narzędziu. Połącz automatyczne skanowanie z realnym testowaniem technologii wspomagających:
- axe DevTools lub Lighthouse — automatycznie wykrywa około 30–40% błędów WCAG.
- NVDA lub JAWS na Windows, VoiceOver na Mac/iOS, TalkBack na Android — testuj z prawdziwymi czytnikami ekranu. Czy baner może zostać ogłoszony, nawigowany i odrzucony wyłącznie za pomocą czytnika ekranu?
- Nawigacja wyłącznie klawiaturą — odłącz myszkę. Jeśli nie możesz Zaakceptować, Odrzucić i zarządzać preferencjami, użytkownicy klawiatury też nie mogą.
- Symulacja daltonizmu — Chrome DevTools ma wbudowane symulatory wad wzroku. Sprawdź, czy Akceptuj i Odrzuć są rozróżnialne w przypadku protanopii, deuteranopii i tritanopii.
- Zoom do 400% — WCAG wymaga, aby treść pozostała użyteczna przy powiększeniu 400% bez poziomego przewijania. Banery ze stałą pozycją często nie przechodzą tego testu.
Typowe Błędy Dostępności, Które Widzimy
- Odrzuć ukryty za ikoną koła zębatego — ciemny wzorzec plus błąd dostępności (brak dostępnej nazwy na przycisku ikony).
- Fokus nigdy nie dociera do banera — banery, które przyciągają wzrok, ale są pomijane w kolejności Tab.
- Baner modalny bez pułapki fokusu — użytkownicy mogą przechodzić Tab-em do strony w tle, podczas gdy baner twierdzi, że blokuje interakcję.
- Brak `aria-live` przy zmianach preferencji — użytkownicy czytników ekranu nie słyszą potwierdzenia, że ich wybór został zapisany.
- Przetłumaczone banery bez atrybutu `lang` — czytniki ekranu wymawiają tekst hiszpański z angielską fonetyką.
Jak FlexyConsent Zapewnia Dostępność
FlexyConsent spełnia WCAG 2.2 AA od razu po wyjęciu z pudełka:
- Wszystkie elementy sterujące obsługiwane klawiaturą z widocznymi wskaźnikami fokusu 3:1.
- Prawidłowy `role="dialog"` z `aria-labelledby` i `aria-describedby`.
- Pułapka fokusu z Escape-aby-zamknąć dla opcjonalnych banerów.
- Kontrast 4,5:1+ na każdym elemencie tekstowym, w tym Odrzuć.
- Automatyczne odwrócenie RTL dla lokalizacji arabskiej, hebrajskiej, perskiej i urdu.
- Atrybut `lang` ustawiony dla każdego tłumaczenia zapewniający poprawną wymowę czytnika ekranu.
- Układ odporny na zoom, który pozostaje użyteczny przy 400%.