Az akadálymentes weboldalak készítése nem csupán kedvesség, hanem alapvető szakmai követelmény, hogy a fogyatékkal élő felhasználók (például látássérültek, akik képernyőolvasót használnak) is teljes értékű élményt kapjanak. A WCAG (Web Content Accessibility Guidelines) a W3C által kiadott irányelvek gyűjteménye, amelyek célja, hogy a webes tartalmak mindenki számára hozzáférhetők legyenek,
Az irányelvek négy alapelvre épülnek (POUR):
- Érzékelhető (Perceivable): a tartalom többféleképpen is felfogható (pl. képekhez alternatív szöveg).
- Működtethető (Operable): az oldal használható legyen billentyűzettel is.
- Érthető (Understandable): az információ és a működés legyen világos és kiszámítható.
- Robusztus (Robust): a tartalom jól működjön különböző eszközökön és segítő technológiákkal.
Bővebben elérhető például a W3Schools oldalán.
Szemantikus HTML használata
Mindig azt az elemet használd, amit a szabvány ajánl. Arra használjuk a html tageket, amikre valók!
pl. gomb – <button> és nem sima div. Navigációnál <nav>, fejléc, fő tartalom, lábléc, lista stb.
- Az oldal nyelve legyen beállítva. <html lang=”hu”>
- Címsorok helyes használata: <h1> -ből csak 1db legyen, ami ténylegesen a főcím. A további fejezeteket/tartalmi részeket értelemszerűen H2, H3,H4… címsorokkal lássuk el!
- Képeknél: alt attributum használata
- Listák használata ténylegesen a listákhoz, nem sima div, vagy p
- Űrlapok akadálymentesítése: minden beviteli mezőhöz tartozzon
<label> - WAI-ARIA (Accessible Rich Internet Applications)
Fontosabb ARIA attributumok
role
Megmondja a segítő technológiáknak, mi az elem szerepe.
Gyakori példák:
role="button"role="navigation"role="dialog"role="alert"
aria-label
Láthatatlan, de felolvasott címke.
<button aria-label="Bezárás">✖</button>
Hasznos:
- ikon gomboknál
- amikor nincs szöveg a jelemben
aria-labelledby
Egy létező elem szövegét használja címkeként.
Egy létező elem szövegét használja címkeként.
<h2 id="cim">Bejelentkezés</h2>
<form aria-labelledby="cim">
aria-describedby
Kiegészítő magyarázatot ad egy elemhez.
<input id="email" aria-describedby="help">
<p id="help">Az e-mail címed nem osztjuk meg.</p>
aria-hidden
Elrejti az elemet a képernyőolvasók elől.
<span aria-hidden="true">★</span>
Használat:
- díszítő ikonok
- duplikált tartalom
2. Alapvető HTML5 Attribútumok
Sokszor a legegyszerűbb megoldások a leghatékonyabbak. Ne felejtsd el ezeket:
| Attribútum | Hol használjuk? | Miért fontos? |
alt | <img> | Ha a kép nem tölt be, vagy a felhasználó nem látja, a képernyőolvasó ezt olvassa fel. |
lang | <html> | Meghatározza az oldal nyelvét, így a felolvasó szoftver a helyes kiejtést használja. |
title | Bármely elem | További kiegészítő információt nyújt, bár érdemes óvatosan használni, mert nem minden eszköz kezeli jól. |
tabindex | Interaktív elemek | Szabályozza a fókusz sorrendjét a „Tab” billentyű használatakor. A tabindex="0" bevonja az elemet a sorba, a -1 kiveszi. |
3. Formok és Inputok akadálymentesítése
A űrlapok kitöltése kritikus pont. Itt két fő megoldás létezik:
for(a<label>elemen): Összeköti a címkét az inputid-jával. Ezáltal a címkére kattintva is aktiválódik a beviteli mező.required: Jelzi a szoftvernek (és a felhasználónak), hogy a mező kitöltése kötelező.aria-invalid: Ha hiba van a kitöltésben, ezzel jelezhetjük a szoftvernek, hogy javításra van szükség.
Néhány példa
EuroSkills2017-es feladatsor, A-modul, html+css, melyben egy fiktív cég bemutatkozó weboldalát kell elkészíteni.

