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
- 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>. - 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
- Find alle elementer på siden med en
role-attribut, og spring roller over, der er ukendte eller abstrakte (de rapporteres af Ugyldig ARIA-rolle). - Sammenlign rollen med de kombinationer, som ARIA in HTML-specifikationen tillader for det pågældende element, og rapporter roller, som elementet ikke tillader.
- Rapporter roller, der duplikerer elementets egen implicitte rolle.
- 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.