Jak správně navrhnout konverzační AI na webu v souladu s evropskou legislativou a normami pro digitální přístupnost?
E-shopy i online služby stále častěji integrují konverzační asistenty založené na velkých jazykových modelech, avšak jejich dynamická rozhraní představují řadu technických výzev z hlediska digitální přístupnosti.
Legislativní požadavky a technické standardy
Provozovatelé webů se v Evropské unii musí řídit legislativním rámcem, který vymezuje povinnosti ohledně přístupnosti digitálních služeb. Evropská směrnice o přístupnosti (EAA) začala platit v celé Evropské unii od 28. června 2025[1]. V Německu je tato evropská směrnice zavedena do vnitrostátního práva prostřednictvím zákona Barrierefreiheitsstärkungsgesetz (BFSG)[1]. Podle německého zákona BFSG mohou úřady podle paragrafu 37 vyměřit pokuty dosahující až 100 000 eur za provozování služby, která nesplňuje stanovená pravidla přístupnosti[2].
Z povinností plynoucích ze zákona BFSG existuje výjimka pro mikropodniky, přičemž tato úleva se vztahuje na subjekty zaměstnávající méně než 10 pracovníků s ročním obratem či bilanční sumou nepřekračující 2 miliony eur[3]. Jako technické měřítko pro splnění směrnice slouží norma EN 301 549[4]. Tato norma v citované verzi věcně odpovídá požadavkům standardu WCAG 2.1 na úrovni AA, přičemž novější podoba normy již staví na aktualizovaném standardu WCAG 2.2[4].
Kromě obecných pravidel přístupnosti do hry vstupuje i unijní Akt o umělé inteligenci (EU AI Act). Článek 50 odstavec 5 tohoto aktu výslovně nařizuje, aby i samotné povinné upozornění, které uživatele informuje o tom, že komunikuje se systémem umělé inteligence, splňovalo požadavky na přístupnost[5].
Úskalí dynamických rozhraní a čteček obrazovky
Zatímco vidící uživatel snadno zaznamená novou odpověď pohledem, člověk využívající čtečku obrazovky bez speciálního technického mechanismu o vygenerování nového textu vůbec neví[6]. Jeho fokus totiž zůstává ukotven ve vstupním poli formuláře, z něhož dotaz odeslal[6]. V prostředí neustále narůstajícího chatu to znamená, že se uživatelé čteček obrazovky po každé odpovědi musejí zcela od začátku znovu orientovat, aby zjistili, co v rozhraní přibylo[7].
Tuto situaci v řadě aplikací zhoršuje fakt, že se po dokončení odpovědi fokus klávesnice nevrátí na předvídatelné místo[8]. Člověk procházející rozhraní pomocí tabulátoru je pak nucen znovu listovat celou historií konverzace od začátku, aby se k novému textu dostal[8]. Běžné automatizované testovací nástroje navíc tyto vady nedokážou odhalit, protože analyzují pouze stav DOMu při prvotním načtení stránky, kdy odpověď chatbota v kódu ještě vůbec neexistuje[9].
Jak správně pracovat s živými regiony a streamováním
Vývojáři při snaze zpřístupnit generované odpovědi často dělají chybu v tom, že atribut aria-live umisťují přímo na každou jednotlivou zprávu chatu[10]. Správné technické řešení spočívá v zavedení jediného dedikovaného živého regionu umístěného na samotném konci DOMu, který slouží pro veškerá systémová hlášení[10].
Kritickým faktorem je také způsob, jakým je text předáván při streamování odpovědi. Ohlašování textu po jednotlivých kusech v průběhu generování vede k trhavému a nesrozumitelnému předčítání[11]. Hlášení pro čtečku má proto přijít až ve chvíli, kdy je streamování celého textu z LLM kompletně dokončeno[11].
Během čekání na výsledek je vhodné uživatele informovat o probíhajícím zpracování. Podle uživatelského výzkumu je optimální ohlásit stav načítání pět sekund po odeslání dotazu a následně tuto informaci opakovat v pětisekundových intervalech, dokud model odpověď nedokončí[12]. Pokud rozhraní zobrazuje stav načítání vizuálně jako textový řetězec, oznámení předávané do živého regionu pro asistenční technologie musí mít naprosto identické znění, aby byla zachována rovnost prožitku[13].
Vizuální parametry widgetů a bariéry při vstupu
Kromě práce se čtečkami obrazovky musí konverzační okno splňovat základní vizuální a ergonomická kritéria. Text zpráv i ovládacích prvků v chatovacím widgetu musí mít vůči svému pozadí kontrastní poměr minimálně 4,5 ku 1[14]. Pravidla WCAG 2.2 dále stanovují, že interaktivní prvky a tlačítka musejí mít minimální velikost dotykového cíle alespoň 24 na 24 pixelů, přičemž jako komfortní rozměr se uvádí 44 na 44 pixelů[15].
Závažnou překážkou bývá také zabezpečení vstupu do konverzace. Umístění kontrolních mechanismů, jako je reCAPTCHA, Cloudflare Turnstile nebo ověřování přes SMS před samotné spuštění chatu, vytváří pro uživatele další bariéru[16].
Článek 50 odstavec 5 unijního Aktu o umělé inteligenci (EU AI Act) ukládá povinnost, aby samotné upozornění informující uživatele o komunikaci s AI bylo přístupné.
Article 50(5) of the EU AI Act requires the “you’re talking to an AI” notice itself to be accessible.
chatbot.mignuti.comOtevřít zdroj
Pokud je stav načítání v rozhraní zobrazen vizuálním textem, text v oznámení pro živý region čtečky obrazovky musí být identický pro zachování parity prožitku.
The text string for the live region announcement should be the same as what is shown visually, to be sure to ensure parity of experience
smashingmagazine.comOtevřít zdroj
Evropská směrnice o přístupnosti (EAA) platí v celé Evropské unii od 28. června 2025 a v Německu je implementována zákonem BFSG.
The European Accessibility Act has applied across the EU since 28 June 2025. In Germany it is implemented by the Barrierefreiheitsstärkungsgesetz (BFSG).
chatbot.mignuti.comOtevřít zdroj
Výjimka z německého zákona o přístupnosti BFSG se vztahuje na mikropodniky zaměstnávající méně než 10 osob s ročním obratem nebo bilanční sumou do 2 milionů eur.
Under section 2 no. 17, a microenterprise employs fewer than ten people and has either an annual turnover or an annual balance sheet total of no more than 2 million euros. Both conditions must be met.
chatbot.mignuti.comOtevřít zdroj
Hlášení nové odpovědi čtečce obrazovky by mělo nastat až po dokončení celého streamování textu z LLM, aby se předešlo zmatku z postupného čtení neúplného obsahu.
Attempting to announce the message as it streams in may create a juddering and confusing experience that’s difficult for someone to parse. It is better to wait until the message has completed streaming, and then announce the message’s content in full.
smashingmagazine.comOtevřít zdroj
Text v rozhraní chatovacího widgetu musí mít vůči pozadí kontrastní poměr minimálně 4,5 ku 1.
Contrast. Text needs at least 4.5:1 against its background. Watch out for brand colours: white text on a light green header looks smart and is often unreadable.
chatbot.mignuti.comOtevřít zdroj
Optimální časový interval pro první ohlášení stavu načítání odpovědi čtečkám obrazovky je podle uživatelského výzkumu pět sekund od odeslání dotazu a následně každých pět sekund do dokončení.
Triggering the loading message five seconds after prompt submission seems to be the sweet spot, according to the inclusive user research I evaluated. You can then have your logic repeat the loading message every five seconds until the LLM completes its actual reply.
smashingmagazine.comOtevřít zdroj
Při implementaci přístupnosti chatu by se neměl atribut aria-live vkládat na každou jednotlivou zprávu, ale má se využít dedikovaný živý region umístěný na konci DOMu.
One common pitfall I want to call specific attention to is applying aria-live on each LLM response message. Don’t do this. Instead, use a dedicated live region area to announce each message’s content. The live region area should be placed at the end of the DOM and used for all live region messaging.
smashingmagazine.comOtevřít zdroj
Německý zákon o přístupnosti BFSG stanovuje v paragrafu 37 pokuty až do výše 100 000 eur za provozování nepřístupné služby.
Section 37 provides for fines of up to 100,000 euros, for example for offering a service that isn’t accessible, and up to 10,000 euros for other breaches.
chatbot.mignuti.comOtevřít zdroj
V mnoha chatovacích rozhraních se po vygenerování odpovědi fokus klávesnice nevrátí na předvídatelné místo, což nutí uživatele procházet tabulátorem celou rostoucí historii znovu.
But in a chatbot a reply generates and focus doesn’t return anywhere predictable, so someone tabbing through the page has to re-navigate from the top of an ever-growing conversation just to find what’s new.
silktide.comOtevřít zdroj
Uživatelé čteček obrazovky procházejí stránky podle orientačních bodů a mentální mapy, což u neustále se dynamicky měnícího chatu vede k nutnosti znovu se orientovat po každé odpovědi.
The practical result is that, after nearly every reply, someone using a screen reader has to reorient from scratch just to find what changed, a step a sighted user skips with a glance. That reorientation repeats every turn, and it stacks.
silktide.comOtevřít zdroj
Směrnice WCAG 2.2 vyžaduje pro ovládací prvky a tlačítka minimální velikost dotykového cíle alespoň 24 na 24 pixelů, přičemž doporučený komfortní rozměr je 44 na 44 pixelů.
Touch targets. Buttons should be big enough to hit reliably with a finger. WCAG 2.2 requires at least 24 × 24 pixels; 44 × 44 is the comfortable size.
chatbot.mignuti.comOtevřít zdroj
Technickým standardem pro požadavky směrnice je norma EN 301 549, která v citované verzi odpovídá WCAG 2.1 na úrovni AA a novější verze staví na WCAG 2.2.
The technical benchmark is the standard EN 301 549, which in its currently cited version broadly corresponds to WCAG 2.1 level AA. According to the agency, a newer version based on WCAG 2.2 has already been published.
chatbot.mignuti.comOtevřít zdroj
Nasazení ověřovacích prvků typu reCAPTCHA, Cloudflare Turnstile nebo SMS před zahájením konverzace vytváří nepřekonatelné překážky pro nevidomé a osoby s kognitivními poruchami.
Organizations routinely put a reCAPTCHA, a Cloudflare Turnstile challenge, or an SMS verification step in front of the chatbot itself, before any conversation can begin. Organizations bolt that gate onto an interface that already has structural problems of its own, and it fails a different group
silktide.comOtevřít zdroj
Uživatel čtečky obrazovky bez dodatečného mechanismu neví o příchodu nové odpovědi z LLM, protože jeho fokus zůstává na vstupním formulářovém poli pro zadání promptu.
Visually, we can see the LLM reply appear. Someone who uses a screen reader does not know new content has appeared because: - Their focus is still on the input that sent the prompt. - No non-visual mechanism is present to signal new content showed up.
smashingmagazine.comOtevřít zdroj
Běžné automatizované audity přístupnosti nedokážou zachytit nedostatky v chatbotech, protože hodnotí pouze DOM načtené stránky, kde odpověď bota v okamžiku načtení ještě neexistuje.
Chatbots don’t have a “page” until someone types, which means tools built to catch accessibility failures are generally incapable of spotting those inside chatbots.
silktide.comOtevřít zdroj