Naar inhoud springen
SilktideHelp

Conflicterende ARIA-rol

Silktide controleert elementen die een expliciete rol declareren aan de hand van de betekenis die ze al in HTML hebben. Het rapporteert rollen die niet zijn toegestaan voor dat element en rollen die alleen maar herhalen wat het element al betekent.

<!-- Probleem: een nav-element kan geen button zijn -->
<nav role="button">…</nav>

<!-- Probleem: overbodig, nav heeft deze rol al -->
<nav role="navigation">…</nav>

<!-- Oplossing: laat het element voor zichzelf spreken -->
<nav>…</nav>

Waarom dit belangrijk is

Elk -element heeft een ingebouwde betekenis waarop vertrouwt. Een -rol die in strijd is met die betekenis creëert een element dat eruitziet als het ene, maar zichzelf aankondigt als het andere - een -gebruiker kan bijvoorbeeld "link" horen bij iets dat zich als een knop gedraagt, met sneltoetsen en verwachtingen die niet langer overeenkomen. Overbodige rollen zijn minder schadelijk, maar voegen ruis toe, zetten aan tot toekomstige fouten en geven aan dat ARIA wordt gebruikt waar dat niet nodig is.

Zo los je het op

  1. Verwijder bij een conflicterende rol de rol of schakel over naar een element dat daadwerkelijk de gewenste betekenis heeft - als het zich als een knop moet gedragen, gebruik dan <button>.
  2. Verwijder bij een overbodige rol, zoals <nav role="navigation"> of <button role="button">, het role-attribuut. Het element stelt die rol zelf al beschikbaar.

Hoe Silktide dit controleert

  1. Zoek elk element op de pagina met een role-attribuut, waarbij rollen die onbekend of abstract zijn worden overgeslagen (die worden gemeld door Ongeldige ARIA-rol).
  2. Vergelijk de rol met de combinaties die de specificatie ARIA in HTML voor dat element toestaat en rapporteer rollen die het element niet toestaat.
  3. Rapporteer rollen die de eigen impliciete rol van het element dupliceren.
  4. Wanneer een role-attribuut meerdere rollen bevat, wordt alleen de eerste in aanmerking genomen.

In de bevindingen wordt onderscheid gemaakt tussen de twee gevallen, zodat je conflicten boven overbodigheid kunt prioriteren.

Problemen oplossen

De overbodige rol is er voor oudere browsers

Expliciete landmarkrollen zoals role="navigation" werden ooit aanbevolen als vangnet voor oude hulptechnologie. Ondersteuning voor de native elementen is al jaren universeel en de gedupliceerde rol kost nu meer in onderhoud dan deze oplevert. Verwijder de rol of de bevinding goed als je ondersteuningsbeleid vereist dat je de rol behoudt.

Deze controle rapporteert niets, hoewel ik bevindingen verwacht

ARIA-controles kunnen per website worden uitgeschakeld. Controleer de geavanceerde instellingen voor de website.

Meer informatie

Laatst bijgewerkt

Was deze pagina nuttig?

Conflicterende ARIA-rol | Silktide Help