Feedback

Fortryd-handling

Fortryd-mønstret lader en handling ske med det samme og tilbyder et kort vindue til at rulle den tilbage — i stedet for at afbryde brugeren med en »Er du sikker?«-dialog. Det er en konkret udmøntning af Nielsens heuristik om brugerkontrol og frihed. Her er, hvornår undo slår bekræftelse, og hvordan det gøres tilgængeligt.

4 min læsning

Definition

Fortryd-mønstret udfører handlingen straks og giver et tidsvindue til at rulle den tilbage, fremfor en “er du sikker?”-dialog.

Hvorfor det virker

En tydeligt markeret nødudgang giver kontrol og reducerer angst. Nielsens heuristik #3 kræver netop, at brugere, der vælger noget ved en fejl, har en klar »emergency exit« — og at systemet understøtter undo og redo.1

Advarsler holder ikke i længden på grund af tilvænning: jo mere påtrængende en advarsel er, jo hurtigere vil vi klikke den væk — og desto flere fejl laver vi. Undo accepterer, at fejl sker, i stedet for at prøve at forhindre dem med dialoger.2

Bekræftelsesdialoger mister effekt ved overforbrug: råber man ulven for tit, holder folk op med at lytte, og en indholdsløs »Er du sikker?« giver ingen reel beskyttelse — kun irritation.3

Undo er sikkerhedsnettet, der fanger de fejl, selv den bedste bekræftelsesdialog ikke fanger — derfor anbefaler NN/g at gøre meget for at tilbyde fortryd.3

Hvornår du bruger det — og hvornår ikke

Hvornår du bruger det

  • Handlingen er nem at rulle tilbage (slet, arkivér).
  • Bekræftelses-dialoger ville afbryde et hurtigt flow.
  • Et kort undo-vindue er nok til at fange fejl.

Hvornår du bør undgå det

  • Handlingen er uigenkaldelig eller sikkerhedskritisk.
  • Konsekvensen er så stor, at bevidst bekræftelse er bedre.

Best practices

  1. Foretræk undo frem for bekræftelse ved reversible handlinger

    Kan handlingen let omgøres — fx gendanne et slettet element fra papirkurven — er en simpel »Fortryd«-toast som regel nok.3

  2. Behold bekræftelse kun til reelt destruktive handlinger

    Brug en bekræftelsesdialog før handlinger med alvorlige konsekvenser — særligt dem, der ikke kan fortrydes.3

  3. Giv brugeren tilstrækkelig tid til at reagere

    Fortryd-vinduet skal være langt nok til at nå at læse og handle. WCAG 2.2.1 (niveau A) kræver, at tidsgrænser kan slås fra, justeres eller forlænges.5

  4. Gør undo synligt OG annonceret for hjælpeteknologi

    Læg toasten i et live-område (fx role="status"), så skærmlæsere annoncerer den. Vær opmærksom på, at en flygtig toast kan være svær at nå i tide.6

  5. Lad fortryd også findes uden for toasten

    Er en handling vigtig, bør den ikke kun ligge i en forsvindende toast — gør undo tilgængelig et blivende sted (papirkurv, Ctrl+Z, handlingshistorik).6

  6. Understøt Ctrl+Z, hvor det giver mening

    I redigerings- og indtastningsflows forventer brugere at kunne fortryde og gentage — gerne i flere trin efter hinanden.1

  7. Tilbyd et passende, gerne konfigurerbart tidsvindue

    Gmails »Fortryd send« lader brugeren vælge en annulleringsperiode på 5, 10, 20 eller 30 sekunder — et konkret eksempel på at give nok tid.4

Typiske fejl

  • Bekræftelses-overforbrug

    »Er du sikker?« på alt fører til refleksmæssig afvisning og fjerner reel beskyttelse.

  • For kort fortryd-vindue

    Toasten forsvinder, før langsomme læsere eller skærmlæser-brugere når at finde og aktivere »Fortryd«.

  • Toast-kun undo uden alternativ

    Vigtige handlinger placeret udelukkende i en flygtig toast er utilgængelige for mange — de bør også findes i dokumentet.

  • Toast uden live-område

    Annonceres toasten ikke programmatisk, opdager skærmlæser-brugere den aldrig.

  • Uklar fokushåndtering på undo-knappen

    Brugeren skal gætte, at »Fortryd« er handlingsbar, og nå den før den forsvinder.

Eksempler i praksis

Gmail »Fortryd send«

Efter afsendelse vises »Message sent« med »Undo«; brugeren kan indstille annulleringsperioden til 5, 10, 20 eller 30 sekunder. Startede som en Labs-funktion og er nu standard.

Kladde ved fortrudt lukning

NN/g fremhæver mønstret, hvor et påbegyndt opslag ved lukning tilbyder at slette eller gemme som kladde, så arbejde ikke tabes utilsigtet.

Ofte stillede spørgsmål

Hvornår skal jeg bruge fortryd frem for en bekræftelsesdialog?

Brug fortryd, når handlingen er let at omgøre — fx sletning, der kan gendannes fra en papirkurv. En simpel »Fortryd«-toast er som regel nok, og du undgår at afbryde brugeren unødigt.

Hvornår er en bekræftelsesdialog stadig det rigtige?

Ved alvorlige eller uigenkaldelige konsekvenser — når arbejde ødelægges permanent eller store beløb er på spil, og handlingen ikke kan fortrydes.

Hvor længe skal fortryd-vinduet være?

Langt nok til, at brugeren kan nå at læse beskeden og reagere. Der er ikke ét universelt tal, men tilgængelighedskrav (WCAG 2.2.1) peger på, at tidsgrænser bør kunne forlænges eller slås fra, og Gmail tilbyder fx op til 30 sekunder.

Er en toast med »Fortryd« tilgængelig for skærmlæser-brugere?

Ikke automatisk. Toasten bør lægges i et live-område (fx role="status"), og fordi den forsvinder af sig selv, kan det være svært at nå knappen i tide. Derfor bør fortryd også findes et blivende sted, fx en papirkurv eller Ctrl+Z.

Er advarsler ikke sikrere end fortryd?

Ofte nej. Bruges de for tit, klikker folk dem refleksmæssigt væk, og så yder de ingen reel beskyttelse. Fortryd fanger de fejl, der alligevel slipper igennem.

Bør jeg understøtte Ctrl+Z?

Ja, hvor det giver mening — især i redigerings- og indtastningsflows forventer brugere at kunne fortryde og gentage handlinger, gerne i flere trin.

Kilder

  1. User Control and Freedom (Usability Heuristic #3)Maria Rosala, Nielsen Norman Group (2020)
  2. Never Use a Warning When You Mean UndoAza Raskin, A List Apart (2007)
  3. Confirmation Dialogs Can Prevent User Errors (If Not Overused)Jakob Nielsen, Nielsen Norman Group (2018)
  4. Send or unsend Gmail messagesGoogle Gmail Help
  5. Understanding SC 2.2.1: Timing AdjustableW3C · WCAG 2.2
  6. A toast to an accessible toastScott O’Hara (2019)