W skrócie11 min czytania

Najważniejsze wnioski

  • WCAG 1.4.11 wymaga kontrastu co najmniej 3:1 dla wizualnych informacji potrzebnych do rozpoznania komponentu interfejsu, jego funkcji lub stanu oraz dla istotnych obiektów graficznych.
  • Nie każdy przycisk, karta ani dekoracyjna ilustracja musi mieć obrys o kontraście 3:1. Należy ocenić, jaki element rzeczywiście pozwala rozpoznać kontrolkę albo zrozumieć informację.
  • Najczęstsze problemy dotyczą obramowań pól formularzy, ikon bez etykiet, checkboxów, stanów wybranych, komunikatów błędów, suwaków i wskaźników fokusu.
  • Automatyczne skanery mogą pomóc wykryć kolory i komponenty do analizy, ale nie zastępują oceny kontekstu ani testu ręcznego.
  • Widget dostępności może wspierać użytkownika przez funkcje kontrastu, powiększania i czytania treści, lecz nie naprawia źródłowo niskokontrastowych ikon, formularzy ani własnych komponentów interfejsu.
Dla zarządzającego

Niski kontrast elementów nietekstowych może utrudnić klientom wykonanie podstawowych działań: wybranie wariantu produktu, wypełnienie formularza, rozpoznanie błędu i finalizację zakupu. Najrozsądniejsza kolejność to przegląd krytycznych ścieżek, poprawki w systemie projektowym, test ręczny oraz stała kontrola zmian.

Dla sprzedaży

W rozmowie z klientem nie przedstawiaj widgetu jako zastępstwa audytu WCAG. WCAGbot może szybko dodać funkcje wspierające dostępność, takie jak tryby kontrastu, powiększanie tekstu czy funkcje skupienia. Kontrast ikon, pól, stanów i fokusu należy jednak ocenić oraz poprawić w kodzie i projekcie interfejsu.

WCAG 1.4.11 Non-text Contrast wymaga zwykle współczynnika kontrastu co najmniej 3:1 dla istotnych wizualnie elementów interfejsu oraz grafik potrzebnych do zrozumienia treści. Nie dotyczy więc wyłącznie „ładniejszych kolorów”. Dotyczy sytuacji, w których użytkownik musi rozpoznać pole formularza, ikonę usunięcia, zaznaczony wariant, uchwyt suwaka albo fokus klawiatury.

Właściciel sklepu lub strony usługowej powinien potraktować to kryterium jako kontrolę podstawowych ścieżek działania. Jeśli klient nie widzi, gdzie wpisać kod pocztowy, nie rozpoznaje wybranego rozmiaru albo nie zauważa fokusu po naciśnięciu klawisza Tab, sama obecność tekstu na stronie nie rozwiązuje problemu.

Najważniejsze wnioski

  • Próg dla istotnych elementów nietekstowych wynosi 3:1 względem odpowiedniego sąsiadującego koloru.
  • Oceniaj funkcję elementu, a nie tylko jego wygląd: pytaj, czy bez danego koloru, obrysu lub ikony użytkownik nadal rozpozna komponent i jego stan.
  • Priorytetem są formularze, koszyk, płatność, filtry, menu, kontrolki ilości oraz komunikaty błędów.
  • Test automatyczny jest pomocniczy. Ocena zgodności z 1.4.11 wymaga również ręcznego sprawdzenia stanów i kontekstu.
  • Funkcje kontrastu w widżecie mogą wspierać komfort użytkownika, ale trwałe problemy komponentów wymagają poprawki w projekcie oraz kodzie źródłowym.

Materiał ma charakter techniczno-informacyjny. Opisuje kryterium WCAG, a nie stanowi indywidualnej oceny zgodności serwisu, porady prawnej ani wyniku audytu.

Czym jest WCAG 1.4.11 Non-text Contrast?

Kryterium sukcesu WCAG 1.4.11 Non-text Contrast jest kryterium poziomu AA. Odnosi się do wizualnej prezentacji dwóch grup elementów:

  • komponentów interfejsu i ich stanów — gdy kolor, obrys, ikona lub inny znak wizualny pomaga rozpoznać kontrolkę, jej funkcję albo aktualny stan;
  • obiektów graficznych — gdy są potrzebne, aby zrozumieć treść, na przykład linii danych na wykresie, znaczącego symbolu na mapie lub segmentu diagramu.

