V delu nekaterih ljudi vedno znova vidim atribute vlog. Tudi sam ga uporabljam, vendar nisem prepričan o njegovem učinku.
Na primer:
<header id="header" role="banner">
Header stuff in here
</header>
Ali:
<section id="facebook" role="contentinfo">
Facebook stuff in here
</section>
Ali:
<section id="main" role="main">
Main content stuff in here
</section>
Ali je ta atribut vloge potreben?
Ali je ta atribut boljši za semantiko?
Ali izboljšuje SEO?
Seznam vlog je na voljo tukaj, vendar vidim, da si nekateri izmišljujejo svoje. Ali je to dovoljeno ali pravilna uporaba atributa vloge?
Kaj menite o tem?
Večina vlog, ki jih vidite, je bila opredeljena kot del standarda ARIA 1.0 in pozneje vključena v HTML5. Nekateri novi elementi HTML5 (dialog, main itd.) celo temeljijo na prvotnih vlogah ARIA.
http://www.w3.org/TR/wai-aria/
Obstajata dva glavna razloga za uporabo vlog poleg izvornega semantičnega elementa.
Razlog št. 1. Nadomeščanje vloge, kadar ni ustreznega elementa v jeziku gostitelja ali je bil iz različnih razlogov uporabljen manj pomensko ustrezen element.
V tem primeru je bila uporabljena povezava, čeprav je nastala funkcionalnost bolj podobna gumbu kot navigacijski povezavi.
<a href="#" role="button" aria-label="Delete item 1">Delete</a>
Bralniki zaslona bodo to slišali kot gumb (v nasprotju s povezavo), poleg tega pa lahko uporabite selektor atributov CSS, da se izognete class-itisu in div-itisu.
*[role="button"] {
/* style these a buttons w/o relying on a .button class */
}
Razlog št. 2. Podpiranje vloge izvornega elementa za podporo brskalnikom, ki so uvedli vlogo ARIA, vendar še niso uvedli vloge izvornega elementa.
Na primer, vloga "main" je v brskalnikih podprta že več let, vendar je relativno nov dodatek k HTML5, zato mnogi brskalniki še ne podpirajo semantike za <main>
.
<main role="main">…</main>
To je tehnično gledano odveč, vendar nekaterim uporabnikom pomaga, nobenemu pa ne škodi. V nekaj letih bo ta tehnika verjetno postala nepotrebna.
Napisali ste tudi:
Vidim, da si nekateri ljudje izmišljujejo svoje. Ali je to dovoljeno ali pravilna uporaba atributa vloga?
To je pravilna uporaba atributa, razen če ni vključena prava vloga. Brskalniki bodo uporabili prvo prepoznano vlogo na seznamu žetonov.
<span role="foo link note bar">...</a>
Na seznamu sta veljavni vlogi samo link
in note
, zato bo uporabljena vloga link, ker je prva. Če uporabljate vloge po meri, se prepričajte, da niso v nasprotju z nobeno opredeljeno vlogo v ARIA ali gostiteljskem jeziku, ki ga uporabljate (HTML, SVG, MathML itd.).
Kot razumem, so bile vloge prvotno opredeljene v jeziku XHTML, vendar so bile odpravljene. Vendar jih zdaj opredeljuje HTML 5, glej tukaj: https://www.w3.org/WAI/PF/aria/roles#abstract_roles_header.
Namen atributa vloge je, da programski opremi za razčlenjevanje določi natančno funkcijo elementa (in njegovih otrok) kot dela spletne aplikacije. To je večinoma namenjeno dostopnosti za bralnike zaslona, vendar je uporabno tudi za vgrajene brskalnike in programe za strganje zaslona. Da bi bil uporaben za nenavadnega odjemalca HTML, mora biti atribut nastavljen na eno od vlog iz specifikacije, ki sem jo povezal. Če si izmislite svojo, ta 'prihodnja' funkcionalnost ne more 'delovati - bolje bi bilo napisati komentar.
Praktičnost tukaj: http://www.accessibleculture.org/articles/2011/04/html5-aria-2011/
Ali je ta atribut vloge potreben?
Odgovor: Da.
Zagotavlja vam: