Gå til indhold
SilktideHjælp

Modstridende ARIA-rolle

Silktide tjekker elementer, der angiver en eksplicit rolle, i forhold til den betydning, de allerede har i HTML. Det rapporterer roller, der ikke er tilladt på det pågældende element, samt roller, der blot gentager det, elementet allerede betyder.

<!-- Problem: et nav-element kan ikke være en knap -->
<nav role="button">…</nav>

<!-- Problem: overflødig, nav har allerede denne rolle -->
<nav role="navigation">…</nav>

<!-- Løsning: lad elementet tale for sig selv -->
<nav>…</nav>

Hvorfor dette er vigtigt

Alle -elementer har en indbygget betydning, som er afhængig af. En -rolle, der er i modstrid med den betydning, skaber et element, der ser ud som én ting, men præsenterer sig selv som noget andet – en -bruger kan høre "link" om noget, der opfører sig som en knap, med tastaturgenveje og forventninger, der ikke længere stemmer overens. Overflødige roller er mindre skadelige, men tilfører støj, inviterer til fremtidige fejl og signalerer, at ARIA bruges, hvor det ikke er nødvendigt.

Sådan løser du det

  1. For en modstridende rolle skal du enten fjerne rollen eller skifte til et element, der faktisk har den betydning, du ønsker – hvis det skal fungere som en knap, skal du bruge <button>.
  2. For en overflødig rolle som <nav role="navigation"> eller <button role="button"> skal du slette rolleaftributten. Elementet eksponerer allerede den rolle af sig selv.

Sådan tester Silktide dette

  1. Find alle elementer på siden med en role-attribut, og spring roller over, der er ukendte eller abstrakte (de rapporteres af Ugyldig ARIA-rolle).
  2. Sammenlign rollen med de kombinationer, som ARIA in HTML-specifikationen tillader for det pågældende element, og rapporter roller, som elementet ikke tillader.
  3. Rapporter roller, der duplikerer elementets egen implicitte rolle.
  4. Når en rolleaftribut angiver flere roller, tages kun den første i betragtning.

Resultater skelner mellem de to tilfælde, så du kan prioritere konflikter frem for redundans.

Fejlfinding

Den overflødige rolle er der for ældre browsere

Eksplicitte landmærkeroller som role="navigation" blev engang anbefalet som et sikkerhedsnet for ældre hjælpeteknologi. Understøttelse af de oprindelige elementer har været universel i årevis, og den duplikerede rolle koster nu mere i vedligeholdelse, end den giver igen. Fjern den, eller resultatet, hvis din supportpolitik kræver, at den bevares.

Dette tjek rapporterer intet, selv om jeg forventer resultater

ARIA-testning kan slås fra for hver enkelt website. Tjek de avancerede indstillinger for websitet.

Få mere at vide

Sidst opdateret

Var denne side nyttig?

Modstridende ARIA-rolle | Silktide Hjælp