Minimalny wymagany kontrast to 3:1. Nie należy mylić tego z wymaganiem kontrastu tekstu z kryterium 1.4.3. Tekst przycisku, etykieta pola i treść komunikatu podlegają własnym zasadom dotyczącym kontrastu tekstu. Z kolei ikona, obramowanie lub znacznik stanu mogą podlegać właśnie 1.4.11.

Dostępny komponent nie musi mieć ciężkiego obramowania. Musi jednak pozwalać użytkownikowi bez domysłów rozpoznać: „to jest kontrolka”, „to jest jej stan” i „tu jestem po przejściu klawiaturą”.

Jakie elementy sprawdzać w pierwszej kolejności?

Najwięcej ryzyk pojawia się tam, gdzie użytkownik podejmuje decyzję lub wykonuje działanie. W e-commerce będą to filtry, warianty produktu, licznik sztuk, formularz adresowy, zgody, koszyk oraz płatność. W serwisie usługowym: formularz kontaktowy, konfigurator, rezerwacja terminu, panel klienta i wyszukiwarka.

ElementCo może być informacją nietekstową?Co sprawdzić?Typowe ryzyko
Pole formularzaObrys, dolna linia, tło pola, wskaźnik błęduCzy pole odróżnia się od tła i czy stan błędu jest widoczny?Jasnoszare obramowanie znika na białym tle.
PrzyciskIkona, stan aktywny, stan przełączony, fokusCzy funkcję i stan można rozpoznać bez subtelnej zmiany barwy?Przełącznik „aktywny” różni się tylko odcieniem niebieskiego.
Checkbox i radioObrys, znacznik wyboru, tło zaznaczeniaCzy widać kontrolkę oraz to, czy jest zaznaczona?Stan wybrany opiera się wyłącznie na kolorze tła.
Ikona bez etykietySam symbol, np. koszyk, zamknięcie, edycjaCzy ikona ma 3:1 względem tła?Jasna ikona „usuń” jest niemal niewidoczna.
Wykres lub diagramLinie, punkty, segmenty, granice, legendyCzy istotne dane pozostają rozróżnialne?Dwie serie danych zlewają się wizualnie.
Fokus klawiaturyObrys, pierścień, podkreślenie, zmiana tłaCzy wskaźnik jest widoczny i kontrastowy w każdym miejscu?Fokus znika na kolorowym banerze albo obrazie.

Czy każdy przycisk musi mieć kontrastowy obrys?

Nie. WCAG 1.4.11 nie nakazuje automatycznie obramowania każdego przycisku ani kontrastu tła każdego przycisku względem tła strony. Kluczowe pytanie brzmi: co pozwala użytkownikowi zidentyfikować element jako kontrolkę i rozpoznać jego stan?

flow

WCAGbot Accessibility Path dla kontrastu nietekstowego

1Krytyczna ścieżka użytkownika2Lista komponentów i stanów3Ocena funkcji wizualnej4Pomiar kontrastu 3:15Poprawka w projekcie i kodzie6Test klawiaturą oraz ręczny7Funkcje wspierające WCAGbot
Proces porządkujący ocenę kontrastu komponentów i grafik: od wskazania elementu do poprawki źródłowej i testu końcowego.

Przycisk może być dostrzegalny dzięki połączeniu tekstu, położenia, kształtu, odstępów i kontekstu. Jednak nawet gdy formalna ocena tła przycisku nie prowadzi do naruszenia 1.4.11, bardzo subtelny przycisk może nadal być problemem użytecznościowym. Warto więc oddzielić minimalne wymaganie WCAG od jakości interfejsu.

Dla przycisku sprawdź osobno:

  • kontrast tekstu zgodnie z wymaganiami dla tekstu;
  • kontrast funkcjonalnej ikony;
  • rozpoznawalność stanu hover, active i selected;
  • widoczność fokusu po obsłudze klawiaturą;
  • czy zmiana stanu nie jest komunikowana wyłącznie kolorem.

