TakéKontrastní poměr, Contrast ratio, Barevný kontrastZákladní
Definice
Kontrast textu je měřitelný rozdíl jasu mezi barvou písma a barvou pozadí, vyjádřený kontrastním poměrem od 1:1 do 21:1. Metodika WCAG požaduje pro běžný text alespoň 4,5:1 a pro velký text 3:1 na úrovni AA. Nízký kontrast znesnadňuje čtení lidem se slabším zrakem i uživatelům na slunci.
Jak se kontrastní poměr počítá
Kontrastní poměr nepracuje s barvami tak, jak je vidí oko na monitoru, ale s relativní světlostí (relative luminance). Každá složka sRGB se nejprve linearizuje, pak se složky sečtou s vahami přibližně 0,2126 pro červenou, 0,7152 pro zelenou a 0,0722 pro modrou. Výsledné světlosti obou barev se dosadí do vzorce (L1 + 0,05) / (L2 + 0,05), kde L1 je světlejší barva. Rozsah je od 1:1 (identické barvy) po 21:1 (čistá černá na čisté bílé).
Velká váha zelené složky vysvětluje jev, který mnoho designérů překvapí: sytě žlutá je pro vzorec téměř stejně světlá jako bílá, kdežto sytě modrá je téměř černá. Barevný odstín sám o sobě do výpočtu nevstupuje, takže dvě výrazně odlišné barvy mohou mít kontrast pod 1,5:1 a text v nich prakticky zmizí.
Jaké hranice požaduje WCAG
- AA, běžný text: minimálně 4,5:1.
- AA, velký text: minimálně 3:1. Velkým textem se rozumí zhruba 18,66 px tučně nebo 24 px netučně.
- AAA: 7:1 pro běžný text a 4,5:1 pro velký.
- Netextové prvky: ohraničení polí formuláře, ikony nebo stavové indikátory potřebují alespoň 3:1 vůči okolí.
Výjimku mají loga a text, který je součástí fotografie. Dekorativní text skrytý před asistivními technologiemi se neposuzuje. Evropská norma EN 301 549, na kterou odkazuje český zákon o přístupnosti veřejného sektoru, přebírá úroveň AA jako závaznou, takže u webů úřadů nejde o doporučení, ale o povinnost. Souvislosti popisuje heslo Přístupnost.
Kde kontrast v praxi selhává
Nejčastějším zdrojem problémů je šedý text na bílé ploše, který v grafickém návrhu působí elegantně a v provozu na notebooku s lesklým displejem venku je nečitelný. Podobně riziková je bílá typografie na fotografii: kontrast se mění pixel po pixelu a stačí světlý pruh oblohy, aby titulek zmizel. Řešením bývá poloprůhledná vrstva pod textem nebo textový stín.
Druhou skupinou jsou stavy komponent. Tlačítko v klidu projde, ale jeho :disabled, :hover nebo placeholder v inputu ne. WCAG sice zakázané ovládací prvky z kritéria vyjímá, přesto uživatel potřebuje přečíst, co je v poli napsáno.
Třetí pastí je tmavý režim. Čistě bílý text na čistě černém pozadí dosahuje 21:1, jenže u lidí s astigmatismem způsobuje rozpití hran. Praxe se přiklání k velmi tmavě šedé ploše a světle šedému písmu, které stále překračuje 4,5:1.
Čím kontrast měřit
Kontrast se dá ověřit přímo v prohlížeči: DevTools ukazují poměr u vybraného elementu v panelu stylů a nástroj Lighthouse chybu vypíše v auditu přístupnosti. Automatická kontrola ale najde jen text nad jednolitou barvou; přechody, obrázky a videa musí posoudit člověk. Zvažte také funkci prefers-contrast v CSS, kterou lze uživatelům s požadavkem na vyšší kontrast nabídnout tvrdší paletu.
Příklady z praxe
Šedý text v patičce neprojde auditem
Patička e-shopu používá odstín #999999 na bílém pozadí, což dává poměr přibližně 2,85:1. Automatický audit označí všechny odkazy v patičce jako chybu úrovně AA. Ztmavení na #767676 posune poměr těsně nad 4,5:1, aniž by se vizuálně změnila hierarchie stránky.
/* nedostatečné: cca 2,85:1 */ .footer a { color: #999; background: #fff; } /* vyhovuje AA pro běžný text: cca 4,54:1 */ .footer a { color: #767676; background: #fff; }Titulek nad fotografií
Hero banner má bílý nadpis přes fotografii městské ulice. Nad tmavou fasádou je kontrast v pořádku, nad oblohou klesá pod 2:1 a slovo uprostřed titulku zaniká. Přidání tmavého překryvu s pevnou průhledností zajistí předvídatelné pozadí bez ohledu na to, jakou fotku redaktor nahraje.
<div class="hero"> <div class="hero__overlay"></div> <h2 class="hero__title">Doprava zdarma</h2> </div>
Časté omyly
- MýtusKdyž jsou barvy hodně odlišné, kontrast je dostatečný.
- Ve skutečnostiKontrastní poměr měří rozdíl světlosti, nikoli rozdíl odstínu. Sytě červená na sytě zelené jsou opticky velmi odlišné barvy, ale jejich poměr se pohybuje kolem 1,3:1 a text je prakticky nečitelný.
- MýtusKontrast řeším jen kvůli nevidomým uživatelům.
- Ve skutečnostiNevidomí uživatelé čtou obrazovku odečítačem a barvy je nezajímají. Kontrast pomáhá lidem se slabozrakostí, staršímu zraku, uživatelům levných displejů a komukoli, kdo se dívá na telefon na přímém slunci.
- MýtusBílý text na černém pozadí je pro tmavý režim nejlepší volba.
- Ve skutečnostiPoměr 21:1 je sice maximum, ale extrémní kontrast vyvolává halaci a rozpití hran písma, zvlášť u astigmatismu. Bezpečnější je tmavě šedé pozadí a mírně tlumené bílé písmo, které stále splňuje 4,5:1.
Časté dotazy
- Jak změřit kontrast textu přímo v prohlížeči?
- Kontrast textu ověříte v DevTools prohlížečů založených na Chromiu i ve Firefoxu. Po vybrání elementu se u vlastnosti color zobrazí vypočtený kontrastní poměr vůči zjištěnému pozadí spolu s informací, zda splňuje úroveň AA a AAA. Barevná pipeta navíc ukazuje hranici, pod kterou už odstín nevyhoví. Celý dokument najednou prověří audit přístupnosti v Lighthouse, který vypíše seznam prvků s nedostatečným poměrem. Automatické nástroje ale spolehlivě pracují jen s jednolitým pozadím, takže text nad fotografiemi, přechody nebo videem je nutné posoudit ručně.
- Platí požadavek na kontrast textu i pro loga a ikony?
- Kontrast textu se u log neposuzuje: WCAG dává logotypům a značkám výslovnou výjimku, protože jejich podoba je daná identitou firmy. Ikony a další netextová grafika ale výjimku nemají. Pokud ikona nese informaci nebo je součástí ovládacího prvku, musí mít vůči okolí poměr alespoň 3:1. Stejná hranice platí pro viditelné ohraničení formulářových polí, přepínačů a fokusového rámečku. Čistě dekorativní grafika, která nenese žádné sdělení a je skrytá před odečítačem obrazovky, se do kontroly nepočítá.
- Jaký kontrast textu vyžaduje česká legislativa?
- Kontrast textu na webech a v aplikacích veřejného sektoru se v Česku řídí zákonem o přístupnosti internetových stránek a mobilních aplikací, který odkazuje na evropskou normu EN 301 549. Ta přebírá kritéria WCAG na úrovni AA, tedy poměr 4,5:1 pro běžný text a 3:1 pro velký text a netextové prvky. Povinnost dopadá na úřady, školy, nemocnice a další subjekty veřejné správy. Komerční weby zákon přímo nezavazuje, směřování evropské legislativy k přístupnosti spotřebitelských služeb ale požadavky postupně rozšiřuje.
- Musí splňovat kontrast i text v disabled tlačítku?
- Kontrast textu u zakázaných ovládacích prvků WCAG explicitně vyjímá z kritéria 1.4.3, takže formálně chybu nezpůsobí. Z pohledu použitelnosti je ale ztlumené tlačítko na hranici viditelnosti problém: uživatel nepozná, co tlačítko dělá ani proč je nedostupné. Doporučený postup je držet u disabled stavu poměr alespoň kolem 3:1 a nedostupnost signalizovat i jinak než pouhým zesvětlením, například doplňujícím textem s vysvětlením podmínky. Stejná úvaha platí pro placeholder v poli, který uživatelé často čtou jako popisek.
Zdroje
- Web Content Accessibility Guidelines (WCAG) 2.2(otevře se v novém okně)
- Understanding WCAG 2.2(otevře se v novém okně)
- WCAG 2 Overview(otevře se v novém okně)
- prefers-contrast(otevře se v novém okně)
- Zákon č. 99/2019 Sb., o přístupnosti internetových stránek a mobilních aplikací(otevře se v novém okně)