ARIA (Accessible Rich Internet Applications) to zestaw atrybutow HTML, które pomagają uczynic dynamiczne treści i zaawansowane interfejsy dostepnymi dla technologii wspomagajacych. Możesz myslec o ARIA jak o dodatkowych hieroglifach na ścianie swiatyni - dopisuja znaczenie tam, gdzie sam HTML nie wystarcza.
Nie używaj ARIA, jeśli możesz użyć natywnego HTML!
1<!-- ŹLE - ARIA na divie -->
2<div rolę="button" tabindex="0" aria-pressed="false">Kliknij mnie</div>
3
4<!-- DOBRZE - natywny HTML -->
5<button>Kliknij mnie</button>Natywny
<button> automatycznie jest fokusowalny, reaguje na Enter i Spacje, i jest rozpoznawany przez czytniki ekranowe. ARIA stosuj tylko wtedy, gdy natywny HTML nie oferuje potrzebnej funkcjonalnosci.Role definiuja, czym jest element w kontekscie interfejsu.
1<!-- Landmark roles -->
2<div rolę="banner">Nagłówek strony</div>
3<div rolę="navigation">Nawigacja</div>
4<div rolę="main">Główna tresc</div>
5<div rolę="complementary">Sidebar</div>
6<div rolę="contentinfo">Stopka</div>
7
8<!-- Widget roles -->
9<div rolę="tablist">
10 <button rolę="tab" aria-selected="true">Zakładka 1</button>
11 <button rolę="tab" aria-selected="false">Zakładka 2</button>
12</div>
13<div rolę="tabpanel">Tresc zakładki</div>
14
15<!-- Alert rolę -->
16<div rolę="alert">Wystapil błąd! Sprawdz formularz.</div>Nadaje elementowi niewidoczna etykiete tekstowa.
1<!-- Przycisk z ikona - bez tekstu widocznego -->
2<button aria-label="Zamknij okno dialogowe">
3 <span class="icon">X</span>
4</button>
5
6<!-- Nawigacja z etykieta -->
7<nav aria-label="Nawigacja po wystawach">
8 <ul>...</ul>
9</nav>Laczy element z dodatkowym opisem.
1<label for="password">Haslo:</label>
2<input type="password" id="password"
3 aria-describedby="password-help">
4<p id="password-help">
5 Haslo musi mieć minimum 8 znaków, wielka litere i cyfre.
6</p>Ukrywa element przed czytnikami ekranowymi (ale pozostaje widoczny wizualnie).
1<!-- Ikona dekoracyjna - ukryta przed czytnikiem -->
2<button>
3 <span aria-hidden="true" class="icon">☰</span>
4 Menu
5</button>
6
7<!-- UWAGA: Nigdy nie ukrywaj treści, która jest ważna! -->Informuje czytnik ekranowy o dynamicznych zmianach na stronie.
1<!-- Region live - czytnik oglosi zmiany -->
2<div aria-live="polite" id="status">
3 <!-- Tresc aktualizowana dynamicznie -->
4</div>
5
6<!-- Pilne powiadomienie -->
7<div aria-live="assertive" rolę="alert">
8 Sesja wygasnie za 2 minuty!
9</div>Wartosci
aria-live:off - brak ogloszen (domyślnie)polite - poczeka az czytnik skonczy biezace zdanieassertive - przerwie biezace czytanie natychmiastInformuje o stanie rozwijanych elementow.
1<button aria-expanded="false" aria-controls="menu">
2 Menu nawigacyjne
3</button>
4<nav id="menu" hidden>
5 <ul>
6 <li><a href="/">Strona główna</a></li>
7 <li><a href="/exhibitions">Wystawy</a></li>
8 </ul>
9</nav>Walidacja formularzy.
1<label for="name">Imie (wymagane):</label>
2<input type="text" id="name"
3 aria-required="true"
4 aria-invalid="false">
5
6<!-- Po blednej walidacji -->
7<input type="email" id="email"
8 aria-required="true"
9 aria-invalid="true"
10 aria-describedby="email-error">
11<p id="email-error" rolę="alert">
12 Podaj poprawny adres e-mail.
13</p>Pamietaj o piecciu zasadach ARIA:
rolę="heading" do <p>aria-hidden="true" na fokusowalnych elementachAby sprawdzic, czy Twoje atrybuty ARIA działaja poprawnie:
Otwórz stronę, wyłacz monitor (lub zamknij oczy) i spróbuj nawigowac po niej uzywajac tylko klawiatury i czytnika ekranowego. Czy wszystkie informacje są dostępne? Czy wiesz, co robi każdy przycisk?
ARIA to potężne narzędzie w rekach budowniczego dostępności - jak magiczne amulety, które dodają elementom ukryta moc rozumiana przez czytniki ekranowe. Ale tak jak amulety w świątyniach egipskich, trzeba ich używać z wiedza i umiarem. Nadmiar ARIA może bardziej zaszkodzic niż pomóc!