# Hozzáférhető weboldalak létrehozása ![Minden a hozzáférhetőségről](../../../../translated_images/webdev101-a11y.8ef3025c858d897a403a1a42c0897c76e11b724d9a8a0c0578dd4316f7507622.hu.png) > Sketchnote készítette: [Tomomi Imura](https://twitter.com/girlie_mac) ## Előadás előtti kvíz [Előadás előtti kvíz](https://ff-quizzes.netlify.app/web/) > A web ereje az egyetemességében rejlik. A hozzáférés mindenki számára, függetlenül a fogyatékosságtól, alapvető szempont. > > \- Sir Timothy Berners-Lee, a W3C igazgatója és a World Wide Web feltalálója Van valami, ami meglephet: amikor hozzáférhető weboldalakat készítesz, nem csak a fogyatékkal élőknek segítesz – valójában mindenki számára jobbá teszed a webet! Észrevetted már azokat a járdaszegélyeket az utcasarkokon? Eredetileg kerekesszékek számára tervezték őket, de most már segítenek a babakocsis embereknek, a szállítómunkásoknak, akik kézikocsit használnak, az utazóknak gurulós bőröndökkel, és a kerékpárosoknak is. Pontosan így működik a hozzáférhető webdesign – az egyik csoportot segítő megoldások gyakran mindenki számára előnyösek. Elég menő, igaz? Ebben a leckében azt fogjuk megvizsgálni, hogyan lehet olyan weboldalakat létrehozni, amelyek valóban mindenki számára működnek, függetlenül attól, hogyan böngészik a webet. Felfedezhetsz gyakorlati technikákat, amelyek már beépültek a webes szabványokba, kipróbálhatsz tesztelő eszközöket, és megláthatod, hogyan teszi a hozzáférhetőség a weboldalakat minden felhasználó számára használhatóbbá. A lecke végére magabiztosan tudod majd a hozzáférhetőséget természetes részévé tenni a fejlesztési munkafolyamatodnak. Készen állsz arra, hogy felfedezd, hogyan nyithatja meg a webet milliárdnyi felhasználó előtt az átgondolt tervezés? Merüljünk el benne! > Ezt a leckét elérheted a [Microsoft Learn](https://docs.microsoft.com/learn/modules/web-development-101/accessibility/?WT.mc_id=academic-77807-sagibbon) oldalon! ## Az asszisztív technológiák megértése Mielőtt belevágnánk a kódolásba, szánjunk egy pillanatot arra, hogy megértsük, hogyan tapasztalják meg a webet a különböző képességekkel rendelkező emberek. Ez nem csak elmélet – ezeknek a valós navigációs mintáknak a megértése sokkal jobb fejlesztővé tesz! Az asszisztív technológiák lenyűgöző eszközök, amelyek segítenek a fogyatékkal élőknek a weboldalakkal való interakcióban, oly módon, ami meglephet téged. Ha egyszer megérted, hogyan működnek ezek a technológiák, a hozzáférhető webes élmények létrehozása sokkal intuitívabbá válik. Olyan, mintha megtanulnád a kódodat valaki más szemével látni. ### Képernyőolvasók A [képernyőolvasók](https://en.wikipedia.org/wiki/Screen_reader) meglehetősen kifinomult technológiák, amelyek a digitális szöveget beszéddé vagy Braille kimenetté alakítják. Bár elsősorban látássérült emberek használják őket, rendkívül hasznosak tanulási nehézségekkel küzdő felhasználók, például diszlexiások számára is. Úgy gondolok a képernyőolvasóra, mint egy nagyon okos narrátorra, aki könyvet olvas neked. Logikai sorrendben olvassa fel a tartalmat, bejelenti az interaktív elemeket, mint például "gomb" vagy "link", és billentyűparancsokat biztosít az oldal körüli navigációhoz. De van egy dolog – a képernyőolvasók csak akkor tudják elvégezni a varázslatukat, ha megfelelő struktúrával és értelmes tartalommal építjük fel a weboldalakat. Ez a te feladatod fejlesztőként! **Népszerű képernyőolvasók különböző platformokon:** - **Windows**: [NVDA](https://www.nvaccess.org/about-nvda/) (ingyenes és legnépszerűbb), [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) (beépített) - **macOS/iOS**: [VoiceOver](https://support.apple.com/guide/voiceover/welcome/10) (beépített és nagyon hatékony) - **Android**: [TalkBack](https://support.google.com/accessibility/android/answer/6283677) (beépített) - **Linux**: [Orca](https://wiki.gnome.org/Projects/Orca) (ingyenes és nyílt forráskódú) **Hogyan navigálnak a képernyőolvasók a webes tartalomban:** A képernyőolvasók többféle navigációs módszert kínálnak, amelyek hatékony böngészést tesznek lehetővé a tapasztalt felhasználók számára: - **Szekvenciális olvasás**: Felülről lefelé olvassa a tartalmat, mint egy könyvet követve - **Landmark navigáció**: Ugrás az oldal szekciói között (fejléc, navigáció, fő tartalom, lábléc) - **Fejléc navigáció**: Ugrás a fejlécek között az oldal struktúrájának megértéséhez - **Linkek listája**: Az összes link listájának generálása gyors hozzáféréshez - **Űrlapvezérlők**: Közvetlen navigáció a beviteli mezők és gombok között > 💡 **Egy érdekesség, ami lenyűgözött**: A képernyőolvasó felhasználók 68%-a elsősorban a fejlécek alapján navigál ([WebAIM felmérés](https://webaim.org/projects/screenreadersurvey9/#finding)). Ez azt jelenti, hogy a fejlécstruktúrád olyan, mint egy térkép a felhasználók számára – ha jól csinálod, szó szerint segítesz az embereknek gyorsabban megtalálni a tartalmadat! ### Tesztelési munkafolyamat kiépítése Van egy jó hír – a hatékony hozzáférhetőségi tesztelés nem kell, hogy túlterhelő legyen! Érdemes kombinálni az automatizált eszközöket (nagyszerűek az egyértelmű problémák észlelésére) némi kézi teszteléssel. Íme egy rendszerezett megközelítés, amely a legtöbb problémát észleli anélkül, hogy az egész napodat felemésztené: **Alapvető kézi tesztelési munkafolyamat:** ```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] ``` **Lépésről lépésre tesztelési ellenőrzőlista:** 1. **Billentyűzet navigáció**: Csak a Tab, Shift+Tab, Enter, Space és nyílbillentyűket használd 2. **Képernyőolvasó tesztelés**: Kapcsold be az NVDA-t, VoiceOver-t vagy Narrator-t, és navigálj csukott szemmel 3. **Zoom tesztelés**: Teszteld 200% és 400% nagyítási szinteken 4. **Színkontraszt ellenőrzés**: Ellenőrizd az összes szöveget és UI-komponenst 5. **Fókuszjelző tesztelés**: Győződj meg róla, hogy minden interaktív elemnek látható fókuszállapota van ✅ **Kezdd a Lighthouse-szal**: Nyisd meg a böngésződ DevTools-át, futtass egy Lighthouse hozzáférhetőségi auditot, majd használd az eredményeket a kézi tesztelési fókuszterületek irányítására. ### Zoom és nagyítási eszközök Tudod, amikor néha nagyítasz a telefonodon, mert a szöveg túl kicsi, vagy hunyorogsz a laptop képernyőjén erős napfényben? Sok felhasználó napi szinten támaszkodik nagyítási eszközökre, hogy olvashatóvá tegye a tartalmat. Ez magában foglalja a gyengén látó embereket, az idősebb felnőtteket, és bárkit, aki valaha próbált weboldalt olvasni a szabadban. A modern nagyítási technológiák túlmutatnak azon, hogy egyszerűen csak nagyobbá teszik a dolgokat. Ha megérted, hogyan működnek ezek az eszközök, olyan reszponzív dizájnokat hozhatsz létre, amelyek bármilyen nagyítási szinten funkcionálisak és vonzóak maradnak. **Modern böngésző nagyítási képességek:** - **Oldal nagyítás**: Minden tartalmat arányosan méretez (szöveg, képek, elrendezés) – ez az előnyben részesített módszer - **Csak szöveg nagyítás**: Növeli a betűméretet, miközben megtartja az eredeti elrendezést - **Csípéses nagyítás**: Mobil gesztus támogatás ideiglenes nagyításhoz - **Böngésző támogatás**: Minden modern böngésző támogatja a nagyítást akár 500%-ig anélkül, hogy a funkcionalitás megszakadna **Speciális nagyítási szoftverek:** - **Windows**: [Magnifier](https://support.microsoft.com/windows/use-magnifier-to-make-things-on-the-screen-easier-to-see-414948ba-8b1c-d3bd-8615-0e5e32204198) (beépített), [ZoomText](https://www.freedomscientific.com/training/zoomtext/getting-started/) - **macOS/iOS**: [Zoom](https://www.apple.com/accessibility/mac/vision/) (beépített, fejlett funkciókkal) > ⚠️ **Tervezési szempont**: A WCAG megköveteli, hogy a tartalom 200%-os nagyításnál is funkcionális maradjon. Ezen a szinten a vízszintes görgetésnek minimálisnak kell lennie, és minden interaktív elemnek hozzáférhetőnek kell maradnia. ✅ **Teszteld a reszponzív dizájnodat**: Nagyítsd a böngésződet 200%-ra és 400%-ra. Az elrendezésed elegánsan alkalmazkodik? Még mindig hozzáférsz minden funkcióhoz túlzott görgetés nélkül? ## Modern hozzáférhetőségi tesztelő eszközök Most, hogy megértetted, hogyan navigálnak az emberek a weben asszisztív technológiákkal, nézzük meg azokat az eszközöket, amelyek segítenek hozzáférhető weboldalak építésében és tesztelésében. Gondolj rá így: az automatizált eszközök nagyszerűek az egyértelmű problémák (például hiányzó alt szöveg) észlelésére, míg a kézi tesztelés segít biztosítani, hogy a weboldalad a valós világban is jól használható legyen. Együtt magabiztosságot adnak, hogy a weboldalaid mindenki számára működnek. ### Színkontraszt tesztelés Van egy jó hír: a színkontraszt az egyik leggyakoribb hozzáférhetőségi probléma, de egyben az egyik legkönnyebben javítható is. A jó kontraszt mindenki számára előnyös – a látássérült felhasználóktól kezdve azokig, akik a telefonjukat próbálják olvasni a strandon. **WCAG kontraszt követelmények:** | Szövegtípus | WCAG AA (Minimum) | WCAG AAA (Fokozott) | |-------------|-------------------|---------------------| | **Normál szöveg** (18pt alatt) | 4.5:1 kontraszt arány | 7:1 kontraszt arány | | **Nagy szöveg** (18pt+ vagy 14pt+ félkövér) | 3:1 kontraszt arány | 4.5:1 kontraszt arány | | **UI komponensek** (gombok, űrlapkeretek) | 3:1 kontraszt arány | 3:1 kontraszt arány | **Alapvető tesztelő eszközök:** - [Colour Contrast Analyser](https://www.tpgi.com/color-contrast-checker/) - Asztali alkalmazás színválasztóval - [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/) - Webalapú azonnali visszajelzéssel - [Stark](https://www.getstark.co/) - Tervezőeszköz plugin Figma, Sketch, Adobe XD számára - [Accessible Colors](https://accessible-colors.com/) - Hozzáférhető színpaletták keresése ✅ **Hozz létre jobb színpalettákat**: Kezdd a márkád színeivel, és használj kontraszt ellenőrzőket hozzáférhető variációk létrehozásához. Dokumentáld ezeket a tervezési rendszered hozzáférhető szín tokenjeiként. ### Átfogó hozzáférhetőségi auditálás A leghatékonyabb hozzáférhetőségi tesztelés több megközelítést kombinál. Egyetlen eszköz sem talál meg mindent, így a különböző módszerekkel végzett tesztelési rutin biztosítja az alapos lefedettséget. **Böngésző alapú tesztelés (beépítve a DevTools-ba):** - **Chrome/Edge**: Lighthouse hozzáférhetőségi audit + Hozzáférhetőségi panel - **Firefox**: Hozzáférhetőségi ellenőrző részletes fa nézettel - **Safari**: Audit fül a Web Inspectorban VoiceOver szimulációval **Professzionális tesztelő bővítmények:** - [axe DevTools](https://www.deque.com/axe/devtools/) - Iparági szabvány automatizált tesztelés - [WAVE](https://wave.webaim.org/extension/) - Vizualis visszajelzés hibakiemeléssel - [Accessibility Insights](https://accessibilityinsights.io/) - Microsoft átfogó tesztelő csomagja **Parancssoros és CI/CD integráció:** - [axe-core](https://github.com/dequelabs/axe-core) - JavaScript könyvtár automatizált teszteléshez - [Pa11y](https://pa11y.org/) - Parancssoros hozzáférhetőségi tesztelő eszköz - [Lighthouse CI](https://github.com/GoogleChrome/lighthouse-ci) - Automatizált hozzáférhetőségi pontozás > 🎯 **Tesztelési cél**: Törekedj egy 95+ Lighthouse hozzáférhetőségi pontszámra alapként. Ne feledd, az automatizált eszközök csak a hozzáférhetőségi problémák körülbelül 30-40%-át találják meg – a kézi tesztelés továbbra is elengedhetetlen! ## Hozzáférhetőség építése az alapoktól A hozzáférhetőség sikerének kulcsa, hogy már az első naptól beépítsük az alapokba. Tudom, hogy csábító azt gondolni, hogy "később hozzáadom a hozzáférhetőséget", de ez olyan, mintha megpróbálnál rámpát építeni egy házhoz, miután már felépült. Lehetséges? Igen. Könnyű? Nem igazán. Gondolj a hozzáférhetőségre, mint egy ház tervezésére – sokkal könnyebb a kerekesszékes hozzáférhetőséget beépíteni a kezdeti építészeti tervekbe, mint utólag mindent átalakítani. ### A POUR elvek: A hozzáférhetőség alapja A Webes Tartalom Hozzáférhetőségi Irányelvek (WCAG) négy alapvető elvre épülnek, amelyek a POUR szót alkotják. Ne aggódj – ezek nem száraz akadémiai fogalmak A színek erőteljesek a kommunikációban, de soha nem szabad, hogy csak színekkel közvetíts fontos információt. A színeken túlmutató tervezés robusztusabb, befogadóbb élményeket teremt, amelyek több helyzetben működnek. **Tervezés színlátási különbségekre:** Körülbelül a férfiak 8%-ának és a nők 0,5%-ának van valamilyen színlátási különbsége (gyakran "színtévesztésnek" nevezik). A leggyakoribb típusok: - **Deuteranopia**: Nehézség a piros és zöld megkülönböztetésében - **Protanopia**: A piros halványabbnak tűnik - **Tritanopia**: Nehézség a kék és sárga megkülönböztetésében (ritka) **Befogadó színstratégiák:** ```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; } ``` **A kontrasztkövetelményeken túl:** - Teszteld színválasztásaid színtévesztés-szimulátorokkal - Használj mintákat, textúrákat vagy formákat a színkódolás mellett - Biztosítsd, hogy az interaktív állapotok szín nélkül is megkülönböztethetők legyenek - Gondolj arra, hogyan néz ki a design magas kontrasztú módban ✅ **Teszteld a színek hozzáférhetőségét**: Használj eszközöket, mint például a [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/), hogy megnézd, hogyan jelenik meg az oldalad különböző színlátási típusokkal rendelkező felhasználóknak. ### Fókuszjelzők és interakciótervezés A fókuszjelzők a digitális kurzor megfelelői – megmutatják a billentyűzetet használó felhasználóknak, hogy hol vannak az oldalon. Jól megtervezett fókuszjelzők mindenki számára javítják az élményt, mivel egyértelművé és kiszámíthatóvá teszik az interakciókat. **Modern fókuszjelzők legjobb gyakorlatai:** ```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; } ``` **Fókuszjelző követelmények:** - **Láthatóság**: Legalább 3:1 kontrasztarány a környező elemekkel - **Szélesség**: Minimum 2px vastagság az elem körül - **Állandóság**: Láthatónak kell maradnia, amíg a fókusz máshová nem kerül - **Megkülönböztetés**: Vizuálisan különböznie kell más UI állapotoktól > 💡 **Tervezési tipp**: A nagyszerű fókuszjelzők gyakran kombinálják a körvonalat, box-shadow-t és színváltozásokat, hogy különböző hátterek és kontextusok között is láthatóak legyenek. ✅ **Auditáld a fókuszjelzőket**: Tab-bal navigálj végig az oldaladon, és jegyezd fel, mely elemeknek van egyértelmű fókuszjelzője. Van olyan, amelyik nehezen látható vagy teljesen hiányzik? ### Szemantikus HTML: A hozzáférhetőség alapja A szemantikus HTML olyan, mintha segítő technológiáknak GPS-t adnál a weboldaladhoz. Ha a megfelelő HTML elemeket használod a rendeltetésüknek megfelelően, gyakorlatilag részletes térképet biztosítasz képernyőolvasóknak, billentyűzeteknek és más eszközöknek, hogy hatékonyan navigáljanak. Egy analógia, ami igazán megvilágította számomra: a szemantikus HTML olyan, mint egy jól szervezett könyvtár, egyértelmű kategóriákkal és hasznos táblákkal, szemben egy raktárral, ahol a könyvek véletlenszerűen vannak szétszórva. Mindkét helyen ugyanazok a könyvek vannak, de melyikben próbálnál inkább keresni valamit? Pontosan! **A hozzáférhető oldalstruktúra építőkövei:** ```html

Your Site Name

Article Title

Published on

First Section

Content that relates to this section...

Second Section

More related content...

``` **Miért alakítja át a szemantikus HTML a hozzáférhetőséget:** | Szemantikus elem | Cél | Képernyőolvasó előny | |------------------|-----|---------------------| | `
` | Oldal vagy szakasz fejléc | "Banner landmark" - gyors navigáció a tetejére | | `