Fokusfelle for modaldialog
Silktide identifiserer sider som inneholder en modaldialog – et popup-vindu som blokkerer interaksjon med resten av siden – og ber deg kontrollere at tastaturfokus håndteres riktig mens dialogen er åpen. Dette er en manuell gjennomgang: automatisert testing kan finne dialogen, men ikke observere hvordan den oppfører seg når den åpnes og lukkes.
Hvorfor dette er viktig
Når en modaldialog er åpen, er siden bak synlig, men inaktiv. Hvis kan unnslippe dialogen, ender brukere av tastatur og opp med å tabbe gjennom innhold de ikke kan se eller bruke, lese siden under ute av kontekst og miste plassen sin fullstendig. Og hvis fokuset ikke føres tilbake når dialogen lukkes, havner de øverst på siden og må navigere tilbake dit de var.
Slik løser du det
Åpne hver dialog på siden og kontroller med bare et tastatur:
- Når dialogen åpnes, flyttes fokuset inn i den – vanligvis til den første kontrollen eller selve dialogen.
- Når du trykker på Tab og Skift+Tab, går fokuset gjennom dialogens kontroller uten å nå siden bak den.
- Når du trykker på Escape, lukkes dialogen (for dialoger som kan lukkes).
- Når dialogen lukkes, føres fokuset tilbake til elementet som åpnet den.
Hvis noe av dette ikke fungerer, må du rette dialogimplementeringen. Det innebygde <dialog>-elementet som åpnes med showModal(), gir det meste av denne funksjonaliteten automatisk. Egendefinerte dialoger må ha dette skriptet. Hvis alt fungerer riktig, funnet.
Slik tester Silktide dette
- Se etter tegn på at en side inneholder en modaldialog: et innebygd
<dialog>-element, et element medrole="dialog"ellerrole="alertdialog", et element medaria-modal="true", eller et element med et vanlig klassenavn for modaler som også inneholder fokuserbare kontroller. - Når noe av dette blir funnet, opprettes ett spørsmål om gjennomgang for siden.
Silktide kan ikke åpne dialogen og observere hvordan fokuset oppfører seg under kjøring, så denne kontrollen mislykkes aldri automatisk – den ber deg om å kontrollere dette.
Feilsøking
Siden har ingen synlig modal
Mange nettsteder leverer dialogoppmerking på alle sider (en popup for nyhetsbrev, en informasjonskapseldialog eller et skjult søkeoverlegg) som bare vises under bestemte forhold. Spørsmålet gjelder likevel: kontroller dialogens oppførsel i tilstanden der den åpnes. Hvis oppmerkingen er en rest som aldri kan åpnes, bør du vurdere å fjerne den.
Dialogene våre kommer fra et tredjepartsbibliotek
Kjente dialogbiblioteker håndterer vanligvis fokus riktig, men konfigurasjon og egendefinert innhold kan ødelegge dette. Kontroller oppførselen på dine egne sider i stedet for å stole på bibliotekets dokumentasjon.