Od června 2025 se digitální přístupnost netýká jen státu. Musí ji řešit i e-shopy, banky a dopravci, jinak jim hrozí pokuta až 10 milionů korun. Kolik to ale stojí? V aplikaci iROZHLAS nám audit i úpravy pět let starého kódu zabraly týden a zhruba 220 řádků. Ukazujeme, proč to šlo tak levně a proč to nebyla náhoda.
Ještě nedávno byla digitální přístupnost, tedy to, jak dobře aplikaci ovládne člověk, který nevidí na obrazovku, hůř slyší nebo neudrží prst na displeji, hlavně starostí státu a veřejnoprávních institucí, protože ji definoval zákon. Od 28. června 2025 to platí jinak: zákon, kterým Česko implementuje European Accessibility Act, dopadá i na soukromý sektor. Konkrétně na e-shopy, banky, dopravce, poskytovatele e-knih. Nové služby musí požadavky splňovat hned, existující mají čas do 28. června 2030. Za nesplnění hrozí pokuta až 10 milionů korun.
A nejde o okrajovou skupinu uživatelů. Podle WHO žije s významným postižením 1,3 miliardy lidí. To je 16 % populace, tedy každý šestý člověk. K tomu nepočítáme situační omezení, která zažívá většina z nás v rámci každodennosti: čtení na přímém slunci, poslech v hlučném metru, ovládání aplikace s dítětem v jedné ruce.
Otázka pro product ownera tak přestává znít „máme přístupnost řešit?" a nahrazuje ji „kolik nás to bude stát?". Naše odpověď z praxe: když se nezanedbají základy, překvapivě málo.
Jak jsme zpřístupnili aplikaci iROZHLAS
Na aplikaci iROZHLAS jsme ve verzi 6.1.0 dodělali sadu accessibility funkcí a vyplnili Accessibility Nutrition Labels (Informační štítky přístupnosti) na App Storu. Celý audit i úpravy na více než pět let staré codebase zabraly týden a ~220 řádků kódu. Tenhle článek je příběh o tom, proč to šlo tak levně (nebyla to náhoda).
Než se do toho pustíme, shrneme důvody, proč se přístupnosti věnovat.
Šest důvodů, proč přístupnost patří na roadmapu
- Regulace už není jen veřejný sektor. EAA / zákon 424/2023 Sb. od 28. 6. 2025 dopadá i na komerční služby, pokuty až 10 mil. Kč, existující služby v souladu do 28. 6. 2030.
- Náklady rostou s odkladem. Přidat přístupnost později se výrazně prodraží. Od začátku je skoro zadarmo. Jak ukážeme v tomto článku.
- Širší trh. Jeden z šesti lidí podle WHO, plus situační omezení, která zažíváme všichni. Přístupnost = reálně větší dosah.
- Použitelnost pro všechny. Kontrast, srozumitelné chybové stavy, ovládání bez prstů zlepšují zážitek i lidem bez postižení.
- Kvalita kódu. Levná přístupnost je diagnostika: prozradí, jestli máte zdravý design systém a stavíte na systémových prvcích.
- Reputace a důvěra. Vyplněné štítky na App Store jsou veřejný signál, že to s produktem myslíte vážně.
Mobilní aplikaci iROZHLAS vyvíjíme od dubna 2021 a je to naše srdcovka. Na App Store je hodnocena 4,7★ z 2 200+ hodnocení a má přibližně 80 000 měsíčně aktivních uživatelů. Tak se nám pojďte podívat pod ruce.
Co jsou Accessibility Nutrition Labels
Apple štítky představil v květnu 2025 a na WWDC 25 jim věnoval samostatný talk. Jde o „nutriční tabulky" přístupnosti, které si uživatel prohlédne přímo v detailu aplikace na App Store a jednoduše díky nim ověří, jestli aplikace podporuje právě tu funkci, na kterou spoléhá. Vývojář je vyplňuje v App Store Connect v sekci „Zpřístupnění".
Štítky jsou ve třech kategoriích:
- Zrak. Tmavé rozhraní, větší text, dostatečný kontrast, rozlišování bez samotné barvy, redukce pohybu
- Interakce. VoiceOver, hlasové ovládání
- Média. Titulky, zvukové popisy
K čemu se zavazujete zaškrtnutým checkboxem?
K tomu, že uživatel, který si danou funkci zapne v systémovém Nastavení, zvládne všechny běžné úkony v aplikaci: hlavní funkce aplikace (u iROZHLASu čtení článků a poslech audia), onboarding, nastavení. Není fér zaškrtnout něco, co ve skutečnosti neumíte (uživatel si to nyní umí ověřit).
→ Štítek není checkbox, je to veřejný slib. A uživatel si ho umí ověřit.
Jak jsme štítky vyplnili ve verzi 6.1.0
Co jsme už měli hotové
Tmavé rozhraní. Pro lidi citlivé na světlo i pro ty, kteří tmavou variantu prostě preferují. Implementujeme ho od začátku vývoje, na iROZHLASu byl součástí specifikace. Tmavé pozadí máme tedy dlouhodobě otestováno v produkci. Tohle políčko jsme zaškrtli s čistým svědomím.
Větší text. Zase funkcionalita z původního zadání. Veřejnoprávní médium má být přístupné co nejširší skupině a podpora zvětšení textu je předpokladem. Při designu je klíčové, aby jednotlivé části UI měly „kam růst". Apple požaduje použitelnost minimálně se 200% fontem oproti defaultu; my iROZHLAS běžně testujeme rovnou na maximální velikosti.
→ Design musí mít kam růst, jinak přístupnost narazí na strop UI.
VoiceOver. Další z kategorie „podporujeme od prvního dne". Zjednodušeně: VoiceOver je pro lidi, kteří na obrazovku nevidí, a čte, kde se uživatel právě nachází: název tlačítka s popisem akce, text otevřeného článku, popisek zvolené fotky. Máme ho dlouhodobě v akceptačních kritériích, o štítku není pochyb.
→ VoiceOver v akceptačních kritériích je přístupnost, kterou nikdo nemusí dodělávat.
Hlasové ovládání. Tohle jsme dosud cíleně neimplementovali ani netestovali. Pro jeho podporu musí uživatel umět hlasem klikat na tlačítka, swipovat, scrollovat, psát. Aplikaci jsme pořádně otestovali a zjistili, že pečlivou podporou VoiceOveru jsme si půdu pro hlasové ovládání nachystali už předem. Bez jediné změny jsme zvládli všechny běžné úkony hlasem. Přidáváme štítek a jdeme dál.
→ Poctivá implementace jedné a11y funkce často zadarmo odemkne další.
Co jsme doplnili
Dostatečný kontrast. Při auditu je třeba vědět, které dvojice barevných tokenů se vyskytují společně (obvykle podklad a obsah). Ideál je splnit doporučené poměry už v návrhu: 4,5:1 pro text, 3:1 pro ikony a ovládací prvky. Většina aplikace auditem prošla bez problémů, ale na pár místech nám kontrast v průběhu let při drobných úpravách utekl: šedé sekundární texty, zelené akcenty ve světlém režimu, červené texty v tmavém. Řešení byly dvě cílené úpravy:
- dotčeným tokenům jsme přidali vysokokontrastní variantu, kterou systém použije po zapnutí „Zvýšit kontrast",
- a ikony začali vykreslovat jako template s ručně nastaveným barevným tokenem.
Pár hodin práce, další políčko vybarveno.
→ Kontrast se řeší v design tokenech, ne v kódu jednotlivých obrazovek.
Rozlišování bez samotné barvy. Pokud aplikace odlišuje třeba status (úspěch/chyba) jen barvou, někteří uživatelé stavy nerozliší. Často stačí přidat tvar, ikonu nebo text. Našli jsme dvě nevyhovující místa:
- Rychlé zprávy na domovské obrazovce se po přečtení přepínaly jen do monochromatické varianty → přidali jsme ikonu pro indikaci přečteného.
- Probíhající sportovní online přenos odlišený jen barvou textu → přidali jsme vysvětlující text.
Políčko téměř zadarmo.
→ Barva nesmí být jediný nositel informace. Přidejte tvar, ikonu nebo text.
Redukce pohybu. Vhodné animace obvykle oživují, ale některým uživatelům způsobují závratě nebo nevolnost. Se zapnutou redukcí pohybu se vyhýbáme zooming/sliding přechodům, blikání, parallaxu a animacím spuštěným bez interakce. Nedávno přidaná podpora Liquid Glass nám přinesla zoom přechody. Naštěstí jde o systémovou funkci, která na redukci pohybu reaguje automaticky a přechod změní na prolnutí. Protože systémovou navigaci využíváme napříč aplikací, stačilo najít custom animace: vypnuli jsme Lottie animaci loga po instalaci a upravili přechody v Rychlých zprávách i animovaný segmentový přepínač v přehrávači a vyhledávání.
→ Systémové komponenty za vás řeší přístupnost, o které ani nevíte.
Co zbývá
📌 Titulky. Synchronně zobrazovaný text s audiem máme jen pro radiostanice a aktuálně nechodí pro žádnou z nich; pro ostatní audia podporujeme jen přepis (kompletní text). To pro zaškrtnutí nestačí, máme na čem pracovat.
📌 Zvukové popisy. Určené hlavně pro video a popis událostí mezi dialogy. V kontextu iROZHLASu je zatím nemá smysl řešit.
Proč to bylo levné a proč to není náhoda
Všechny popsané úpravy se dotkly 23 souborů a znamenaly ~220 přidaných řádků ve dvou PR. Žádný refaktoring, žádný přepis. S auditem i manuálním QA hotovo do týdne.
Nebyla to náhoda ani štěstí. Byl to důsledek rozhodnutí z počátku projektu:
- Design tokeny → oprava kontrastu byla jedna úprava tokenu, ne padesát oprav rozházených po obrazovkách.
- Systémová navigace všude, kde dává smysl → redukci pohybu jsme z velké části dostali zadarmo.
- VoiceOver v akceptačních kritériích ode dne nula → hlasové ovládání šlo zaškrtnout bez jediného řádku kódu.
Jinými slovy:
Přístupnost je downstream efekt upstream disciplíny. Levně projde jen tam, kde je codebase zdravý, a proto je dobrým lakmusovým papírkem zralosti celého produktu. Když je levná přístupnost, je levná i každá další změna.
Článek připravil Jakub Marek, iOS dev ve Futured.












.webp)
%20(2).webp)
.webp)
.webp)
.webp)

.webp)
.webp)
.webp)


.webp)
.webp)
.webp)


.avif)