Więcej o testowaniu poruszania się po kontrolkach znajdziesz w artykule Nawigacja klawiaturą: jak testować stronę zgodnie z WCAG.

Jak wdrożyć 1.4.11 w formularzach, koszyku i płatności?

Formularze są szczególnie ważne, ponieważ łączą wiele stanów: puste pole, fokus, poprawną wartość, błąd, blokadę oraz podpowiedź. Przegląd formularza zacznij od trzech pytań:

  1. Czy bez wpisania tekstu użytkownik widzi granice pola lub inny jednoznaczny sygnał obszaru edycji?
  2. Czy po przejściu klawiaturą fokus jest wyraźny na jasnym, ciemnym i kolorowym tle?
  3. Czy błąd jest rozpoznawalny nie tylko po czerwonym kolorze, ale również dzięki komunikatowi, ikonie, oznaczeniu lub zmianie wzoru?

Przykładowo, jeśli obrys pola jest jedynym wizualnym wskaźnikiem jego granic, obrys powinien osiągać 3:1 względem sąsiadującego tła. Gdy obok pola pojawia się ikona błędu, a ikona przekazuje istotną informację, również wymaga odpowiedniego kontrastu. Tekstowy komunikat błędu musi z kolei spełniać wymagania dotyczące kontrastu tekstu.

Projektowanie i testowanie pól opisujemy szerzej w poradniku Dostępny formularz: jak projektować i testować zgodnie z WCAG. W sklepach warto objąć tym samym przeglądem formularz rejestracji, adres dostawy, kupon rabatowy oraz wybór sposobu płatności.

Jak odróżnić 1.4.11 od wymagań dotyczących fokusu?

Te kryteria działają razem, ale odpowiadają na inne pytania:

  • 1.4.11 Non-text Contrast: czy wizualny wskaźnik fokusu ma wystarczający kontrast, gdy jest elementem dostarczonym lub zmienionym przez autora?
  • 2.4.7 Focus Visible: czy fokus jest w ogóle widoczny podczas obsługi klawiaturą?
  • 2.4.11 Focus Not Obscured: czy fokus nie jest całkowicie ukryty przez treść autora?
  • 2.4.13 Focus Appearance: dodatkowe, bardziej rygorystyczne kryterium poziomu AAA dotyczące wyglądu wskaźnika fokusu w WCAG 2.2.

W praktyce nie testuj tych punktów osobno w oderwaniu od interfejsu. Uruchom stronę bez myszy, używaj klawisza Tab, a następnie sprawdzaj kontrast wskaźnika na każdym typie tła. Pomogą w tym także artykuły: 2.4.7 Focus Visible, WCAG 2.4.11 Focus Not Obscured oraz WCAG 2.4.13 Focus Appearance.

WCAGbot Accessibility Path: proces poprawy kontrastu nietekstowego

Ten schemat pomaga zespołowi przejść od szybkiego wykrycia ryzyk do trwałej poprawki. Nie jest audytem sam w sobie, ale porządkuje pracę nad najważniejszymi komponentami.

  1. Wybierz ścieżkę krytyczną. Zacznij od zakupu, kontaktu, rejestracji lub logowania.
  2. Spisz komponenty oraz ich stany. Uwzględnij stan podstawowy, hover, fokus, błąd, zaznaczenie, aktywność i blokadę.
  3. Ustal informację wizualną. Zapisz, co informuje użytkownika o funkcji albo stanie: obrys, ikona, kolor tła, znacznik, linia czy wzór.
  4. Zmierz właściwy kontrast. Porównaj ten element z odpowiednim sąsiadującym kolorem. Dla gradientów sprawdzaj najsłabszy fragment kontrastu.
  5. Popraw systemowo. Zmień token koloru, komponent lub style bazowe, zamiast poprawiać pojedyncze widoki ręcznie.
  6. Wykonaj test ręczny. Sprawdź widok standardowy, różne szerokości ekranu oraz obsługę klawiaturą.
  7. Dodaj wsparcie użytkownika. Udostępnij funkcje wspierające dostępność, nie traktując ich jako zamiennika poprawek źródłowych.

