58

The Problem:

Users need to have an undo control over changes they have made. However, these changes might be really big, so, while we have some contingency plan just in case something goes wrong, we need the user to be really sure they want to undo an action.

The Current Approaches:

Based on the problem above, we're using a dialog like this:

This will undo all changes made [time period=this session / today / custom timeframe]. Are you sure you want to continue?

and then the options on buttons are

Yes, Undo Changes

Cancel Undoing Changes

However, both of them sound weird to me. First option has a positive word (yes) on a negative action (undo) and the second sounds even weirder. Testing has shown that users didn't react correctly to revert so we are looking for more layman options.

The Question:

Given the description above, what could be a better wording option for both of this elements, specially the "Undo Undo" concept? Please note that the process cannot be changed, so it's just the wording on buttons

14
  • 39
    I feel this whole problem is wrong. This is a version control system. Reverting to an older version shouldn't mean deleting the present version. Commented Feb 29, 2016 at 8:20
  • 7
    I feel like you're describing two separate things. Your title implies that Bob made some changes, then Sue reverted to an earlier version, and now Joe is undoing Sue's revert, so we're back to Bob's changes. But from your problem description, it looks like Bob and Sue have made changes today, and now Joe is just undoing all changes and reverting to whatever version existed at some time in the past. @Stig: I think "process can't be changed" means "we're not changing our version control system" not "the revert can't be undone later".
    – MichaelS
    Commented Feb 29, 2016 at 9:11
  • 2
    @MichaelS, whoever changed the title did it against my intention and I admit that now the title collides with the description of the issue. And you're 100% correct in what you say to Stig. Back to problem, what you understand from my description is what I meant to say, despite the new title: Joe can go back to a previous version and even "hide" Sue's changes (however, a change log exists and this can be undone at any time)
    – Devin
    Commented Feb 29, 2016 at 14:46
  • 3
    What's wrong with a plain "Yes/No"? In the context of the question posed, it's difficult to imagine how it can be misinterpreted.
    – March Ho
    Commented Feb 29, 2016 at 15:47
  • 13
    This isn't really "Undo Undo" (that's Redo). This is "Don't Undo". Commented Feb 29, 2016 at 20:07

17 Answers 17

94

I'd try abandon.

Are you sure you want to abandon the changes you made today?

[ Abandon changes ]  [ Keep changes ]

I don't know what the back-out option does (does it commit the changes, or just close the dialog without taking any action), but the other button could be Keep changes, Commit changes, or just cancel.

I also like the idea of putting a pronoun into the message "your changes", "the changes you made", so it's a little clearer to the user that it's the changes they themselves made that are being abandoned.

(Edit to include some discussion from the comments:)

I think the most conceptually simple way to phrase the question is "what should happen to your changes?". It reifies the changes as things that the user has created; the user is choosing whether they get applied, or discarded. Something like "leave without changing" I suspect isn't making it clear enough that the changes themselves will go away.

Actually.. how about discard?

"Discard changes" shows up in some similar situations so users may be familiar with it.

7
  • 63
    Somewhere there's an orphanage for abandoned changes.
    – Pharap
    Commented Feb 29, 2016 at 6:42
  • 3
    I'm not entirely convinced on the word abandon, will need to test out, but I think this is the correct path to follow, maybe with "leave without changing" or something else
    – Devin
    Commented Feb 29, 2016 at 15:27
  • 26
    @Pharap I feel bad for orphans. That's why I have my processes kill their children before exiting.
    – anon
    Commented Feb 29, 2016 at 17:53
  • 5
    @Devin I think the most conceptually simple way to phrase the question is "what should happen to your changes?" It reifies the changes as things that the user has created; the user is choosing whether they get applied, or discarded. Something like "leave without changing" I suspect isn't making it clear enough that the changes themselves will go away. Actually.. how about "Discard changes"? Commented Mar 1, 2016 at 3:15
  • 3
    @DanielBaird, "Discard Changes" is the exact wording we're testing now, I didn't liek "Abandon" as I said, but you made me think and we got to "Discard" as well. Thank you x 2!!!
    – Devin
    Commented Mar 1, 2016 at 20:21
26

Undo and redo are really old paradigms, and they usually refer to small actions (like making a word bold or deleting a sentence). What you're talking about sounds like a revert (in version control terminology).

If there isn't a redo option, you could call this "delete my recent changes" instead, and make the confirmation a nice (red) delete button.

For example:

mockup

download bmml source – Wireframes created with Balsamiq Mockups

