Tastaturgenveje med enkelttegn
Silktide finder sider, der registrerer en tastaturlytter på hele siden –
dokumentet, vinduet eller <body>/<html> – og beder dig kontrollere, om
tastaturgenveje med enkelttegn har brug for en frakoblingsmulighed.
Velkendte eksempler er at trykke på j for at rulle ned, / for at fokusere
på søgning eller g efterfulgt af h for at gå til forsiden.
Dette er en : En global tastaturlytter er en reel grund til at undersøge det, men Silktide kan ikke ud fra registreringen alene afgøre, om håndteringen implementerer en tastaturgenvej med enkelttegn. Sider uden en global tastaturlytter bliver ikke markeret.
Hvorfor det er vigtigt
To grupper rammes hårdt af altid aktive tastaturgenveje med én tast:
- Brugere af taleinput dikterer tekst og kommandoer højt. Softwaren omdanner deres tale til tastetryk, så en almindelig sætning bliver til en strøm af utilsigtede aktiveringer af genveje – sider kan hoppe, dialogbokse kan åbne, og handlinger kan udløses midt i en sætning.
- Personer med nedsat fingerfærdighed eller rystelser trykker jævnligt på taster, de ikke havde til hensigt at trykke på, og enhver enkelt tast kan være en aktiv udløser.
succeskriterium 2.1.4 (niveau A) kræver derfor, at tastaturgenveje med enkelttegn kan slås fra, omkortlægges til at indeholde en modifikationstast som Ctrl eller Alt eller kun udløses, mens det relevante kontrolelement har .
Sådan løser du det
For hver global tastaturhåndtering, der implementerer en tastaturgenvej med et enkelt tegn, skal du gøre ét af følgende:
- Giv mulighed for at slå genvejene fra i indstillingerne.
- Kræv en modifikationstast, så genvejen for eksempel bliver
Ctrl+Ki stedet fork. - Håndter kun tasten, mens det relevante kontrolelement har fokus – genveje, der er begrænset til et kontrolelement med fokus, er udtrykkeligt tilladt.
// Udløses, hver gang "k" trykkes ned, hvor som helst på siden
document.addEventListener('keydown', (e) => {
if (e.key === 'k') openSearch();
});
// Løst: kræver, at Ctrl (eller Cmd) holdes nede
document.addEventListener('keydown', (e) => {
if (e.key === 'k' && (e.ctrlKey || e.metaKey)) openSearch();
});
Hvis en markeret lytter ikke har tastaturgenveje med enkelttegn – eller allerede tilbyder en af disse frakoblingsmuligheder – skal du fundet.
Sådan tester Silktide dette
- Indsaml de tastatur-, som siden registrerer i browseren.
- Behold kun lyttere for hele siden – dem, der er knyttet til dokumentet,
vinduet eller elementet
<body>/<html>. Lyttere på individuelle kontrolelementer er undtaget, fordi de kun udløses, mens det pågældende kontrolelement har fokus. - Rapportér hver resterende lytter, så du kan bekræfte den. Silktide
gennemsøger ikke håndteringskildekoden for mønstre som
e.key === '…'– det er for skrøbeligt over for minificeret kode og frameworkkode. Tilstedeværelsen af en global tastaturlytter er signalet; din gennemgang er afgørelsen.
Fejlfinding
Lytteren er ikke en tastaturgenvej med enkelttegn
Mange globale tastaturhåndteringer overvåger kun Escape, piletaster eller kombinationer med modifikationstaster. Hvis din ikke har tastaturgenveje med enkelttegn, skal du godkende fundet.
Genvejen kan allerede deaktiveres eller omkortlægges
Silktide kan se lytterregistreringen, men kan ikke se, om dit website tilbyder en indstilling til at slå den til eller fra. Hvis det gør, overholder siden kravene – godkend fundet.
Genveje fra tredjepartsscripts
Chatwidgets, videoafspillere og analyseværktøjer registrerer nogle gange deres egne globale tastaturlyttere. De tæller stadig med for din side; kontrollér leverandørens tilgængelighedsindstillinger, eller tag det op med dem.
Genveje oprettet med attributten accesskey
De dækkes separat af tjekket Accesskey-attribut; dette tjek dækker genveje, der er implementeret i script.