Mini-scenariusz: filtr rozmiaru w sklepie internetowym

Scenariusz ilustracyjny — nie jest opisem wdrożenia u klienta. Sklep prezentuje rozmiary produktu jako małe prostokątne przyciski: S, M, L i XL. Wybrany rozmiar różni się od pozostałych wyłącznie delikatnie ciemniejszym tłem. Po przejściu klawiaturą fokus jest oznaczony cienką jasną linią, która znika na części kart produktu.

comparison

Co obejmuje, a czego nie obejmuje WCAG 1.4.11

1Ikona funkcjonalna2Obramowanie pola3Wskaźnik zaznaczenia4Linia na wykresie5Grafika dekoracyjna6Komponent nieaktywny7Logotyp o istotnej formie
Porównanie elementów zwykle objętych kryterium z elementami wymagającymi odrębnej oceny albo objętymi wyjątkiem.

W takim przypadku zespół powinien ocenić co najmniej trzy rzeczy:

  1. czy stan wybranego rozmiaru jest rozpoznawalny przez kontrastowy znacznik, obrys, ikonę lub dodatkową zmianę kształtu, a nie wyłącznie przez subtelną zmianę koloru;
  2. czy wskaźnik fokusu jest widoczny i osiąga wymagany kontrast względem tła, na którym jest prezentowany;
  3. czy nazwa rozmiaru, jeśli jest tekstem, ma kontrast wymagany dla tekstu.

Trwała poprawka może polegać na zastosowaniu kontrastowego obramowania zaznaczenia, czytelnego wskaźnika fokusu i spójnych tokenów kolorystycznych w całym systemie komponentów. Widżet może równolegle dać użytkownikowi możliwość włączenia trybu kontrastu lub powiększenia tekstu, ale nie zastąpi zmiany stylów własnego selektora rozmiaru.

Jak testować kontrast elementów nietekstowych?

1. Zacznij od listy stanów, nie od losowych zrzutów ekranu

Dla każdego komponentu wypisz wszystkie widoczne stany. Najczęściej pomijane są fokus, zaznaczenie, błąd, stan przełączony, rozwinięte menu oraz element nieaktywny. Komponent może wyglądać poprawnie w stanie podstawowym, a tracić kontrast dokładnie w momencie interakcji.

2. Mierz element, który przenosi informację

Nie zakładaj, że zawsze należy mierzyć tło całego przycisku. Jeżeli funkcję przekazuje samodzielna ikona, sprawdź ikonę. Jeżeli granice pola wyznacza obrys, sprawdź obrys. Jeżeli stan zaznaczenia oznacza haczyk w checkboxie, sprawdź haczyk i rozpoznawalność kontrolki.

3. Sprawdzaj sąsiadujące kolory

Kontrast liczy się względem koloru bezpośrednio sąsiadującego z ocenianym elementem. Wskaźnik fokusu umieszczony na zewnątrz komponentu może wymagać oceny względem tła strony. Wskaźnik wewnętrzny należy ocenić względem tła komponentu. Jeśli obrys stanowi granicę między dwoma tłami, ocena może wymagać sprawdzenia obu stron.

4. Testuj klawiaturą i przy realistycznej treści

Przejdź przez stronę klawiszem Tab, otwieraj rozwijane listy, zaznaczaj checkboxy i wymuszaj błędy walidacji. Nie testuj wyłącznie pustego szablonu. Długie nazwy produktów, rabaty, komunikaty o braku towaru i banery mogą zmienić położenie elementów albo przykryć fokus.

5. Potwierdzaj wynik ręcznie

Automatyczne narzędzia nie rozumieją w pełni roli wizualnej każdego piksela, zwłaszcza w komponentach własnych, grafikach i stanach dynamicznych. W3C nie wskazuje obecnie reguły ACT dla 1.4.11, dlatego wynik automatu traktuj jako listę kandydatów do sprawdzenia, a nie końcowy werdykt.

