accesskey-attribuut
Silktide vindt elementen die een accesskey declareren, een verouderde manier om een element een eigen sneltoets te geven. Deze sneltoetsen zijn altijd actief en kunnen niet door de bezoeker worden uitgeschakeld, waardoor ze meer problemen veroorzaken dan ze oplossen.
Waarom dit belangrijk is
Het accesskey-attribuut in maakt een sneltoets van één
teken die wordt geactiveerd zodra de toets wordt ingedrukt. Dat botst met de
manier waarop veel mensen hun toetsenbord al gebruiken:
gebruikers van en browsers reserveren
overlappende toetscombinaties, waardoor een accesskey ongemerkt een sneltoets
kan overschrijven waarvan iemand afhankelijk is. Welke toetscombinatie de
sneltoets activeert, verschilt bovendien per browser en besturingssysteem.
Mensen die met spraakinvoer typen of weinig handvaardigheid hebben, kunnen de
sneltoets ook per ongeluk activeren.
-succescriterium 2.1.4 (Sneltoetsen voor tekens, niveau A)
vereist dat sneltoetsen van één teken kunnen worden uitgeschakeld, opnieuw
toegewezen, of alleen worden geactiveerd wanneer het element
heeft. Een accesskey voldoet aan
geen van deze voorwaarden: de sneltoets staat altijd aan en alleen de website
kan deze wijzigen.
Hoe je dit oplost
- Verwijder het
accesskey-attribuut. Het biedt zelden echte meerwaarde en de verwijdering ervan verandert niets zichtbaars op de pagina.
<!-- Altijd actieve sneltoets die kan conflicteren met die van de gebruiker -->
<a href="/search" accesskey="s">Search</a>
<!-- Opgelost: een normale link, net als al het andere bereikbaar met Tab -->
<a href="/search">Search</a>
- Als je echt sneltoetsen nodig hebt, implementeer ze dan zo dat de bezoeker ze kan uitschakelen of opnieuw kan toewijzen, of dat ze alleen van toepassing zijn wanneer het relevante bedieningselement focus heeft.
Hoe Silktide dit test
- Zoek elk element in de HTML van de pagina dat een
accesskey-attribuut met een niet-lege waarde declareert. - Rapporteer elk element. Lege waarden (
accesskey="") worden genegeerd, omdat sommige componentbibliotheken het attribuut als een no-op weergeven en het geen sneltoets creëert.
Problemen oplossen
We hebben accesskeys toegevoegd om de toegankelijkheid te verbeteren
Dat was ooit aanbevolen advies, maar de ervaring leerde dat de conflicten met sneltoetsen van browsers en zwaarder wegen dan het voordeel. Moderne richtlijnen adviseren daarom om het attribuut te vermijden. Goed gestructureerde pagina's met duidelijke koppen en oriëntatiepunten bieden toetsenbordgebruikers een betere ervaring.
Sneltoetsen geïmplementeerd in JavaScript
Deze controle heeft alleen betrekking op het accesskey-attribuut.
Sneltoetsen die in scripts zijn geïmplementeerd, vallen onder
Character key shortcuts; de twee controles vullen
elkaar aan en kunnen beide op dezelfde pagina verschijnen.