7
  • 7
    As a matter of fact, version control is exactly the paradigm we're using for this app, and "revert" is the word we used, but so far, testing has shown that users didn't react correctly to revert, hence why we're looking for layman options
    – Devin
    Commented Feb 28, 2016 at 22:37
  • @Devin If you have a full history of the document available, you could also show a subtle popup saying something like "Your changes have been deleted (undo / dismiss)" after the user has clicked the delete button. Like gmail does. So you'd have the full undo-undo. :) Commented Feb 28, 2016 at 22:41
  • This seems like a terrible arrangement. Both Cancel and Delete mean the same thing in English... According to WordNet: "4: remove or make invisible; "Please delete my name from your list" [syn: delete, cancel]"
    – landroni
    Commented Feb 28, 2016 at 23:13
  • 4
    @landroni: That's not the case in "computer English" (where "Cancel" is widely understood to refer to an action, while "Delete" is widely understood to refer to data) but I admit it's a bit of a confusing choice. Commented Feb 28, 2016 at 23:35
  • I don't think delete is the right word to use since it's usually associated with complete destruction (e.g. to delete a file makes it gone for good, to delete a character removes it completely). I think revert makes more sense than delete (even though the Op's testers didn't "react correctly" to it), though there's probably a better option still.
    – Pharap
    Commented Feb 29, 2016 at 1:02
15

As I mentioned in a comment, I'm confused about your problem statement. Your question body suggests your user is just undoing changes. But your title says you're "undoing an undo", which we'd normally call "redoing" something.

For the first case: Similar to WBT's "go back in time", I would suggest "roll back" if "revert" is off the table.

You're about to roll back all changes you (your team/whatever level of reversion this is) have made since xxx time/date. Are you sure?
1. Yes, I want to roll back to a previous version.
2. No, I want to keep the current version.

For the second case: The standard terminology is "redo". You could also use "reapply".

You're about to reapply the changes Bob made at xxx time/date, which were later rolled back by Sue at xxx time/date. Are you sure?
1. Yes, I want to reapply Bob's changes.
2. No, don't make any changes.

Of note, this second case is really just a variation of the first case. Reverting a change creates a new state. Reapplying the change is yet another state.

s1. v1.0 Joe does stuff.
s2. v1.1 Bob makes a change.
s3. v1.0 Sue reverts Bob's change / Sue rolls back to state 1.
s4. v1.1 Joe reapplies Bob's change / Joe reverts Sue's change / Joe rolls back to state 2.
s5. v1.0 Kim reapplies Sue's revert / ... / Kim rolls back to state 3 which points to state 1 / Kim rolls back to state 1.

I wouldn't try to cram all this into a dialog box, but the essence is that you're applying some previous state to the current system. It doesn't really matter whether you're going "back" to v1.1 from v1.0. It matters that you're applying v1.1 to the current system.

You're about to change the current file from version 1.0 to version 1.1. Are you sure?
1. Yes, apply v1.1 to the current file.
2. No, keep v1.0 as the current version.

1
  • Windows also uses the term redo.
    – ave
    Commented Feb 29, 2016 at 20:48
5

How about 'restore' or 'recover previous' or 'previous version' or 'revert changes'

i.e.

save   cancel   restore

save   cancel   recover previous

save   cancel   previous version

save   cancel   revert changes

Also use a tooltip of something like 'undo last edit'

5

If you're trying to steer away from correct terminology (as words like 'revert' and 'cancel' are) because you're trying to target those less technically inclined then consider the following:

Confirmation Dialogue

Whilst buttons conventionally contain only one or two words, this can sometimes be ambiguous. By making the full extent of what the button does explicit rather than implicit you are being clear to the user what exactly they are agreeing to. You are showing them their full response rather than forcing them to infer what 'yes' or 'no' means based on the question.

5
  • 2
    Why do you need to have 'Yes' and 'No' as part of the button options at all?
    – Midas
    Commented Mar 1, 2016 at 18:25
  • @Jake You don't necissarily need the 'Yes' and 'No', but recreating that image would take effort and probably only score me one more upvote.
    – Pharap
    Commented Mar 3, 2016 at 4:43
  • 1
    THIS so much. Ambiguity doesn't belong into UI. I've been advocating these kinds of buttons for over 10 years. Although adding color and icons helps a lot, too.
    – analytik
    Commented Mar 3, 2016 at 14:19
  • 1
    I like the 'yes'. First, you answer the question (are you sure... ? yes) then you clarify
    – josinalvo
    Commented Mar 4, 2016 at 1:31
  • 1
    @analytik I did consider adding colour but I was a bit unsure. Usually green indicates a good thing and red indicates a bad thing, but if you've arrived here by accident then the green option would be the one you don't want to press. It's times like this it's tempting to have a third option of "I don't know" that explains the consequences in excruciating detail, but then you get into the argument of whether that's being useful or adding clutter. One user's "useful" is another user's "clutter".
    – Pharap
    Commented Mar 4, 2016 at 4:58
5

I think the word "undo" is very confusing. Why don't you try and get the things plain?

This will cancel all changes made. Are you sure?

  • Yes, cancel all changes.
  • No, do not cancel anything.

Please note I am not a native English speaker, I am not perfectly sure that the word "cancel" here would be correct.

