Odporúčam ti pozrieť aj náš článok s úvodom do prístupnosti, kde si prečítaš všetko potrebné, aby si porozumel základom.
Ide o farbený kontrast medzi textom a jeho pozadím. Čím väčší kontrast tým ľahšie je text čitateľný napríklad pre ľudí so zrakovým hendikepom alebo keď ti slnko svieti priamo na obrazovku.
Podľa WCAG špecifikácie je minimálny farebný kontrast medzi textom a pozadím nasledovný:
AA rating:
AAA rating:
Veľký text v prípade CSS pixelov znamená aspoň 24px alebo boldový text aspoň 18.5px. Pre dekoratívne texty alebo logá značiek platí výnimka. V novej špecifikácii WCAG 3 bude nový a inteligentnejší algoritmus pre výpočet kontrastu, ktorý bude brať do úvahy aj font alebo konkrétne použité farby.
Overiť farebný kontrast sa dá priamo v DevTools prehliadača alebo akýmkoľvek automatizovaným testom. Problém môžu robiť len texty, ktoré sú pred obrázkovým pozadím, kde si treba dať väčší pozor.
ℹ️ Ďalšie užitočné informácie o farbách a kontraste nájdeš na webe WebAIM.
Netextový obsah stránky musí obsahovať alternatívny text. Najlepším príkladom sú obrázky, avšak platí to aj pre iné elementy ako sú videá, grafy… Alternatívny text plní niekoľko funkcií:
Pravidlá pre správne napísaný alt atribút:
ℹ️ Určite odporúčam pozrieť článok na webe WebAIM, kde sa podrobnejšie venujú písaniu alternatívneho textu spoločne s príkladmi.
Každý interaktívny prvok na stránke napr. tlačidlá alebo odkazy musia mať zrozumiteľný názov. Často sa stáva, že napr. odkazy v sebe majú len ikonku, ale žiadny text. Čítačka obrazovky tak nevie nevidiacemu používateľov prečítať čo je to za odkaz.
Existujú dva spôsoby ako vieme poskytnúť názov pre čisto ikonové tlačidlá alebo odkazy. Prvý je pomocou ARIA atribútu aria-label, ktorý môžeme použiť len na interaktívne elementy (napr. buttony, odkazy).
Druhý spôsob je pomocou tagu <span>, ktorý skryjeme CSS-kom, avšak pre čítačky obrazovky ostane tento text stále viditeľný (viac o métode pre skrývanie vizuálneho obsahu nájdeš na webe WebAIM). Tento spôsob vieme použiť aj na neinteraktívnych elementoch.
V oboch príkladoch sme na svg element použili aj atribúty aria-hidden="true", ktorý slúži na schovanie obsahu pre asistenčné technológie ako sú napr. čítačky obrazovky.
Ďalší častý problém sú odkazy, ktoré nemajú žiadnu výpovednú hodnotu. Napr. klikni tu, čítaj viac atď… Čítačky obrazovky vedia používateľovi prečítať zoznam všetkých odkazov na stránke, aby sa vedel rýchlejšie navigovať. Avšak ak mu čítačka povie 5 krát za sebou odkaz čítaj viac, tak používateľ netuší kam odkaz smeruje.
Ideálne riešenie je poskytnúť zmysluplný text pre tento odkaz. Ak sa tomu nevieme vyhnúť môžeme použiť aria-label. Čítačka obrazovky bude ignorovať text odkazu a namiesto toho použije text z atribútu aria-label.
ℹ️ Viac si môžeš prečítať v článku Accessible icon links alebo aj v dokumentacii ku Font Awesome ikonám.
Formuláre na webe by mali byť rovnako ako iné interaktívne elementy prístupné pomocou klávesnice. Napríklad presúvať sa medzi inputmi môžeme pomocou Tab klávesy, select by sa mal dať vyberať pomocou šípok hore/dole alebo checkbox označiť medzerníkom.
Každý input musí mať priradený <label> element. Môžeme použiť dva zápisy pomocou for atribútu v kombinácii s id alebo zabalením inputu do <label> elementu.
Checkboxy alebo radio inputy môžeme zgrupovať <fieldset> elementom a priradiť popis pomocou <legend> elementu. Len vizuálne zgrupovanie inputov nie je dostatočné pre ľudí, ktorí používajú čítačku obrazovky.
Ak chceme označiť input ako povinný, môžeme pridať atribút required alebo aria-required="true". Označiť ho hviezdičkou nestačí, pretože nie všetky čítačky obrazovky rozoznajú, že ide o povinný input.
Pre zrakovo postihnutých nestačí zvýrazniť nevalidný input vizuálne napr. červenou farbou. Na to slúži atribút aria-invalid="true", vďaka ktorému čítačka obrazovky oznámi používateľovi chybný stav.
ℹ️ Dobre spracovaný materiál o prístupnosti formulárov nájdeš na WebAIM.
Jazyk stránky by mal byť definovaný pomocou lang atribútu. Vďaka tomu vie čítačka obrazovky použiť správnu výslovnosť a skloňovanie alebo vie prehliadač ponúknuť preklad stránky. Pre celú stránku môžeme lang atribút zadefinovať v <html> tagu. Ak sa na webe nachádza časť stránky v inom jazyku, tak by sme mali lang atribút použiť na konkrétnu časť stránky. Zoznam kódov jednotlivých krajín nájdeš na tomto odkaze.
Ak správne použijeme tento atribút, tak splníme hneď dve WCAG kritéria úspešnosti:
Týchto niekoľko tipov je veľmi jednoduchých na implementáciu a pritom vie výrazne zlepšiť webovú prístupnosť. Tieto chyby vieš jednoducho odhaliť automatizovaným testovaním a rýchlo ich opraviť. Automatizovanému testovaniu sme sa venovali aj v našom článku o úvode do prístupnosti.
Pripravujeme aj pokračovanie článku kde si prejdeme ďalších 5 častých problémov s prístupnosťou. Ak nechceš prísť o tento článok, tak sa môžeš prihlásiť do nášho newslettra.