Jeżeli przegląd obejmuje większy serwis, połącz testy kontrastu z planem opisanym w artykule Audyt WCAG i wdrożenie: praktyczny plan krok po kroku. Przy komponentach niestandardowych warto również zweryfikować semantykę i zachowanie w technologiach asystujących, korzystając z poradników o HTML semantycznym, ARIA oraz testowaniu dostępności w NVDA.

Jakich wyjątków nie interpretować zbyt szeroko?

WCAG 1.4.11 przewiduje wyjątki, ale nie są one wygodnym uzasadnieniem dla niskiego kontrastu w całym interfejsie.

  • Nieaktywne komponenty: widoczny, ale aktualnie niedostępny komponent jest wyłączony z wymogu tego kryterium. Nadal warto jednak zadbać, aby użytkownik rozumiał, że element jest nieaktywny i dlaczego.
  • Czysta dekoracja: element, którego usunięcie nie zmienia treści ani obsługi, nie jest istotnym obiektem graficznym dla 1.4.11.
  • Istotna prezentacja wizualna: wyjątek może dotyczyć na przykład niektórych elementów identyfikacji wizualnej. Nie daje jednak podstawy do ignorowania kontrastu logo użytego jako przycisk, link lub inna kontrolka.

Co może zrobić WCAGbot, a co wymaga poprawy źródłowej?

WCAGbot pozwala dodać funkcje wspierające dostępność bez przebudowy strony: między innymi tryby kontrastu, skalę szarości, regulację tekstu i odstępów, czytanie treści, większy kursor, funkcje skupienia oraz profile wspierające różne potrzeby użytkowników. Może więc być rozsądnym pierwszym krokiem, który pomaga części użytkowników korzystać z obecnej wersji serwisu.

Nie należy jednak uznawać go za automatyczne rozwiązanie kryterium 1.4.11. Widget nie wie w każdym przypadku, która ikona, granica, część wykresu lub stan niestandardowego komponentu jest istotny dla zrozumienia interfejsu. Nie zastąpi też decyzji projektowej ani poprawki CSS, SVG, HTML czy logiki komponentu.

mockup

Kontrola formularza z poprawnym stanem błędu i fokusu

1Etykieta pola2Pole tekstowe3Obramowanie 3:14Wskaźnik fokusu5Ikona błędu6Tekst komunikatu7Instrukcja naprawy błędu
Plan makiety pokazującej pole z etykietą, obramowaniem, komunikatem błędu, ikoną ostrzegawczą i wskaźnikiem fokusu.

Najbezpieczniejszy model działania to: funkcje wspierające dostępność dla użytkownika teraz, a równolegle audyt i naprawa źródłowa dla trwałego usuwania barier. Szerzej o tej granicy przeczytasz w artykule Widget WCAG: co pomaga, a czego nie naprawi.

Podsumowanie dla zarządzającego i sprzedaży

WCAG 1.4.11 nie jest zadaniem ograniczonym do jednego koloru w brand booku. To kontrola tego, czy interfejs jasno komunikuje funkcję i stan elementów potrzebnych do wykonania działania. Dla biznesu najważniejsze są miejsca, w których użytkownik wybiera, wpisuje, potwierdza, usuwa, filtruje lub płaci.

Zacznij od najbardziej dochodowej albo najczęściej używanej ścieżki. Uporządkuj kolory i stany w systemie komponentów, przetestuj interfejs ręcznie oraz zaplanuj poprawki w kodzie. Następnie dodaj funkcje wspierające dostępność, które użytkownik może uruchomić samodzielnie.

Chcesz rozpocząć bez przebudowy strony? Otwórz panel WCAGbot na własnej witrynie, przetestuj kontrast i powiększenie tekstu, a potem zapisz komponenty wymagające naprawy źródłowej. Dodaj funkcje dostępności swojej strony i przetestuj WCAGbot.

FAQ: WCAG 1.4.11 Non-text Contrast

Czy WCAG 1.4.11 wymaga kontrastu 3:1 dla każdego elementu na stronie?

Nie. Kryterium dotyczy wizualnych informacji potrzebnych do rozpoznania komponentu interfejsu, jego funkcji lub stanu oraz obiektów graficznych potrzebnych do zrozumienia treści. Elementy czysto dekoracyjne nie są objęte tym zakresem.

