Tastatursnarveier med tegn
Silktide finner sider som registrerer en tastaturlytter på hele siden –
dokumentet, vinduet eller <body>/<html> – og ber deg kontrollere om
snarveier med enkelttegn trenger en måte å deaktiveres på.
Kjente eksempler er å trykke på j for å rulle ned, / for å fokusere på søk,
eller g og deretter h for å gå hjem.
Dette er en : En global tastaturlytter er en reell grunn til å undersøke saken, men Silktide kan ikke se ut fra registreringen alene om behandleren implementerer en snarvei med ett enkelt tegn. Sider uten en global tastaturlytter blir ikke flagget.
Hvorfor dette er viktig
To grupper rammes særlig hardt av snarveier med enkelttegn som alltid er aktive:
- Brukere av taleinndata dikterer tekst og kommandoer høyt. Programvare gjør talen deres om til tastetrykk, slik at en vanlig setning blir til en strøm av utilsiktede aktiveringer av snarveier – sider kan hoppe, dialogbokser kan åpnes, og handlinger kan utløses midt i en setning.
- Personer med nedsatt fingerferdighet eller skjelvinger treffer ofte taster de ikke hadde til hensikt å trykke på, og enhver enkelt tast kan utløse en handling.
Suksesskriterium 2.1.4 (nivå A) i krever derfor at snarveier med enkelttegn kan slås av, tilordnes på nytt slik at de inkluderer en modifikatortast som Ctrl eller Alt, eller bare utløses mens den relevante kontrollen har .
Slik løser du det
For hver globale tastaturbehandler som implementerer en snarvei med enkelttegn, gjør du ett av følgende:
- Tilby en innstilling som slår av snarveiene.
- Krev en modifikatortast, slik at snarveien for eksempel blir
Ctrl+Ki stedet fork. - Håndter tasten bare mens den relevante kontrollen har fokus – snarveier som er avgrenset til en kontroll med fokus, er uttrykkelig tillatt.
// Utløses hver gang "k" trykkes, hvor som helst på siden
document.addEventListener('keydown', (e) => {
if (e.key === 'k') openSearch();
});
// Rettet: krever at Ctrl (eller Cmd) holdes inne
document.addEventListener('keydown', (e) => {
if (e.key === 'k' && (e.ctrlKey || e.metaKey)) openSearch();
});
Hvis en flagget lytter ikke har snarveier med enkelttegn – eller allerede tilbyr en av disse måtene å deaktivere dem på – funnet.
Slik tester Silktide dette
- Samle inn tastatur- som siden registrerer i nettleseren.
- Behold bare lyttere som gjelder hele siden – de som er koblet til dokumentet,
vinduet eller
<body>/<html>-elementet. Lyttere på individuelle kontroller fritas, fordi de bare utløses mens den aktuelle kontrollen har fokus. - Rapporter hver gjenværende lytter slik at du kan bekrefte den. Silktide
skraper ikke kildekoden til behandleren etter mønstre som
e.key === '…'– det er for skjørt overfor minifisert kode og rammeverkskode. Tilstedeværelsen av en global tastaturlytter er signalet; gjennomgangen din er avgjørelsen.
Feilsøking
Lytteren er ikke en snarvei med enkelttegn
Mange globale tastaturbehandlere overvåker bare Escape, piltaster eller kombinasjoner med modifikatortaster. Hvis din ikke har snarveier med enkelttegn, godkjenn funnet.
Snarveien kan allerede deaktiveres eller tilordnes på nytt
Silktide kan se registreringen av lytteren, men kan ikke se om nettstedet ditt tilbyr en innstilling for dette. Hvis det gjør det, oppfyller siden kravene – godkjenn funnet.
Snarveier fra tredjepartsskript
Chatkomponenter, videospillere og Analytics-verktøy registrerer noen ganger sine egne globale tastaturlyttere. De teller likevel med på siden din; undersøk leverandørens tilgjengelighetsinnstillinger eller ta saken opp med leverandøren.
Snarveier opprettet med accesskey-attributtet
Disse dekkes separat av kontrollen Accesskey-attributt; denne kontrollen gjelder snarveier som er implementert i skript.