1

Background

Imagine there's a UI that contains a list of "talks". Each talk has fields such as "title", "speaker", and "description". Users can edit talks but have to explicitly save their changes (there is no autosave).

Scenario

In the following scenarios, a user edits a talk, then switches to editing another talk without saving the first talk. This triggers a prompt.

Scenario 1:

A user is editing a talk and clicks on another talk without saving their changes first.

Scenario 2:

A user is editing a talk and accidentally clicks on another talk before they got a chance to save their changes.

Prompts

I'm looking for the most user friendly prompt.

Option A

+-------------------------------+
| Save changes to current talk? |
|                               |
| [Cancel]      [No]      [Yes] |
+-------------------------------+

Option B

+------------------------------------------------+
| The talk you were editing has unsaved changes. |
|                                                |
| [Save changes]               [Discard changes] |
+------------------------------------------------+

Option C

+--------------------+
| Discard changes?   |
|                    |
| [Discard] [Cancel] |
+--------------------+

Option D: Have a suggestion?

5
  • There are a few useful questions on this site around similar situations. Particularly naming conventions of buttons (i.e. use verbs for buttons) ux.stackexchange.com/questions/35210/… ux.stackexchange.com/questions/9946/…
    – JonW
    Oct 8, 2014 at 10:12
  • Have you considered [ Save ] [ Don't Save ] [ Cancel ]? The message should contain an option to save or discard changes and cancel the action and continue editing. Thus three options
    – GWv
    Oct 8, 2014 at 11:21
  • @GWv I think virtualnobi's feedback about option A applies to your suggestion as well. For the cases where there are two options, the idea is that: (B) "cancel" is done by saving and going back to editing the previous talk; (C) "save" is done by cancelling and explicitly saving the talk.
    – Dennis
    Oct 8, 2014 at 11:29
  • I would not put a save behind a cancel action. Cancel = cancel, it leaves the current state as it is without saving or removing anything.
    – GWv
    Oct 8, 2014 at 11:41
  • @GWv I agree with you in most cases, but here there is no harm. If the user wasn't done editing, they save the talk and go back to it to continue editing it. There is no harm for saving the talk prematurely (it would also happen with autosave).
    – Dennis
    Oct 8, 2014 at 12:32

1 Answer 1

1

(A) has the problem that the message is about saving, but the Cancel function cancels the navigation.

(B) does not have the option to back out, so it does not support your scenario 2 ("...accidentally...").

(C) suggests an action which is rather improbable (assuming most people want their changes saved :-)

If I only had these choices, I would add the navigation cancellation to (B), in one of these ways:

Leaving X will discard your changes.
[Stay]       [Discard]        [Save]

Changes to X have not been saved.
[Cancel Navigation]  [Discard]   [Save]

Assuming users rarely want to discard their changes, this option is in the least prominent middle position.

But I'd recommend to use autosave (plus undo, of course) instead these days.

3
  • The reasoning behind the missing "Cancel" in option B is that it may not be needed. Instead the user can save their changes and then go back to editing the talk they were previously editing. Since the chance of a misclick is low, the cancel button isn't added because a workaround is possible in those cases.
    – Dennis
    Oct 8, 2014 at 10:53
  • Re option A: I had one person mention that that "Cancel" and "No" are confusing since they both have a negative context.
    – Dennis
    Oct 8, 2014 at 10:57
  • Well, yes, [Cancel Navigation] might be mimicked by [Save] and [Back]. There's no undoing anymore, though. And it's like a logic riddle: Can you find a replacement of [Cancel Nav] given only [Save] and [Discard] (and the [Back] button of your browser)? Oct 8, 2014 at 11:00

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