Czy tło każdego przycisku musi mieć kontrast 3:1 względem tła strony?

Nie zawsze. Należy ustalić, co pozwala użytkownikowi rozpoznać przycisk jako kontrolkę. Jeśli funkcję i rozpoznawalność zapewnia inny wyraźny element wizualny, sama różnica między tłami może nie być decydująca. Niski kontrast może jednak nadal pogarszać użyteczność.

Czy ikona bez tekstowej etykiety podlega WCAG 1.4.11?

Tak, jeśli ikona przekazuje znaczenie albo umożliwia wykonanie działania, na przykład otwiera koszyk, usuwa produkt, rozwija menu lub informuje o błędzie. Taka ikona powinna mieć kontrast co najmniej 3:1 względem właściwego tła.

Czy ikona dekoracyjna musi mieć kontrast 3:1?

Nie, gdy jest rzeczywiście dekoracyjna i nie wnosi treści ani funkcji. Warto jednak upewnić się, że element oznaczony jako dekoracyjny nie jest w praktyce jedyną wskazówką dotyczącą funkcji lub statusu.

Czy obramowanie pola formularza musi spełniać 3:1?

Tak, jeżeli obramowanie jest wizualną informacją, dzięki której użytkownik rozpoznaje granice pola. Jeśli pole jest rozpoznawalne dzięki innej jednoznacznej prezentacji, ocena wymaga analizy konkretnego projektu.

Czy stan disabled musi spełniać WCAG 1.4.11?

Nieaktywny komponent jest wyłączony z wymogu kontrastu w tym kryterium. Nie oznacza to jednak, że powinien być niezrozumiały. Dobrą praktyką jest przekazanie użytkownikowi, że element jest niedostępny oraz — gdy to istotne — co musi zrobić, aby stał się aktywny.

Czy czerwony kolor wystarczy, aby oznaczyć błąd formularza?

Nie. Kolor nie powinien być jedynym nośnikiem informacji. Dodaj komunikat tekstowy, odpowiednią instrukcję oraz widoczny wskaźnik, na przykład ikonę lub oznaczenie pola. Każdy istotny element wizualny powinien być również odpowiednio kontrastowy.

Jak 1.4.11 łączy się z widocznym fokusem?

Kryterium 2.4.7 wymaga, aby fokus był widoczny, a 1.4.11 dotyczy między innymi kontrastu wskaźnika fokusu. Oznacza to, że pierścień fokusu może być obecny, ale nadal zbyt słabo widoczny na tle, na którym się pojawia.

Czy narzędzie automatyczne potwierdzi zgodność z WCAG 1.4.11?

Nie w pełni. Automat może wskazać kolory, komponenty i potencjalne problemy, ale nie zawsze rozpozna funkcję elementu, znaczenie stanu ani kontekst grafiki. Potrzebna jest ocena ręczna, zwłaszcza dla formularzy, widgetów, wykresów i komponentów własnych.

Czy tryb kontrastu w widżecie zapewnia zgodność z 1.4.11?

Nie. Tryb kontrastu może wspierać użytkownika podczas korzystania ze strony, ale nie jest potwierdzeniem zgodności komponentów z WCAG. Trwałe bariery, takie jak niskokontrastowe ikony, obramowania i stany własnych kontrolek, wymagają oceny oraz poprawy w kodzie źródłowym.

Źródła i materiały

  1. W3C, Understanding Success Criterion 1.4.11: Non-text Contrast
  2. W3C, Web Content Accessibility Guidelines (WCAG) 2.2
  3. W3C, G207: Ensuring that a contrast ratio of 3:1 is maintained for icons
  4. W3C, WCAG 2.2 Success Criterion 2.4.7 Focus Visible
  5. W3C, WCAG 2.2 Success Criterion 2.4.13 Focus Appearance
  6. W3C, ACT Rules Format and rules overview
  7. www.pearson.com
  8. www.w3.org
  9. accessibility.actumdigital.com
  10. www.w3.org
  11. developer.mozilla.org
  12. colourwise.app
Graf wiedzy

Powiązane zagadnienia