Hoppa till innehåll
SilktideHjälp

Motstridig ARIA-roll

Silktide kontrollerar element som anger en uttrycklig roll mot den betydelse de redan har i HTML. Det rapporterar roller som inte är tillåtna för det elementet och roller som bara upprepar vad elementet redan betyder.

<!-- Problem: ett nav-element kan inte vara en knapp -->
<nav role="button">…</nav>

<!-- Problem: överflödigt, nav har redan denna roll -->
<nav role="navigation">…</nav>

<!-- Åtgärd: låt elementet tala för sig självt -->
<nav>…</nav>

Varför detta är viktigt

Varje -element har en inbyggd betydelse som förlitar sig på. En -roll som strider mot denna betydelse skapar ett element som ser ut som en sak men meddelar att det är en annan – en användare av en kan höra ”länk” för något som fungerar som en knapp, med kortkommandon och förväntningar som inte längre stämmer. Överflödiga roller är mindre skadliga, men skapar brus, ökar risken för framtida misstag och signalerar att ARIA används där det inte behövs.

Så här åtgärdar du det

  1. För en motstridig roll: ta antingen bort rollen eller byt till ett element som verkligen har den betydelse du vill ha – om det ska fungera som en knapp använder du <button>.
  2. För en överflödig roll, till exempel <nav role="navigation"> eller <button role="button">, tar du bort rollattributet. Elementet tillhandahåller redan rollen självt.

Så här testar Silktide detta

  1. Hitta alla element på sidan som har ett role-attribut och hoppa över roller som är okända eller abstrakta (de rapporteras av Ogiltig ARIA-roll).
  2. Jämför rollen med de kombinationer som ARIA in HTML-specifikationen tillåter för elementet och rapportera roller som elementet inte tillåter.
  3. Rapportera roller som duplicerar elementets egen implicita roll.
  4. När ett rollattribut innehåller flera roller beaktas endast den första.

Resultaten skiljer mellan de två fallen, så att du kan prioritera konflikter framför överflödiga roller.

Felsökning

Den överflödiga rollen finns där för äldre webbläsare

Uttryckliga landmärkesroller som role="navigation" rekommenderades en gång som en säkerhetsåtgärd för äldre hjälpmedelsteknik. Stödet för de inbyggda elementen har varit allmänt i flera år, och den duplicerade rollen kostar nu mer i underhåll än den ger tillbaka. Ta bort den eller resultatet om er supportpolicy kräver att den behålls.

Den här kontrollen rapporterar inget trots att jag förväntar mig resultat

ARIA-testning kan inaktiveras per webbplats. Kontrollera webbplatsens avancerade inställningar.

Läs mer

Senast uppdaterad

Var den här sidan hjälpsam?