6
  • 20
    I would expect a button labeled "cancel" to stop something the computer is doing, not something I'm doing. Discard (the changes) might be a better term. Commented Feb 28, 2016 at 22:32
  • 1
    I always find buttons with huge amounts of text on them confusing. The user expects a yes/no question so, as soon as the buttons say more than "yes" and "no" the user starts worrying that there's something subtle going on. What's wrong with "Are you sure you want to cancel all the changes made? [Yes] [No]"? Commented Feb 28, 2016 at 23:52
  • @DavidRicherby: I strongly suspect that you do not find buttons with lots of text confusing. Rather, you find them distracting. And that's a good thing because that's exactly what the designer wants. A good example is the dialog you suggested in your comment. Testing have shown that users tend to skip dialog text and only read the button. So depending on what exactly the user was doing before the dialog popped up the user may click NO to cancel the changes when that is to opposite of what the dialog is asking - simply because he's gotten used to yes/no dialogs and clicks buttons by instinct...
    – slebetman
    Commented Feb 29, 2016 at 2:34
  • 1
    ... A wordy button on the other hand will distract him and make him pause forcing him to read the words - this leads to fewer user mistakes.
    – slebetman
    Commented Feb 29, 2016 at 2:35
  • Ok you are right. We can use the short version, but i would keep the verbs: "yes, discard" and "do not discard". Commented Feb 29, 2016 at 6:52
5

I would suggest to use clear language that really explains what the user is about to expect:

Your session contains all changes made today between 13:00 and 16:00. Discarded changes are deleted permanently and can’t be recovered.

And the buttons:

[ Discard changes made during this session ]

[ Keep my changes made during this session ]

When people need the second button, there is a chance they didn’t actually wanted to be there. And are maybe in some sort of panic after reading this alarming message. You can act to this by using a label that meets their feeling (little exaggerated here but should be adapted to the situation):

[ Discard changes made during this session ]

[ Take me away from here! ]

4
  • solution is nice + 1. Your bold comment doesn't make much sense, I could name many cases for the exact opposite without even thinking, specially since build paradigms aren't the same as user paradigms.
    – Devin
    Commented Feb 29, 2016 at 21:09
  • Don't agree with "Take me away from here!", that's a bit melodramatic and would get annoying. +1 for Discard changes
    – Pharap
    Commented Mar 1, 2016 at 0:11
  • @Devin I wrongly assumed it was a user paradigm so I removed that part. However I'm not sure you did get the point if it was a user paradigm, but that doesn't matter now.
    – jazZRo
    Commented Mar 1, 2016 at 13:39
  • @Pharap It is indeed a bit melodramatic, it was just a quick example :-) But I added a note that should make that clear.
    – jazZRo
    Commented Mar 1, 2016 at 13:47
3

How about "go back in time" vs. "keep things how they are?"
You could even warn people that once they go back, the only way forward is to do the work or make the changes manually all over again, if that's true.

version control is exactly the paradigm we're using for this app, and "revert" is the word we used, but so far, testing has shown that users didn't react correctly to revert, hence why we're looking for layman options.

You may want to have a look at the Quorum evidence-based programming language in which they empirically test each design decision, including word choices, etc. to see what people intuitively understand better. It seems like the kind of thing you're trying for, and you might be able to learn something from them (or they from you).

2
  • 3
    I'll be very disappointed if I press "go back in time" and don't see any dinosaurs.
    – Pharap
    Commented Feb 29, 2016 at 1:36
  • 1
    @Pharap Oh no! You went too far back! Parameter out of range error :-)
    – WBT
    Commented Feb 29, 2016 at 16:17
3

The github desktop GUI client does this well. "Discard Changes" and "Cancel" are the two clear options that they choose.

enter image description here

Unless your use case really calls for it, you're probably adding unnecessary complexity by adding the timeframe.

2

If you want to be really sure that they click the right button, how about:

[Remove your Changes] . . . [Do Nothing]

"Remove" carries significance that they will actually remove something they have added (a bit softer than delete) - and Do Nothing is the 100% safe option to close the dialog if they entered it by mistake.

You can also color the Remove your Changes in red and the other in grey

2

I find that yes and no are ambiguous when used with negative questions in the English language, so simply avoiding the "yes" and "no" should be sufficient for clarity.

"Undo changes"

"Do not undo"

2

In your case, if the option is between undoing your changes and declining to, I would just have the user choose between Undo and Cancel. That seems to be the consensus. Also, you can't go wrong being more specific with "Yes, undo my changes" and "No, keep my changes" as others have suggested.

1

Time travel, as if we are travelling back in time. So you may show it as

[Undo step by step] [ Time Travel ] [Keep my changes]

1
  • Do people understand this though?
    – JonW
    Commented Mar 1, 2016 at 11:49
1

This will undo all changes made [time period=this session / today / custom timeframe]. Are you sure you want to continue?

Yes, undo my changes

No, cancel this operation

1

"Cancel undo" should be worded as "Restore change".

2
  • This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post. - From Review
    – Mayo
    Commented Mar 4, 2016 at 0:36
  • @Mayo I've reworded my answer to be clear about what I mean.
    – David
    Commented Mar 4, 2016 at 5:08
1

This will undo all changes made [time period=this session / today / custom timeframe]. Are you sure you want to continue?

A simple 'OK' and 'Cancel' are to the point and avoid repetition of the alert message.

1

This will undo all changes made [time period=this session / today / custom timeframe]. Are you sure you want to continue?

Undo changesCancel

"Undo changes" is better than "Ok" since it states specifically what you're about to do. "Cancel" is unambiguous for cancelling your current operation.

Alternatives could be "Revert changes" or "Discard changes".

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.