AĄBCĆDEĘFGHIJKLŁMNŃOÓPQRSŚTUVWXYZŹŻ
Dostępność

ARIA (Accessible Rich Internet Applications)

Opublikowano: · Aktualizacja:

ARIA (Accessible Rich Internet Applications, formalnie WAI-ARIA) to specyfikacja W3C definiująca zestaw atrybutów, które uzupełniają HTML o semantykę zrozumiałą dla technologii asystujących. Atrybuty role, aria-label, aria-expanded czy aria-live mówią czytnikowi ekranu, czym element jest, jak się nazywa i w jakim jest stanie.

ARIA powstała dla komponentów, których natywny HTML nie wyraża — tabów, accordionów, comboboxów, alertów na żywo. Sama ARIA nie zmienia wyglądu ani zachowania elementu. Natywne elementy HTML mają własną semantykę i zachowanie — ARIA nie zastępuje ich funkcji. Przy komponentach niestandardowych obsługę klawiatury i logikę stanów trzeba dopisać samodzielnie.

Pięć zasad używania ARIA

  • Pierwsza zasada ARIA: nie używaj ARIA, jeśli istnieje natywny element HTML (button, nav, details).
  • Nie zmieniaj natywnej semantyki bez potrzeby (np. <button role="heading">).
  • Każdy interaktywny element z rolą ARIA musi być obsługiwalny klawiaturą.
  • Nie ukrywaj fokusowalnych elementów przez role="presentation" ani aria-hidden="true".
  • Każdy element interaktywny musi mieć dostępną nazwę (accessible name).

Najczęstsze błędy

Raport WebAIM Million (2025) wskazuje korelację: strony używające ARIA mają średnio więcej wykrytych błędów dostępności niż te bez niej. To nie dowód, że ARIA powoduje błędy — częściej źle użyta ARIA aktywnie psuje doświadczenie czytnika ekranu. Typowe problemy to role bez wymaganych atrybutów, sprzeczne stany i „ARIA zamiast HTML”.

Przykład

Przycisk rozwijający panel — aria-expanded komunikuje stan otwarty/zamknięty czytnikowi ekranu. Natywny <button> działa z klawiaturą (Enter/Space) bez dodatkowej implementacji. Skrypt musi natomiast zmieniać stan panelu oraz aktualizować aria-expanded.

Lepsze: natywny <button>
HTML
<button type="button" aria-expanded="false" aria-controls="panel-faq">
  Pokaż odpowiedź
</button>
<div id="panel-faq" hidden>
  Treść odpowiedzi…
</div>
Gorsze: <div> udający przycisk
HTML
<div role="button" tabindex="0" aria-expanded="false">
  Pokaż odpowiedź
</div>

Źródła i dalsza lektura

Sprawdź dostępność swojej strony

Insight uruchamia automatyczne testy wybranych reguł dostępności opartych na WCAG i porządkuje wykryte problemy według priorytetu.

Bez karty kredytowej Raport z datą i źródłami Bez zakładania konta