Přejít k navigační liště

Zdroják » Webdesign » Orientační body WAI-ARIA pro přístupnější web

Orientační body WAI-ARIA pro přístupnější web

Články Webdesign

WAI-ARIA je technologie umožňující popsat obsah nebo chování webů tak, aby byly snadno dostupné i zrakově nebo jinak postiženým uživatelům.

Nálepky:

Článek původně vyšel na autorově webu Vzhůru dolů.

Asistivní technologie – občas se nepřesně říká slepecké čtečky – umožňují provoz ve dvou režimech:

  • Pasivně-sekvenční, kdy web prochází pomocí nadpisové osnovy dokumentu. Pro uživatele je to příjemné asi jako ovládání webu tabulátorem. Takže jde to, ale dře to.
  • Po hendikepovaného uživatele je pohodlnější strukturovaný režim, ve kterém čtečka nabízí konkrétní oblasti stránky.

Ten druhý režim právě umožňují WAI-ARIA orientační body (landmarks). Přidání do webu je otázka chvilky a pomůžete tím mnoha lidem, takže pokud je ještě nepoužíváte, čtěte dál. Do HTML prostě přidáte pár atributů navíc.

Tyhle orientační body se určitě naučte

  • role="banner" – ne banner, ale třeba název webu nebo logo
  • role="navigation" – navigace; může jich být na stránce více
  • role="main" – hlavní obsah stránky
  • role="search" – vyhledávání na stránce
  • role="complementary" – doplňkový obsah, obvykle „boční lišta“
  • role="contentinfo" – informace o obsahu, na webech nejčastěji něco jako patička

Pokud teď v hlavě nemáte kapacitu na všechny, naučte se zatím navigation amain. Skok na navigaci a obsah je pro uživatele asistivních technologií nejzásadnější. Na ostatní se ale nevykašlete, naučte se je časem taky.

Další možnosti WAI-ARIA

Hlavně pro potřeby psaní webových aplikací se kromě orientačních bodů hodí znát i další typy ARIA atributů:

  • Označení widgetů – přidání významu komponentám uživatelského rozhraní. Například role="alert" pro časově omezené upozornění uživateli. Nebo tab a tabpanel pro vyznačení záložkové navigace uvnitř stránky a menu, menuitem, menubar pro dropdown navigaci.
  • Označení struktury dokumentu – například role="article" pro označení atomické části hlavního obsahu. Může to být článek v seznamu článků, položka ve výpisu produktů nebo třeba role="presentation" pro popis elementu, který je použitý jen pro prezentaci obsahu a nechceme zachovat jeho sémantický význam. Jak se vám líbí třeba <table role="presentation">? Krásné, že?

Ani tím ale možnosti WAI-ARIA nekončí. Orientační body patří do kategorie rolí. Dalšími kategoriemi ještě jsou stavy a vlastnosti. Možností jejich využití v aplikacích je hodně. Příkladem budiž hlášení počtu zbývajících znaků v textovém poli formuláře. Pokud vás to zajímá více, doporučím seriál Radka Pavlíčka.

Sami vidíte, že WAI-ARIA je sémanticky (významově) daleko bohatší než běžné HTML. Kromě pomoci znevýhodněným uživatelům je tedy možné atributy využít v CSS nebo Javascriptu jako selektor.

Pár příkladů z Bootstrapu

Pojďme si užitečnost ARIA atributů ukázat na dvou komponentách z Bootstrapu 4. První bude skupina tlačítek:

<div class="btn-group" role="group" aria-label="Zvolte akci">
  <button type="button" class="btn btn-secondary">První akce</button>
  <button type="button" class="btn btn-secondary">Druhá akce</button>
</div>

Atribut role="group" tady asistivním technologií sděluje, že jde o skupinu prvků. Prvek samotný se pak nezařadí do struktury sekvenčního procházení stránky. aria-label tady je namísto skrytého nadpisu (cože, vy ještě pro přístupnost používáte skryté nadpisy?) – je to text, který asistivní technologie přečte pro označení téhle části stránky.

