Ved fokus
Det å flytte fokus til et element, for eksempel ved å trykke på Tab, skal aldri utløse en større endring, som å laste inn en ny side, sende inn et skjema eller åpne en popup.
Dette er en : Automatisering kan ikke pålitelig avgjøre ut fra minifisert JavaScript eller JavaScript fra rammeverk om en fokushåndterer endrer konteksten. Derfor viser Silktide spørsmålet på hver side, og en person bekrefter dette ved å navigere med Tab.
Hvorfor dette er viktig
Tastaturbrukere flytter fokus gjennom en side for å utforske den, på samme måte som musebrukere flytter pekeren – å nå en kontroll er ikke det samme som å velge å bruke den. Hvis det å tabbe til et søkefelt bare laster inn siden på nytt, eller det å nå en knapp åpner en dialogboks, blir tastatur- og -brukere ført til et sted de ikke ba om å gå til, og mister ofte oversikten og arbeidet sitt. Personer med motoriske funksjonsnedsettelser som navigerer sakte, element for element, møter stadig disse fellene.
Dette er suksesskriterium 3.2.1 i (Ved fokus), et krav på – en del av det mest grunnleggende samsvarsnivået.
Hva som skal kontrolleres
- Naviger med Tab gjennom alle fokuserbare kontroller på siden.
- Bekreft at fokus alene aldri navigerer, sender inn et skjema eller åpner en dialogboks eller et nytt vindu.
- Fokushåndterere som bare fremhever et felt, viser et tips eller klargjør data i bakgrunnen, er i orden.
Hvis fokus aldri endrer konteksten, funnet.
Slik løser du det
- Flytt handlingen ut av fokushåndtereren. Navigering, innsending og
dialogbokser skal utløses av en eksplisitt handling, for eksempel
click, Enter eller en endring den besøkende bekrefter. - Bruk fokushåndterere bare til effekter som ikke forstyrrer.
// Problem: det å nå feltet navigerer umiddelbart
searchBox.addEventListener('focus', () => {
window.location.href = '/search';
});
// Løsning: naviger bare når brukeren velger å handle
searchBox.addEventListener('keydown', (event) => {
if (event.key === 'Enter') {
window.location.href = '/search';
}
});
Slik tester Silktide dette
Silktide kan ikke pålitelig oppdage kontekstendringer som utløses av fokus, ved å inspisere kildekoden til lyttere – rammeverk og minifisering gjør dette upålitelig. Derfor viser denne kontrollen ett spørsmål om gjennomgang per side, som beskriver hva som skal bekreftes ved å navigere med Tab.