# Vytváření přístupných webových stránek ![Vše o přístupnosti](../../../../translated_images/webdev101-a11y.8ef3025c858d897a403a1a42c0897c76e11b724d9a8a0c0578dd4316f7507622.cs.png) > Sketchnote od [Tomomi Imura](https://twitter.com/girlie_mac) ## Kvíz před lekcí [Kvíz před lekcí](https://ff-quizzes.netlify.app/web/) > Síla webu spočívá v jeho univerzálnosti. Přístup pro všechny, bez ohledu na postižení, je zásadní aspekt. > > \- Sir Timothy Berners-Lee, ředitel W3C a vynálezce World Wide Webu Možná vás to překvapí: když vytváříte přístupné webové stránky, nepomáháte jen lidem s postižením – ve skutečnosti zlepšujete web pro všechny! Všimli jste si někdy těch snížených obrubníků na rohu ulic? Původně byly navrženy pro vozíčkáře, ale nyní pomáhají lidem s kočárky, doručovatelům s vozíky, cestovatelům s kufry na kolečkách a také cyklistům. Přesně tak funguje přístupný webový design – řešení, která pomáhají jedné skupině, často nakonec prospívají všem. Docela cool, že? V této lekci se podíváme na to, jak vytvářet webové stránky, které skutečně fungují pro všechny, bez ohledu na to, jak procházejí web. Objevíte praktické techniky, které jsou již zabudovány do webových standardů, vyzkoušíte si testovací nástroje a uvidíte, jak přístupnost zlepšuje použitelnost vašich stránek pro všechny uživatele. Na konci této lekce budete mít jistotu, že přístupnost se stane přirozenou součástí vašeho vývojového procesu. Připraveni prozkoumat, jak promyšlené designové volby mohou otevřít web miliardám uživatelů? Pojďme na to! > Tuto lekci si můžete projít na [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/accessibility/?WT.mc_id=academic-77807-sagibbon)! ## Porozumění asistivním technologiím Než se pustíme do kódování, pojďme si chvíli uvědomit, jak lidé s různými schopnostmi skutečně zažívají web. Nejde jen o teorii – pochopení těchto reálných navigačních vzorců z vás udělá mnohem lepšího vývojáře! Asistivní technologie jsou úžasné nástroje, které pomáhají lidem s postižením interagovat s webovými stránkami způsoby, které vás možná překvapí. Jakmile pochopíte, jak tyto technologie fungují, vytváření přístupných webových zážitků se stane mnohem intuitivnějším. Je to jako naučit se vidět svůj kód očima někoho jiného. ### Čtečky obrazovky [Čtečky obrazovky](https://en.wikipedia.org/wiki/Screen_reader) jsou velmi sofistikované technologie, které převádějí digitální text na hlasový výstup nebo výstup v Braillově písmu. I když jsou primárně používány lidmi se zrakovým postižením, jsou také velmi užitečné pro uživatele s poruchami učení, jako je dyslexie. Rád přirovnávám čtečku obrazovky k velmi chytrému vypravěči, který vám čte knihu. Čte obsah nahlas v logickém pořadí, oznamuje interaktivní prvky jako „tlačítko“ nebo „odkaz“ a poskytuje klávesové zkratky pro pohyb po stránce. Ale tady je ten háček – čtečky obrazovky mohou fungovat jen tehdy, pokud vytváříme webové stránky se správnou strukturou a smysluplným obsahem. A to je vaše role jako vývojáře! **Populární čtečky obrazovky na různých platformách:** - **Windows**: [NVDA](https://www.nvaccess.org/about-nvda/) (zdarma a nejpopulárnější), [JAWS](https://webaim.org/articles/jaws/), [Narrator](https://support.microsoft.com/windows/complete-guide-to-narrator-e4397a0d-ef4f-b386-d8ae-c172f109bdb1/?WT.mc_id=academic-77807-sagibbon) (vestavěný) - **macOS/iOS**: [VoiceOver](https://support.apple.com/guide/voiceover/welcome/10) (vestavěný a velmi schopný) - **Android**: [TalkBack](https://support.google.com/accessibility/android/answer/6283677) (vestavěný) - **Linux**: [Orca](https://wiki.gnome.org/Projects/Orca) (zdarma a open-source) **Jak čtečky obrazovky navigují webový obsah:** Čtečky obrazovky poskytují několik navigačních metod, které umožňují efektivní procházení zkušeným uživatelům: - **Sekvenční čtení**: Čte obsah shora dolů, jako při čtení knihy - **Navigace podle orientačních bodů**: Přeskakuje mezi sekcemi stránky (hlavička, navigace, hlavní obsah, patička) - **Navigace podle nadpisů**: Přeskakuje mezi nadpisy pro pochopení struktury stránky - **Seznam odkazů**: Generuje seznam všech odkazů pro rychlý přístup - **Ovládací prvky formulářů**: Naviguje přímo mezi vstupními poli a tlačítky > 💡 **Zajímavost**: 68 % uživatelů čteček obrazovky naviguje primárně podle nadpisů ([WebAIM Survey](https://webaim.org/projects/screenreadersurvey9/#finding)). To znamená, že vaše struktura nadpisů je jako mapa pro uživatele – když ji uděláte správně, doslova pomáháte lidem rychleji najít cestu vaším obsahem! ### Budování testovacího workflow Dobrá zpráva – efektivní testování přístupnosti nemusí být ohromující! Budete chtít kombinovat automatizované nástroje (jsou skvělé na odhalování zjevných problémů) s ručním testováním. Zde je systematický přístup, který podle mých zkušeností zachytí většinu problémů, aniž by vám zabral celý den: **Základní workflow pro ruční testování:** ```mermaid graph TD A[Start Testing] --> B{Keyboard Navigation} B --> C[Tab through all interactive elements] C --> D{Screen Reader Testing} D --> E[Test with NVDA/VoiceOver] E --> F{Zoom Testing} F --> G[Zoom to 200% and test functionality] G --> H{Color/Contrast Check} H --> I[Verify all text meets contrast ratios] I --> J{Focus Management} J --> K[Ensure focus indicators are visible] K --> L[Testing Complete] ``` **Kontrolní seznam kroků testování:** 1. **Navigace pomocí klávesnice**: Používejte pouze klávesy Tab, Shift+Tab, Enter, Space a šipky 2. **Testování čtečky obrazovky**: Zapněte NVDA, VoiceOver nebo Narrator a navigujte se zavřenýma očima 3. **Testování přiblížení**: Testujte při úrovních přiblížení 200 % a 400 % 4. **Ověření kontrastu barev**: Zkontrolujte veškerý text a komponenty uživatelského rozhraní 5. **Testování indikátoru zaostření**: Ujistěte se, že všechny interaktivní prvky mají viditelné stavy zaostření ✅ **Začněte s Lighthouse**: Otevřete DevTools svého prohlížeče, spusťte audit přístupnosti Lighthouse a použijte výsledky k zaměření na oblasti ručního testování. ### Nástroje pro přiblížení a zvětšení Víte, jak si někdy přiblížíte text na telefonu, když je příliš malý, nebo mžouráte na obrazovku notebooku na jasném slunci? Mnoho uživatelů spoléhá na nástroje pro zvětšení, aby byl obsah čitelný každý den. To zahrnuje lidi se slabým zrakem, starší dospělé a kohokoli, kdo se někdy pokusil číst webovou stránku venku. Moderní technologie přiblížení se vyvinuly nad rámec pouhého zvětšování. Pochopení, jak tyto nástroje fungují, vám pomůže vytvářet responzivní designy, které zůstávají funkční a atraktivní na jakékoli úrovni zvětšení. **Moderní schopnosti přiblížení v prohlížečích:** - **Přiblížení stránky**: Proporcionálně zvětšuje veškerý obsah (text, obrázky, rozvržení) – preferovaná metoda - **Pouze textové přiblížení**: Zvětšuje velikost písma při zachování původního rozvržení - **Přiblížení gestem**: Podpora mobilních gest pro dočasné zvětšení - **Podpora prohlížečů**: Všechny moderní prohlížeče podporují přiblížení až na 500 % bez narušení funkčnosti **Specializovaný software pro zvětšení:** - **Windows**: [Lupa](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198) (vestavěná), [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/) - **macOS/iOS**: [Zoom](https://www.apple.com/accessibility/mac/vision/) (vestavěný s pokročilými funkcemi) > ⚠️ **Designová úvaha**: WCAG vyžaduje, aby obsah zůstal funkční při přiblížení na 200 %. Na této úrovni by horizontální posouvání mělo být minimální a všechny interaktivní prvky by měly zůstat přístupné. ✅ **Otestujte svůj responzivní design**: Přibližte svůj prohlížeč na 200 % a 400 %. Přizpůsobí se vaše rozvržení elegantně? Můžete stále přistupovat ke všem funkcím bez nadměrného posouvání? ## Moderní nástroje pro testování přístupnosti Nyní, když rozumíte tomu, jak lidé navigují web pomocí asistivních technologií, pojďme prozkoumat nástroje, které vám pomohou vytvářet a testovat přístupné webové stránky. Představte si to takto: automatizované nástroje jsou skvělé na odhalování zjevných problémů (jako chybějící alt text), zatímco ruční testování vám pomůže zajistit, že váš web bude v reálném světě příjemný na používání. Společně vám dávají jistotu, že vaše stránky fungují pro všechny. ### Testování kontrastu barev Dobrá zpráva: kontrast barev je jedním z nejčastějších problémů přístupnosti, ale také jedním z nejsnadněji řešitelných. Dobrý kontrast prospívá všem – od uživatelů se zrakovým postižením až po lidi, kteří se snaží číst své telefony na pláži. **Požadavky na kontrast podle WCAG:** | Typ textu | WCAG AA (minimální) | WCAG AAA (vylepšený) | |-----------|---------------------|---------------------| | **Normální text** (pod 18pt) | Poměr kontrastu 4,5:1 | Poměr kontrastu 7:1 | | **Velký text** (18pt+ nebo 14pt+ tučný) | Poměr kontrastu 3:1 | Poměr kontrastu 4,5:1 | | **Komponenty UI** (tlačítka, okraje formulářů) | Poměr kontrastu 3:1 | Poměr kontrastu 3:1 | **Základní nástroje pro testování:** - [Colour Contrast Analyser](https://www.tpgi.com/color-contrast-checker/) - Desktopová aplikace s výběrem barev - [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/) - Webová aplikace s okamžitou zpětnou vazbou - [Stark](https://www.getstark.co/) - Plugin pro designové nástroje jako Figma, Sketch, Adobe XD - [Accessible Colors](https://accessible-colors.com/) - Najděte přístupné barevné palety ✅ **Vytvářejte lepší barevné palety**: Začněte s barvami své značky a použijte kontrolory kontrastu k vytvoření přístupných variant. Dokumentujte je jako přístupné barevné tokeny vašeho designového systému. ### Komplexní audit přístupnosti Nejúčinnější testování přístupnosti kombinuje více přístupů. Žádný jediný nástroj nezachytí vše, takže vytvoření testovací rutiny s různými metodami zajišťuje důkladné pokrytí. **Testování v prohlížeči (vestavěné v DevTools):** - **Chrome/Edge**: Audit přístupnosti Lighthouse + panel Přístupnosti - **Firefox**: Inspektor přístupnosti s podrobným stromovým zobrazením - **Safari**: Záložka Audit v Web Inspectoru se simulací VoiceOveru **Profesionální testovací rozšíření:** - [axe DevTools](https://www.deque.com/axe/devtools/) - Průmyslový standard pro automatizované testování - [WAVE](https://wave.webaim.org/extension/) - Vizuální zpětná vazba s označením chyb - [Accessibility Insights](https://accessibilityinsights.io/) - Komplexní testovací sada od Microsoftu **Příkazový řádek a integrace CI/CD:** - [axe-core](https://github.com/dequelabs/axe-core) - Knihovna JavaScriptu pro automatizované testování - [Pa11y](https://pa11y.org/) - Nástroj pro testování přístupnosti v příkazovém řádku - [Lighthouse CI](https://github.com/GoogleChrome/lighthouse-ci) - Automatizované hodnocení přístupnosti > 🎯 **Cíl testování**: Snažte se dosáhnout skóre přístupnosti Lighthouse 95+ jako základní úrovně. Pamatujte, že automatizované nástroje zachytí pouze asi 30–40 % problémů s přístupností – ruční testování je stále nezbytné! ## Budování přístupnosti od základů Klíčem k úspěchu v přístupnosti je začlenit ji do základů od prvního dne. Vím, že je lákavé si říct „přístupnost přidám později“, ale to je jako snažit se přidat rampu k domu až po jeho postavení. Je to možné? Ano. Snadné? Ani ne. Představte si přístupnost jako plánování domu – je mnohem snazší zahrnout přístupnost pro vozíčkáře do vašich počátečních architektonických plánů, než vše později přestavovat. ### Principy POUR: Základ vaší přístupnosti Pokyny pro přístupnost webového obsahu (WCAG) jsou postaveny na čtyřech základních principech, které tvoří zkratku POUR. Nebojte se – nejde o nudné akademické koncepty! Jsou to praktické pokyny pro vytváření obsahu, který funguje pro všechny. Jakmile si osvojíte POUR, rozhodování o přístupnosti se stane mnohem intuitivnějším. Je to jako mít mentální kontrolní seznam, který vás vede při designových volbách. Pojďme si je rozebrat: **🔍 Vnímatelné**: Informace musí být prezentovány způsoby, které uživatelé mohou vnímat svými dostupnými smysly - Poskytněte textové alternativy pro netextový obsah (obrázky, videa, zvuk) - Zajistěte dostatečný kontrast barev pro veškerý text a komponenty UI - Nabídněte titulky a přepisy pro multimediální obsah - Navrhněte obsah, který zůstane funkční při zvětšení až na 200 % - Používejte více smyslových charakteristik (nejen barvu) k předávání informací **🎮 Ovládatelné**: Všechny prvky rozhraní musí být ovladatelné dostupnými vstupními metodami - Zajistěte, aby všechny funkce byly přístupné pomocí klávesnice - Poskytněte uživatelům dostatek času na čtení a interakci s obsahem - Vyhněte se obsahu, který způsobuje záchvaty nebo vestibulární poruchy - Pomozte uživatelům efektivně navigovat pomocí jasné struktury a orientačních bodů - Zajistěte, aby interaktivní prvky měly dostatečnou velikost (minimálně 44px) **📖 Srozumitelné**: Informace a ovládání UI musí být jasné a pochopitelné - Používejte jasný, jednoduchý jazyk vhodný pro vaše publikum - Zajistěte, aby obsah vypadal a fungoval předvídatelně a konzistentně - Poskytněte jasné instrukce a ch Barva je silným nástrojem pro komunikaci, ale nikdy by neměla být jediným způsobem, jak předáváte důležité informace. Navrhování nad rámec barev vytváří robustnější a inkluzivnější zážitky, které fungují v různých situacích. **Navrhování pro rozdíly ve vnímání barev:** Přibližně 8 % mužů a 0,5 % žen má nějakou formu rozdílu ve vnímání barev (často nazývané "barvoslepost"). Nejčastější typy jsou: - **Deuteranopie**: Obtížné rozlišování červené a zelené - **Protanopie**: Červená se jeví jako tmavší - **Tritanopie**: Obtíže s modrou a žlutou (vzácné) **Strategie inkluzivního použití barev:** ```css /* ❌ Bad: Using only color to indicate status */ .error { color: red; } .success { color: green; } /* ✅ Good: Color plus icons and context */ .error { color: #d32f2f; border-left: 4px solid #d32f2f; } .error::before { content: "⚠️"; margin-right: 8px; } .success { color: #2e7d32; border-left: 4px solid #2e7d32; } .success::before { content: "✅"; margin-right: 8px; } ``` **Nad rámec základních požadavků na kontrast:** - Testujte své barevné volby pomocí simulátorů barvosleposti - Používejte vzory, textury nebo tvary vedle barevného kódování - Zajistěte, aby interaktivní stavy byly rozlišitelné i bez barev - Zvažte, jak váš design vypadá v režimu vysokého kontrastu ✅ **Otestujte přístupnost barev**: Použijte nástroje jako [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/), abyste viděli, jak váš web vypadá pro uživatele s různými typy vnímání barev. ### Indikátory zaměření a návrh interakcí Indikátory zaměření jsou digitálním ekvivalentem kurzoru – ukazují uživatelům klávesnice, kde se na stránce nacházejí. Dobře navržené indikátory zaměření zlepšují zážitek pro všechny tím, že činí interakce jasnými a předvídatelnými. **Moderní osvědčené postupy pro indikátory zaměření:** ```css /* Enhanced focus styles that work across browsers */ button:focus-visible { outline: 2px solid #0066cc; outline-offset: 2px; box-shadow: 0 0 0 4px rgba(0, 102, 204, 0.25); } /* Remove focus outline for mouse users, preserve for keyboard users */ button:focus:not(:focus-visible) { outline: none; } /* Focus-within for complex components */ .card:focus-within { box-shadow: 0 0 0 3px rgba(74, 144, 164, 0.5); border-color: #4A90A4; } /* Ensure focus indicators meet contrast requirements */ .custom-focus:focus-visible { outline: 3px solid #ffffff; outline-offset: 2px; box-shadow: 0 0 0 6px #000000; } ``` **Požadavky na indikátory zaměření:** - **Viditelnost**: Musí mít minimální kontrastní poměr 3:1 vůči okolním prvkům - **Šířka**: Minimálně 2px tloušťka kolem celého prvku - **Trvalost**: Měly by zůstat viditelné, dokud se zaměření nepřesune jinam - **Rozlišení**: Musí být vizuálně odlišné od ostatních stavů uživatelského rozhraní > 💡 **Tip pro návrh**: Skvělé indikátory zaměření často kombinují obrys, stín a změny barvy, aby zajistily viditelnost na různých pozadích a v různých kontextech. ✅ **Proveďte audit indikátorů zaměření**: Procházejte svůj web pomocí klávesy Tab a zaznamenejte, které prvky mají jasné indikátory zaměření. Jsou některé obtížně viditelné nebo zcela chybí? ### Sémantické HTML: Základ přístupnosti Sémantické HTML je jako poskytnutí GPS systému pro asistivní technologie na vašem webu. Když používáte správné HTML prvky pro jejich zamýšlený účel, v podstatě poskytujete čtečkám obrazovky, klávesnicím a dalším nástrojům podrobnou mapu, která pomáhá uživatelům efektivně navigovat. Tady je analogie, která mi opravdu sedla: sémantické HTML je rozdíl mezi dobře organizovanou knihovnou s jasnými kategoriemi a užitečnými značkami versus skladištěm, kde jsou knihy rozházené náhodně. Obě místa mají stejné knihy, ale kde byste raději něco hledali? Přesně tak! **Stavební kameny přístupné struktury stránky:** ```html

Your Site Name

Article Title

Published on

First Section

Content that relates to this section...

Second Section

More related content...

``` **Proč sémantické HTML mění přístupnost:** | Sémantický prvek | Účel | Výhoda pro čtečky obrazovky | |------------------|---------|----------------------| | `
` | Hlavička stránky nebo sekce | "Banner landmark" - rychlá navigace na začátek | | `