A ještě kousek z bootstrapího dropdown menu:

<div class="dropdown open">
  <button class="btn btn-secondary dropdown-toggle" type="button" 
    id="dropdown-1" data-toggle="dropdown" 
    aria-haspopup="true" aria-expanded="false">
    Zvolte akci
  </button>
  <div class="dropdown-menu" aria-labelledby="dropdown-1">
    <a class="dropdown-item" href="#">První akce</a>
    <a class="dropdown-item" href="#">Druhá akce</a>
  </div>
</div>

Atribut aria-haspopup="true" říká, že po aktivaci tohoto elementu vyskočí jiný, který je ve vizuální hierarchii výše. Prostě popup. aria-expanded="false" říká, že tohle je element sice „rozkliknutelný“, ale teď „nerozkliknutý“. Použitelné třeba při „rozklikávání“ stromových struktur.aria-labelledby="dropdown-1" je sestra od aria-label. Tahle ale jen říká, kde asistivní technologie najde popis sekce v existující struktuře HTML.

Chcete další praktické ukázky bez Bootstrapu? Tady jich je devět moc pěkných.

Můžu místo role použít HTML5 tagy?

Co třeba <nav> namísto <div role="navigation">? To bych nedělal. U HTML5 tagů pořád neexistuje plná podpora jejich sémantického propojení s asistivními technologiemi. WAI-ARIA je na tom podle mých informací výrazně lépe. Je ale možné zápisy kombinovat – <nav role="navigation">. Sémantika pomocí WAI-ARIA a zpřehlednění pomocí HTML5 tagu? OK, jinak ale ty HTML5 značky zase taková výhra nejsou. Jinými slovy – HTML5 tagy jsou volitelné, WAI-ARIA povinná.

Jak testovat?

ARIA role umí zobrazit rozšíření Web Developer, které je dostupné pro Chrome, Firefox nebo Operu. Na Apple výrobcích to jde „z pohledu“ hendikepovaného uživatele testovat pomocí nativního rozšíření Voice Over (OS X, iOS).

Na závěr si v krátkém videu kromě základů WAI-ARIA ukážeme demo použití s VoiceOver. To je čtečka vestavěná na Macu.

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře

Přístupnost není jen o splnění norem: nový pohled na inkluzivní design

Přístupnost a inkluze možná nepatří mezi nejžhavější témata digitálního světa – dokud o nich nezačne mluvit Vitaly Friedman. Na WebExpo 2024 předvedl, že inkluzivní design není jen o splněných checkboxech, ale hlavně o lidech. S energií sobě vlastní obrátil zažité přístupy naruby a ukázal, že skutečně přístupný web je nejen možný, ale i nezbytný.

Efektivnější vývoj UI nebo API: Co si odnést z WebExpo 2025?

Různé
Komentáře: 0
Jak snadno implementovat moderní uživatelské rozhraní? Které funkce brzdí rychlost vašeho webu? A kdy raději sami přibrzdit, abychom využitím AI nepřekročili etické principy? Debatu aktuálních dev témat rozdmýchá sedmnáctý ročník technologické konference WebExpo, která proběhne v Praze od 28. do 30. května. Který talk či workshop si rozhodně nenechat ujít? Toto je náš redakční výběr z vývojářských hroznů.

Zapřáhněte AI jako nikdy předtím. Květnová konference WebExpo přivítá hvězdy technologického světa

Od 28. do 30. května 2025 promění pražský Palác Lucerna na tři dny technologická konference WebExpo. Na programu je více než 80 přednášek a workshopů od expertů z celého světa. WebExpo tradičně propojuje vývojáře, designéry, marketéry i byznysové lídry a nabízí praktické dovednosti, strategické myšlení a přináší nejnovější trendy nejen v oblasti AI.