Kodėl buvo pridėtas atributas roll?
sobes.tech AI
Atsakymas iš AI
ARIA (Accessible Rich Internet Applications) atributas role naudojamas aiškiai nustatyti vartotojo sąsajos elemento tipą. Tai padeda pagalbinėms technologijoms, tokioms kaip ekrano skaitytuvai, suprasti elemento paskirtį ir perduoti šią informaciją naudotojams su negalia. Jis papildo HTML semantiką, ypač elementams, kurie neturi įmontuotos semantikos arba kai standartinė semantika yra nepakankama.
Pavyzdžiai:
- Elementui
div, kuriam priskirtabuttonrolė, ekrano skaitytuvas jį suvoks kaip mygtuką, net jei jis neturi standartinio elgesio ir HTML mygtuko semantikos.
<div role="button" tabindex="0" aria-pressed="false">
Spustelėk mane
</div>
- Rola
navigationant elementonav(norsnavjau turi įmontuotą navigacijos semantiką) gali papildomai pagerinti jos interpretaciją kai kuriais atvejais.
<nav role="navigation">
<ul>
<li><a href="/">Pradžia</a></li>
</ul>
</nav>
- Kai kurie sudėtingi valdikliai, sukurti remiantis nesemantiniais elementais, gauna savo roles, kad būtų teisingai atvaizduoti:
<div role="tablist">
<button role="tab" aria-selected="true" aria-controls="panel-1" id="tab-1">Tab 1</button>
<button role="tab" aria-selected="false" aria-controls="panel-2" id="tab-2">Tab 2</button>
</div>
<div id="panel-1" role="tabpanel" aria-labelledby="tab-1">
Turinys skirtuke 1.
</div>
<div id="panel-2" role="tabpanel" aria-labelledby="tab-2" hidden>
Turinys skirtuke 2.
</div>
role atributas klasifikuoja elementus pagal jų funkciją ir tikslą, užtikrindamas tikslesnį ir naudingesnį sąveiką naudotojams, naudojantiems pagalbines technologijas. Svarbu naudoti jį kartu su kitais ARIA atributais (pvz., aria-label, aria-expanded, aria-hidden), kurie perduoda elementų būseną ir savybes.
Reikėtų prisiminti:
- Visada pirmenybė teikiama natūraliai HTML5 semantikui. Jei yra tinkamas HTML elementas, naudokite jį vietoje jo elgesio imitacijos su
roleir kitais ARIA atributais. Pavyzdžiui, naudokite<button>vietoje<div role="button">. - Elemento rolės keitimas nekeičia jo įmontuoto elgesio. Pavyzdžiui,
role="button"antdivnepadaro jo fokusavimo ar aktyvavimo Space ar Enter klavišais be papildomo JavaScript.