skip-link használata: Az oldal elején lévő „Skip to content” link alapvető a billentyűzetről navigálók számára, hogy átugorhassák a menüt. TAB billentyűvel próbáld ki!
Szemantikus HTML5 és ARIA szerepkörök: main, header, footer, section… role=”banner”, role=”contentinfo”. Segítenek a képernyőolvasóknak a gyors tájékozódásban.
Navigációs címkék: nav-aria label=”primary” és a nav aria-label=”footer” A fenti menü az elsődleges menü, a footerben pedig van egy másodlagos. Így a látássérült felhasználó tudja, melyik menüben jár éppen.
aria-current=”page”: Ez az attribútum jelzi, hogy éppen melyik menüponton állunk (Home), ami elengedhetetlen az interaktív élményhez.
Dekoratív elemek elrejtése: A 🤖 emoji az aria-hidden=”true” attribútumot kapta, így a felolvasó nem fogja feleslegesen bemondani, hogy „robot arc”, csak a mellette lévő szöveget.
Kép leírása: Az alt szöveg leíró jellegű, és a figcaption osztálya (sr-only) biztosítja, hogy csak a képernyőolvasók lássák a kiegészítő információt.
aria-labelledby: A szekció címének összekötése (features-title) segít a felhasználónak megérteni az adott blokk kontextusát.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
<!doctype html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>EuroSkills Gdansk - AI-driven APIs</title> <meta name="description" content="Discover EuroSkills - GdanksAI– a suite of accessible, SEO‑friendly AI APIs for vision, language, search, and more." /> <meta name="robots" content="index, follow" /> <meta property="og:title" content="NovaAI Suite" /> <meta property="og:description" content="Build smarter apps with a suite of AI‑driven APIs." /> <link rel="stylesheet" href="assets/css/styles.css" /> </head> <body> <a class="skip-link" href="#main">Skip to content</a> <header class="site-header" role="banner"> <div class="container header-inner"> <a class="brand" href="index.html" aria-label="NovaAI home"> <span aria-hidden="true">🤖</span> <strong>EuroSkills - GdanksAI</strong> </a> <nav class="site-nav" aria-label="Primary"> <ul> <li><a href="index.html" aria-current="page">Home</a></li> <li><a href="product.html">Product</a></li> <li><a href="pricing.html">Pricing</a></li> <li><a href="team.html">Team</a></li> </ul> </nav> </div> </header> <main id="main" tabindex="-1"> <section class="hero section"> <div class="container grid-2"> <div class="stack"> <h1 class="display">Welcome to <span class="accent"> GdanskAi</span>!</h1> <h2> Where Innovation Meets Intelligence</h2> <p class="lead">At EuroSkills GdanskAi, we empower businesses with advanced, reliable, and scalable AI solutions. Our mission is to transform the way you communicate, create, and understand the world through state‑of‑the‑art artificial intelligence technologies. Whether you need smarter customer interactions, stunning AI‑generated visuals, or powerful image recognition, our services are designed to elevate your business in every aspect</p> <div class="inline-actions"> <a class="btn btn-primary" href="product.html">Explore Product</a> <a class="btn btn-ghost" href="pricing.html">View Pricing</a> </div> </div> <figure class="media-card"> <img src="assets/img/hero.jpg" alt="Abstract illustration representing AI connections" width="600" height="400" /> <figcaption class="sr-only">Abstract hero illustration</figcaption> </figure> </div> </section> <section class="section" aria-labelledby="features-title"> <div class="container"> <h2 id="features-title">Why GdanksAI?</h2> <div class="cards"> <article class="card"> <h3>Accessible by Design</h3> <p>WCAG‑aligned patterns, semantic docs, and examples make integration inclusive for all users.</p> </article> <article class="card"> <h3>Developer‑Friendly</h3> <p>Clean APIs, clear docs, and predictable responses speed up your delivery.</p> </article> <article class="card"> <h3>Scales with You</h3> <p>From prototypes to production at global scale — with transparent pricing.</p> </article> </div> </div> </section> </main> <footer class="site-footer" role="contentinfo"> <div class="container footer-inner"> <p>© <span id="year">2026</span> GdanskAi Ltd. All rights reserved.</p> <nav aria-label="Footer"> <ul class="inline-list"> <li><a href="#">Privacy</a></li> <li><a href="#">Terms</a></li> <li><a href="#">Login</a></li> </ul> </nav> </div> </footer> </body> </html> |
