Miért lett hozzáadva a roll attribútum?
sobes.tech MI
Válasz az MI-től
Az role attribútum az ARIA (Accessible Rich Internet Applications) rendszerében arra szolgál, hogy egy elem felhasználói felületének típusát egyértelműen meghatározza. Ez segíti a segédeszközöket, például a képernyőolvasókat, abban, hogy megértsék az elem funkcióját, és ezt az információt a korlátozott képességekkel rendelkező felhasználókhoz továbbítsák. Kiegészíti a HTML szemantikai jelentését, különösen azoknál az elemeknél, amelyek nem rendelkeznek beépített szemantikával, vagy amikor a szabványos szemantika nem elegendő.
Például:
- Egy
divelemrole="button"-nal a képernyőolvasóként működő eszközök úgy érzékelik, mint egy gombot, még akkor is, ha nincs alapértelmezett viselkedése vagy HTML-gomb szemantikája.
<div role="button" tabindex="0" aria-pressed="false">
Kattints rám
</div>
- A
navigationszerep anavelem esetében (bár anavmár rendelkezik beépített navigációs szemantikai jelentéssel) bizonyos esetekben tovább javíthatja az értelmezést.
<nav role="navigation">
<ul>
<li><a href="/">Főoldal</a></li>
</ul>
</nav>
- Néhány összetettebb widget, amely nem szemantikus elemekből készült, a helyes megjelenítés érdekében saját szerepeket kap:
<div role="tablist">
<button role="tab" aria-selected="true" aria-controls="panel-1" id="tab-1">Fül 1</button>
<button role="tab" aria-selected="false" aria-controls="panel-2" id="tab-2">Fül 2</button>
</div>
<div id="panel-1" role="tabpanel" aria-labelledby="tab-1">
Az 1. fül tartalma.
</div>
<div id="panel-2" role="tabpanel" aria-labelledby="tab-2" hidden>
A 2. fül tartalma.
</div>
Az role attribútum az elemeket funkciójuk és céljuk szerint osztályozza, biztosítva a pontosabb és hasznosabb interakciót az assistív technológiákat használó felhasználók számára. Fontos, hogy más ARIA attribútumokkal (például aria-label, aria-expanded, aria-hidden) együtt használjuk, amelyek az elemek állapotát és tulajdonságait közvetítik.
Emlékezzünk:
- A natív HTML5 szemantika mindig elsőbbséget élvez. Ha létezik megfelelő HTML elem, használjuk azt a
roleés más ARIA attribútumok által szimulált viselkedés helyett. Például használjon<button>-t a<div role="button">helyett. - Az elem szerepének megváltoztatása nem változtatja meg annak beépített viselkedését. Például a
role="button"egydiv-en nem teszi fókuszálhatóvá vagy aktiválhatóvá Space vagy Enter billentyűvel JavaScript nélkül.