Poziom
AA
Od wersji
WCAG 2.0
Pozycje
99 / 193
/ Kryterium WCAG

1.4.3 Kontrast (minimum)

Tekst musi odcinać się od tła: co najmniej 4,5:1, a w przypadku dużego tekstu 3:1.

/ Czego wymaga

Tekst musi dać się przeczytać na tle, na którym stoi. Miarą jest współczynnik kontrastu między kolorem tekstu a kolorem tła: od 1:1 dla identycznych kolorów do 21:1 dla czerni na bieli. Jasnoszary tekst na białym tle, biały na jasnym kolorze firmowym i napis na zdjęciu są trudne do odczytania dla osób słabowidzących lub o obniżonej wrażliwości na kontrast, a także dla każdego, kto trzyma telefon w pełnym słońcu.

Zwykły tekst wymaga co najmniej 4,5:1. Duży tekst, czyli co najmniej 18 punktów albo 14 punktów z pogrubieniem (około 24 i 18,66 piksela CSS), wymaga co najmniej 3:1. Obrazy tekstu podlegają tym samym progom, a wartości się nie zaokrągla: 4,499:1 nie przechodzi. Kryterium wyłącza tekst w nieaktywnych kontrolkach, czystą dekorację, tekst dla nikogo niewidoczny, tekst będący przypadkowym fragmentem zdjęcia oraz logo i nazwy marek.

/ Jak strony go nie spełniają

  • Tekst główny lub podpisy są jasnoszare na białym tle, a takie połączenie często wypada poniżej 4,5:1.
  • Tekst podpowiedzi placeholder w polach formularza jest bledszy niż tekst wpisywany i spada poniżej progu.
  • Biały tekst stoi na jasnym kolorze firmowym w przyciskach, plakietkach i banerach.
  • Tekst leży na zdjęciu lub gradiencie bez jednolitej warstwy pod spodem, więc jego fragmenty znikają.
  • Półprzezroczysty panel albo obniżona właściwość opacity tekstu zmniejsza współczynnik, na który wskazywałyby kolory z arkusza stylów.

/ Jak sprawdzić samodzielnie

  1. W Chrome lub Edge zbadaj element z tekstem i kliknij próbkę koloru obok właściwości color w panelu Styles. Próbnik pokaże współczynnik kontrastu i to, czy spełnia poziom AA.
  2. Do tekstu na obrazach użyj darmowego narzędzia z pipetą, na przykład Colour Contrast Analyser, i pobierz najjaśniejszy oraz najciemniejszy punkt za literami.
  3. Sprawdź też stany: linki, kolory po najechaniu i przy fokusie, podpowiedzi w polach, komunikaty o błędach i tekst na przyciskach.
  4. Zanim zastosujesz próg 3:1, potwierdź rozmiar. Tekst poniżej 24 pikseli, a pogrubiony poniżej 18,66 piksela, liczy się jako zwykły.

/ Jak to naprawić

  • Przyciemnij wartość color albo zmień background-color, aż para osiągnie 4,5:1. Na białym tle #767676 to mniej więcej najjaśniejszy szary, który przechodzi dla zwykłego tekstu.
  • Nadaj podpowiedziom styl wprost selektorem ::placeholder i kolorem, który osiąga 4,5:1 względem pola.
  • Pod tekstem leżącym na obrazie umieść jednolity lub półprzezroczysty background-color albo przyciemnij sam obraz nakładką.
  • Nie wyciszaj tekstu właściwością opacity. Wybierz kolor, który przechodzi sam, bo opacity miesza tekst z tym, co jest pod spodem.
  • Zapisz sprawdzone pary kolorów jako zmienne CSS, żeby każdy komponent korzystał z tej samej palety.

/ Co sprawdza nasz skaner

Skan na wyrenderowanej stronie bierze każdy widoczny element z tekstem, składa wszystkie półprzezroczyste warstwy tła i przezroczystość przodków w kolor, który faktycznie jest pod tekstem, i porównuje go z kolorem tekstu. Tekst wpisywany w pola i podpowiedzi są mierzone osobno, a HTML_CodeSniffer dodaje własne obliczenie na podstawie CSS. Tekst na obrazie lub gradiencie trafia do oceny człowieka, a kolory po najechaniu i przy fokusie nie są mierzone.

/ Kto je łamie, według naszych pomiarów

