Hoppa till innehåll
SilktideHjälp

Vid fokus

Att bara flytta fokus till ett element, till exempel genom att trycka på Tab, ska aldrig utlösa en större förändring, som att läsa in en ny sida, skicka ett formulär eller öppna ett popupfönster.

Detta är en : automation kan inte på ett tillförlitligt sätt avgöra från minifierad JavaScript-kod eller JavaScript-kod från ramverk om en fokushanterare ändrar sammanhanget, så Silktide visar prompten på varje sida och en person bekräftar detta genom att tabba.

Varför detta är viktigt

Tangentbordsanvändare flyttar fokus genom en sida för att utforska den, på samma sätt som musanvändare flyttar pekaren – att nå ett kontroll­element är inte samma sak som att välja att använda det. Om det räcker att tabba till ett sökfält för att läsa om sidan, eller att nå en knapp för att öppna en dialogruta, skickas tangentbords- och användare någonstans dit de inte bad om att gå, och de tappar ofta bort sin position och sitt arbete. Personer med motoriska funktionsnedsättningar som navigerar långsamt, element för element, stöter hela tiden på dessa fällor.

Detta är framgångskriterium 3.2.1 i (Vid fokus), ett krav på – en del av den mest grundläggande nivån för överensstämmelse.

Vad som ska kontrolleras

  1. Tabba genom alla fokuserbara kontrollelement på sidan.
  2. Bekräfta att fokus ensamt aldrig navigerar, skickar ett formulär eller öppnar en dialogruta eller ett nytt fönster.
  3. Fokushanterare som endast markerar ett fält, visar ett tips eller förbereder data i bakgrunden är godkända.

Om fokus aldrig ändrar sammanhanget kan du resultatet.

Så åtgärdar du det

  1. Flytta åtgärden från fokushanteraren. Navigering, formulärinskickning och dialogrutor ska utlösas av en uttrycklig åtgärd, till exempel click, Enter eller en ändring som besökaren bekräftar.
  2. Använd fokushanterare endast för icke-störande effekter.
// Problem: sidan navigerar direkt när fältet nås
searchBox.addEventListener('focus', () => {
  window.location.href = '/search';
});

// Åtgärd: navigera endast när användaren väljer att göra det
searchBox.addEventListener('keydown', (event) => {
  if (event.key === 'Enter') {
    window.location.href = '/search';
  }
});

Så testar Silktide detta

Silktide kan inte på ett tillförlitligt sätt upptäcka fokusutlösta förändringar av sammanhanget genom att granska källkoden för händelselyssnare – ramverk och minifiering gör den metoden osäker – så denna kontroll visar en granskningsprompt per sida med en beskrivning av vad som ska verifieras genom att tabba.

Läs mer

Senast uppdaterad

Var den här sidan hjälpsam?