Prečo bol atribút roll pridaný?
sobes.tech AI
Odpoveď od AI
Atribút role sa využíva v ARIA (Accessible Rich Internet Applications) na jasné určenie typu prvku používateľského rozhrania. To pomáha asistenčným technológiám, ako sú čítače obrazovky, pochopiť účel prvku a preniesť tieto informácie používateľom so zrakovým postihnutím. Dopĺňa semantiku HTML, najmä pre prvky, ktoré nemajú zabudovanú semantiku, alebo keď štandardná semantika nestačí.
Napríklad:
- Prvok
div, ktorému je pridelená rolabutton, bude vnímaný čítačom obrazovky ako tlačidlo, aj keď nemá štandardné správanie a semantiku HTML tlačidla.
<div role="button" tabindex="0" aria-pressed="false">
Klikni ma
</div>
- Rola
navigationna prvkunav(hocinavuž má zabudovanú semantiku navigácie) môže ďalej zlepšiť jej interpretáciu v niektorých prípadoch.
<nav role="navigation">
<ul>
<li><a href="/">Domov</a></li>
</ul>
</nav>
- Niektoré zložité widgety, vytvorené na základe neselektívnych prvkov, získavajú svoje role pre správne zobrazenie:
<div role="tablist">
<button role="tab" aria-selected="true" aria-controls="panel-1" id="tab-1">Karta 1</button>
<button role="tab" aria-selected="false" aria-controls="panel-2" id="tab-2">Karta 2</button>
</div>
<div id="panel-1" role="tabpanel" aria-labelledby="tab-1">
Obsah karty 1.
</div>
<div id="panel-2" role="tabpanel" aria-labelledby="tab-2" hidden>
Obsah karty 2.
</div>
Atribút role klasifikuje prvky podľa ich funkcie a cieľa, zabezpečujúc presnejšiu a užitočnejšiu interakciu pre používateľov využívajúcich asistenčné technológie. Je dôležité ho používať spolu s ďalšími ARIA atribútmi (napríklad aria-label, aria-expanded, aria-hidden), ktoré prenášajú stav a vlastnosti prvkov.
Treba mať na pamäti:
- Vždy sa uprednostňuje nativná semantika HTML5. Ak existuje vhodný HTML prvok, používajte ho namiesto napodobňovania jeho správania cez
rolea ďalšie ARIA atribúty. Napríklad, používajte<button>namiesto<div role="button">. - Zmena roly prvku nemení jeho zabudované správanie. Napríklad,
role="button"nadivho neurobí fokusovateľným alebo aktivovateľným stlačením Space alebo Enter bez ďalšieho JavaScriptu.