Yhden merkin pikanäppäimet
Silktide löytää sivut, jotka rekisteröivät näppäimistötapahtumankuuntelijan koko sivulle –
dokumenttiin, ikkunaan tai <body>-/<html>-elementtiin – ja pyytää sinua tarkistamaan,
tarvitaanko yhden merkin pikanäppäimille poistumismahdollisuutta.
Yleisiä esimerkkejä ovat j-näppäimen painaminen alas vierittämiseksi, /-näppäimen
painaminen haun kohdistamiseksi tai g- ja sitten h-näppäimen painaminen etusivulle
siirtymiseksi.
Tämä on : sivunlaajuinen näppäimistötapahtumankuuntelija on todellinen syy tutkia asiaa, mutta Silktide ei voi pelkän rekisteröinnin perusteella päätellä, toteuttaako käsittelijä yhden merkin pikanäppäimen. Sivuja, joilla ei ole sivunlaajuista näppäimistötapahtumankuuntelijaa, ei merkitä.
Miksi tämä on tärkeää
Aina käytössä olevat yhden näppäimen pikanäppäimet haittaavat erityisesti kahta ryhmää:
- Puheohjausta käyttävät käyttäjät sanelevat tekstiä ja komentoja ääneen. Ohjelmisto muuntaa puheen näppäinpainalluksiksi, joten tavallisesta lauseesta tulee virheellisten pikanäppäinaktivointien virta – sivut voivat hypätä, valintaikkunat voivat avautua ja toimintoja voi käynnistyä kesken lauseen.
- Henkilöt, joiden käden motoriikka on heikentynyt tai joilla on vapinaa, painavat usein tahattomia näppäimiä, jolloin mikä tahansa yksittäinen näppäin voi toimia aktiivisena laukaisimena.
-onnistumiskriteeri 2.1.4 (taso A) edellyttää siksi, että yhden merkin pikanäppäimet voidaan poistaa käytöstä, määrittää uudelleen siten, että niihin sisältyy muokkausnäppäin, kuten Ctrl tai Alt, tai että ne toimivat vain, kun asianmukaisella kontrollilla on .
Korjaaminen
Tee jokaiselle sivunlaajuiselle näppäimistökäsittelijälle, joka toteuttaa yhden merkin pikanäppäimen, jokin seuraavista:
- Tarjoa asetus, jolla pikanäppäimet voidaan poistaa käytöstä.
- Edellytä muokkausnäppäintä, jolloin pikanäppäin on esimerkiksi
Ctrl+Keikäk. - Käsittele näppäintä vain, kun asianmukainen kontrolli on kohdistettuna – kohdistettuun kontrolliin rajatut pikanäppäimet ovat nimenomaisesti sallittuja.
// Käynnistyy aina, kun "k" painetaan missä tahansa sivulla
document.addEventListener('keydown', (e) => {
if (e.key === 'k') openSearch();
});
// Korjattu: edellyttää Ctrl- (tai Cmd-)näppäimen pitämistä painettuna
document.addEventListener('keydown', (e) => {
if (e.key === 'k' && (e.ctrlKey || e.metaKey)) openSearch();
});
Jos merkityssä kuuntelijassa ei ole yhden merkin pikanäppäimiä – tai se tarjoaa jo jonkin näistä poistumismahdollisuuksista – havainto.
Miten Silktide testaa tämän
- Kerää selaimessa sivun rekisteröimät näppäimistön .
- Säilytä vain sivunlaajuiset kuuntelijat – ne, jotka on liitetty dokumenttiin, ikkunaan tai
<body>-/<html>-elementtiin. Yksittäisten kontrollien kuuntelijat on vapautettu tästä, koska ne käynnistyvät vain, kun kyseinen kontrolli on kohdistettuna. - Ilmoita jokaisesta jäljellä olevasta kuuntelijasta, jotta voit vahvistaa sen. Silktide ei
tutki käsittelijän lähdekoodista
e.key === '…'-kuvioita – se on liian haavoittuvaa minimoidun ja kehyskoodin vuoksi. Sivunlaajuisen näppäimistötapahtumankuuntelijan olemassaolo on merkki; arviointisi on päätös.
Vianmääritys
Kuuntelija ei ole yhden merkin pikanäppäin
Monet sivunlaajuiset näppäinkäsittelijät tarkkailevat vain Escapea, nuolinäppäimiä tai muokkausnäppäinyhdistelmiä. Jos omassasi ei ole yhden merkin pikanäppäimiä, hyväksy havainto.
Pikanäppäin voidaan jo poistaa käytöstä tai määrittää uudelleen
Silktide näkee kuuntelijan rekisteröinnin, mutta se ei näe, tarjoaako sivustosi asetuksissa kytkimen. Jos tarjoaa, sivu täyttää vaatimukset – hyväksy havainto.
Kolmannen osapuolen komentosarjojen pikanäppäimet
Chat-widgetit, videosoittimet ja analytiikkatyökalut rekisteröivät joskus omia sivunlaajuisia näppäimistötapahtumankuuntelijoitaan. Ne lasketaan silti sivuasi vastaan; tarkista toimittajan saavutettavuusasetukset tai ota asia puheeksi heidän kanssaan.
accesskey-attribuutilla luodut pikanäppäimet
Ne käsitellään erikseen Accesskey-attribuutti -tarkistuksessa; tämä tarkistus kattaa komentosarjalla toteutetut pikanäppäimet.