Hoppa till innehåll
SilktideHjälp

Kortkommandon med tecken

Silktide hittar sidor som registrerar en tangentbordslyssnare för hela sidan – dokumentet, fönstret eller <body>/<html> – och ber dig kontrollera om några kortkommandon med ett tecken behöver en möjlighet att undvika dem.

Vanliga exempel är att trycka på j för att rulla nedåt, / för att fokusera på sökning eller g och sedan h för att gå till startsidan.

Detta är en : en global tangentbordslyssnare är ett verkligt skäl att undersöka saken, men Silktide kan inte avgöra enbart utifrån registreringen om hanteraren implementerar ett kortkommando med ett tecken. Sidor utan en global tangentbordslyssnare flaggas inte.

Varför detta är viktigt

Två grupper drabbas särskilt hårt av kortkommandon med en tangent som alltid är aktiva:

  • Användare av talinmatning dikterar text och kommandon högt. Programvara omvandlar deras tal till tangenttryckningar, så en vanlig mening blir en ström av oavsiktliga aktiveringar av kortkommandon – sidor kan hoppa, dialogrutor kan öppnas och åtgärder kan utföras mitt i en mening.
  • Personer med nedsatt handmotorik eller darrningar trycker regelbundet på tangenter de inte avsåg att trycka på, och vilken enskild tangent som helst kan fungera som en aktiv utlösare.

framgångskriterium 2.1.4 (nivå A) kräver därför att kortkommandon med ett tecken kan stängas av, ändras så att de även kräver en modifierartangent som Ctrl eller Alt, eller endast aktiveras när den relevanta kontrollen har .

Så här åtgärdar du det

För varje global tangentbordshanterare som implementerar ett kortkommando med ett tecken ska du göra något av följande:

  1. Tillhandahåll en inställning som stänger av kortkommandona.
  2. Kräv en modifierartangent, så att kortkommandot till exempel blir Ctrl+K i stället för k.
  3. Hantera endast tangenten när den relevanta kontrollen har fokus – kortkommandon som är begränsade till en fokuserad kontroll är uttryckligen tillåtna.
// Aktiveras varje gång "k" trycks ned, var som helst på sidan
document.addEventListener('keydown', (e) => {
  if (e.key === 'k') openSearch();
});

// Åtgärdat: kräver att Ctrl (eller Cmd) hålls ned
document.addEventListener('keydown', (e) => {
  if (e.key === 'k' && (e.ctrlKey || e.metaKey)) openSearch();
});

Om en flaggad lyssnare inte har några kortkommandon med ett tecken – eller redan erbjuder någon av dessa möjligheter att undvika dem – du resultatet.

Så här testar Silktide detta

  1. Samla in de för tangentbord som sidan registrerar i webbläsaren.
  2. Behåll endast lyssnare som gäller hela sidan – de som är kopplade till dokumentet, fönstret eller elementet <body>/<html>. Lyssnare på enskilda kontroller undantas, eftersom de endast aktiveras när kontrollen har fokus.
  3. Rapportera varje återstående lyssnare så att du kan bekräfta den. Silktide söker inte igenom hanterarens källkod efter mönster som e.key === '…' – det är för bräckligt för minifierad kod och ramverkskod. Förekomsten av en global tangentbordslyssnare är signalen; din granskning är bedömningen.

Felsökning

Lyssnaren är inte ett kortkommando med ett tecken

Många globala tangentbordshanterare bevakar endast Escape, piltangenter eller kombinationer med modifierartangenter. Om din inte har några kortkommandon med ett tecken godkänner du resultatet.

Kortkommandot kan redan stängas av eller ändras

Silktide kan se registreringen av lyssnaren, men kan inte se om webbplatsen erbjuder en inställning för att stänga av eller ändra den. Om den gör det uppfyller sidan kraven – godkänn resultatet.

Kortkommandon från skript från tredje part

Chattwidgetar, videospelare och Analytics-verktyg registrerar ibland sina egna globala tangentbordslyssnare. De räknas ändå mot din sida; kontrollera leverantörens tillgänglighetsalternativ eller ta upp frågan med dem.

Kortkommandon som skapats med attributet accesskey

De omfattas separat av kontrollen Attributet accesskey; den här kontrollen omfattar kortkommandon som implementeras i skript.

Läs mer

Senast uppdaterad

Var den här sidan hjälpsam?