Annullering af pegerhandling
Silktide registrerer knapper og links, der udfører en handling i det øjeblik, de trykkes ned, i stedet for når trykket slippes. Handling ved slip giver brugere mulighed for at rette op på et forkert tryk ved at flytte markøren væk, før de slipper.
Hvorfor det er vigtigt
Alle trykker af og til på den forkerte knap, men personer med rystelser, begrænset fingerfærdighed eller nedsat syn gør det langt oftere. Den universelle måde at fortryde på er at holde trykket nede, trække væk fra kontrolelementet og slippe – hvilket fungerer, fordi knapper og links normalt udfører handlingen ved slip. Et kontrolelement, der er indstillet til at reagere på det første tryk, fjerner denne udvej: Handlingen udføres øjeblikkeligt uden mulighed for at afbryde. På en knap til at indsende en formular eller slette kan en enkelt fejl blive en uoprettelig fejl.
Dette er WCAG-succeskriterium 2.5.2 (Pointer Cancellation), et krav på – en del af det mest grundlæggende overensstemmelsesniveau.
Sådan retter du det
- Udløs handlinger fra hændelsen
click, som udløses ved slip, i stedet formousedown,pointerdownellertouchstart. - Hvis et kontrolelement reelt skal reagere på det første tryk – for eksempel en klavertangent i en musikapp – skal du sikre, at slip uden for kontrolelementet vender handlingen om eller afbryder den, eller give mulighed for at fortryde.
- Hvis den markerede lytter faktisk ikke udløser en handling (den tilføjer måske blot en visuel effekt for nedtrykt tilstand), kan du fundet.
// Problem: udløses straks ved tryk og kan ikke annulleres
button.addEventListener('mousedown', submitForm);
// Løsning: udløses ved slip, så det annulleres ved at trække væk
button.addEventListener('click', submitForm);
Sådan tester Silktide dette
- Indlæs hver side i en rigtig browser, og registrer de -hændelseslyttere, den registrerer.
- Find lyttere for hændelser ved nedtryk:
mousedown,pointerdownogtouchstart. - Rapportér en lytter, når den er knyttet til et kontrolelement, der normalt aktiveres ved slip: en knap, et link, et input til indsendelse eller nulstilling eller et element med en -rolle som
button,link,menuitem,tabellerswitch. - Spring over sideomfattende lyttere, der ikke er knyttet til et bestemt kontrolelement, da de normalt hører til håndtering af rulning eller træk og slip frem for aktivering.
- Da Silktide ikke kan afgøre, hvad lytterens kode gør, markeres fund til din bekræftelse i stedet for at blive talt som bekræftede fejl.
Fejlfinding
Lytteren aktiverer ikke noget
Lyttere for nedtryks-hændelser bruges ofte til harmløse effekter: en stil for nedtrykt tilstand, en ringanimation eller fokushåndtering, mens den egentlige handling stadig ligger på click. Det opfylder kriteriet; godkend fundet.
Kontrolelementet er en skyder eller et trækhåndtag
Skydere, trækhåndtag og lignende komponenter følger med rette det første tryk. WCAG betragter nedtryks-hændelsen som nødvendig for disse interaktioner; godkend fundet.