Zmierzone podmioty łamiące to kryterium, najwięcej wystąpień na górze
PodmiotSektorWystąpieniaWynik
Szczecincity · PL1242
Teatr Wielki Opera Narodowaculture · PL1093
Zielona Góracity · PL957
Elblągcity · PL8820
Social Security Administrationgovernment · US71-
Lublincity · PL6917
Uniwersytet Śląskieducation · PL669
Uniwersytet Marii Curie-Skłodowskiejeducation · PL629
Muzeum Narodowe w Warszawieculture · PL5411
Urząd Komunikacji Elektronicznejgovernment · PL5325
Uniwersytet Ekonomiczny w Krakowieeducation · PL5115
Düsseldorfcity · DE489
Bundesverfassungsgerichtgovernment · DE4418
Opolecity · PL448
Radomcity · PL432
Częstochowacity · PL4021
Smithsonianculture · US3914
Bundesministerium für Bildung und Forschunggovernment · DE368
Universität Heidelbergeducation · DE3621
Narodowy Instytut Dziedzictwaculture · PL326
Wrocławcity · PL322
Gliwicecity · PL3113
Phoenixcity · US311
Bundesministerium der Justizgovernment · DE307
Ludwig-Maximilians-Universität Müncheneducation · DE2813
Karlsruher Institut für Technologieeducation · DE2719
Katowicecity · PL2410
New Orleanscity · US227
Trybunał Konstytucyjnygovernment · PL2214
Federal Aviation Administrationtransport · US2014
Gdańskcity · PL202
Białystokcity · PL1937
Los Angeles Countygovernment · US189
Stiftung Preußischer Kulturbesitzculture · DE1821
Uniwersytet Warszawskieducation · PL184
Bundesnetzagenturgovernment · DE179
Deutsche Rentenversicherunggovernment · DE175
Chicago Transit Authoritytransport · US164
Gdyniacity · PL167
Politechnika Łódzkaeducation · PL165
Robert Koch-Instituthealth · DE1610
Uniwersytet im. Adama Mickiewiczaeducation · PL1612
Centers for Disease Controlhealth · US148
NASAgovernment · US1419
LA Metrotransport · US1317
Narodowy Instytut Zdrowia Publicznegohealth · PL1325
Statistisches Bundesamtgovernment · DE139
Zamek Królewski w Warszawieculture · PL1316
Berlincity · DE1141
AGHeducation · PL1054
Technische Universität Müncheneducation · DE1014
University of Floridaeducation · US923
Uniwersytet Jagiellońskieducation · PL91
Bundesministerium des Innerngovernment · DE810
Humboldt-Universität zu Berlineducation · DE835
Nürnbergcity · DE82
Politechnika Poznańskaeducation · PL84
Warszawski Uniwersytet Medycznyeducation · PL813
Bundesregierunggovernment · DE74
Nashvillecity · US712
Frankfurt am Maincity · DE640
Toruńcity · PL611
University of Texas at Austineducation · US621
Uniwersytet Wrocławskieducation · PL615
Poczta Polskagovernment · PL516
Prezydent RPgovernment · PL515
Bostoncity · US46
Department of Justicegovernment · US439
Główny Urząd Statystycznygovernment · PL417
Komisja Nadzoru Finansowegogovernment · PL417
PKP Intercitytransport · PL42
Sosnowieccity · PL428
Austincity · US320
Biblioteka Narodowaculture · PL316
Bundesagentur für Arbeitgovernment · DE316
Centrum e-Zdrowiahealth · PL360
Deutsche Bahntransport · DE35
Freie Universität Berlineducation · DE37
Houstoncity · US37
State of Texasgovernment · US322
Szkoła Główna Handlowaeducation · PL312
Veterans Affairsgovernment · US333
Harris Countygovernment · US219
Koleje Mazowieckietransport · PL217
Politechnika Warszawskaeducation · PL212
Uniwersytet Gdańskieducation · PL218
Baltimorecity · US17
Bremencity · DE178
Bundesratgovernment · DE114
Denvercity · US151
Dresdencity · DE115
Miami-Dade Countygovernment · US120
National Weather Servicegovernment · US134
Olsztyncity · PL18
Philadelphiacity · US18
Poznańcity · PL11
Rzeszówcity · PL18
State of Washingtongovernment · US19
Tychycity · PL120

Jedna strona na podmiot, mierzona automatycznie w tygodniowym cyklu. Jeśli podmiot coś naprawił od ostatniego pomiaru, zmiana będzie widoczna przy następnym, a każdy podmiot może odpowiedzieć na swojej stronie.

/ Pytania o to kryterium

Jakiego kontrastu wymaga WCAG na poziomie AA?

Co najmniej 4,5:1 między zwykłym tekstem a tłem i co najmniej 3:1 dla dużego tekstu. Te same progi dotyczą tekstu w obrazach. Współczynników się nie zaokrągla, więc 4,499:1 nie przechodzi. Poziom AAA podnosi poprzeczkę dla zwykłego tekstu do 7:1 w kryterium 1.4.6, a części kontrolek i grafik, które nie są tekstem, obejmuje osobno kryterium 1.4.11.

Co WCAG uznaje za duży tekst?

Tekst o rozmiarze co najmniej 18 punktów albo co najmniej 14 punktów, jeśli jest pogrubiony. Przy zwykłym przeliczeniu to około 24 piksele CSS albo 18,66 piksela CSS dla pogrubienia. Tekst tej wielkości wymaga kontrastu 3:1 zamiast 4,5:1. Wszystko, co mniejsze, to zwykły tekst, nawet jeśli jest zapisane wersalikami albo ciężkim krojem pisma.

Czy logo i nieaktywne przyciski muszą spełniać wymóg kontrastu?

Nie. Kryterium nie stawia wymogu kontrastu tekstowi będącemu częścią logo lub nazwy marki, tekstowi w nieaktywnym komponencie interfejsu, czystej dekoracji ani tekstowi, który jest przypadkowym fragmentem zdjęcia z inną istotną treścią. Wszystko inne, co odwiedzający ma przeczytać, musi go spełniać, w tym tekst podpowiedzi w polach i tekst na aktywnych przyciskach.