views:

108

answers:

7

Hi,

I have this application where the users can change text files and when they forget to save them, a little message pops up reminding them that the changes are not saved and asks them if they want to save the changes or not with two buttons "Yes" and "No". It also has a little checkbox that says "Disable this warning". And as the same says, if the user checks it, the message will never pop up again when the text files have unsaved changes.

A couple of questions:

1) Should the checkbox value (if they checked it) be remembered if the user only selects "Yes", only selects "No" or any of them?

2) Let's assume the user checked the checkbox so is not warned again about unsaved changes. What should be the expected behavior the next time the user forgets to save the changes?

Should I always assume a default action (yes: save changes, no: discard changes) after the user disabled the warning? If so, which action?

Or should I always save the changes or always discard the changes accordingly to the last user action right after the he disabled the warning?

+2  A: 

Make the checkbox say '[ ] And always do this'.

Then it's clear that if they select 'No', and check it, it'll always choose 'No', and vice versa.

Noon Silk
It's clear, but only after a few seconds. I think the user will generally click the box without thinking about the repercussions just to make the box go away. And how do you allow the user to fix it if they change their mind?
Imagist
It should be changable in a preferences area. And they don't need to click the checkbox to get the dialog to go away; it is an optional component, surely?
Noon Silk
This is something I might consider and of course, there will be a preferences dialog where the user can change everything. And if the user will "generally click the box without thinking about the repercussions just to make the box go away", that's his fault, he should have read the warnings, they are there for a reason.
Nazgulled
Keep in mind that no-one will ever read warnings.
Noon Silk
If they don't read it, then they shouldn't check the warning. If they check it, it's their fault if they don't read what the check is for.
Nazgulled
Nazgulled, in spite of your attitude it's a well established fact that users don't read dialogs. You can blame users if you wish, but a smug attitude doesn't make your software easier to use. Remember, the reason we write software in the first place is to make it easier for a user to accomplish a goal. Dialogs, by and large, are obstacles the user must overcome. Fewer obstacles == happier users. But please take all the suggestions in this question with a grain of salt -- none of us know your actual customers.
Bryan Oakley
I'm not even talking about my users, my customers or even my application anymore. I also don't care that it's a well established fact that users don't read dialogs. Just because it's fact, just because it's like this for years, doesn't mean it's the right thing. This is like saying IE6 has been around for years being the market leader and that we should have never be worried about standards that IE6 don't understand. Web developers refuse to do that and I refuse to care if they are too lazy to read a few words in a dialog.
Nazgulled
I understand that some of you can't think like this or will loose to many costumers, but that's not an issue for me. I'm a freeware software developer that develops initially for me, if it helps some people, fine (that's why I also release the software to the public), but they are not my target audience, I am. You guys are reading too much into my software problems :)
Nazgulled
+3  A: 

Since the checkbox says "Disable this warning", that's exactly what it should do. Don't be wishy-washy with what you're presenting to the users, just do what you say you're going to do!

If they forget to save their changes and they aren't warned, then they should not have checked the box. You are correct to always discard changes when the warning is disabled.

Mark Rushakoff
A truly friendly interface, however, would go ahead and save the changes anyway, perhaps to a temporary file. Then there could be a "recover last changes" command that would load up these automagically saved changes.
Bryan Oakley
I agree, that would be friendlier. The user shouldn't *count* on that behavior being there, though, IMO.
Mark Rushakoff
That follows the idea of not surprising the user, but punishes the user for their mistakes. Even saving to a temp file is only a half-assed solution unless you make it easy to revert to that temp file.
Imagist
Automatically saving the file is not an option at the moment, it may be in the future, but for now, it's a feature I don't want to be bother with. Besides, this is not your typical application with a menu at the top where you can open, create, save, save as, print, etc...
Nazgulled
Agree with the statement that auto-saving "is only a half-asse solution unless you make it easy to revert". The revert is the whole reason why the automatic save can be an effective solution. I'm not suggesting to just auto-save, you need to make the whole ecosystem work -- auto-save, and easy to unto the effects of the auto-save. There is no simple solution to a truly easy to use interface, it takes work. Copping out and throwing up a dialog, though, is also arguably a half-assed solution (one that many, many applications make, but half-assed just the same).
Bryan Oakley
+5  A: 

What you're doing is a common UI pattern but IMHO I think it's not a good user experience. Here is an alternative that I think is much better:

  • New files save automatically every minute or so (vary this by how long it takes to save);
  • It saves to a temporary file;
  • If the user saves a file then give it a name and save it to that location;
  • If the program crashes then the temp file is still there. The program should ask what you want to do with it when you start up;
  • Closing the program should have a simple checkbox "Save Now?" (Yes/No). None of this "Are you sure you want to..." rubbish. Not saving should leave the file as a temp file;
  • Getting rid of the temp file requires selecting a Discard action (with confirmation of "Discard Now?");
  • Opening an existing file has the same save every minute functionality except that the saves are to a temporary file. Never modify the original unless the user explicitly saves the file, at which point copy the temp file over the original.
  • Temporary files should be visible on a collapsible pane (or equivalent) including the date of the last edit and preferably a preview to remind the user what it is;
  • There should be no option to disable this behaviour. It's not invasive or intrusive. As Joel says, every time you give a user an option you force them to make a decision. Options are way overused.

To specifically answer your question: you should never discard anything unless the user asks you to.

Controlling Your Environment Makes You Happy is a must-read on usability. Don't Make me Think! is too.

cletus
+1 for that last bit: never discard anything unless the user asks you to. Great advice.
Bryan Oakley
That may be the best solution for some kinds of apps, but not for mine. Like I said in a comment above, this is not your typical application with a menu where you can create new files, open files, save them, or save them as, print, etc... Doing all that goes way beyond what this application is about.
Nazgulled
+2  A: 

Or should I always save the changes or always discard the changes accordingly to the last user action right after the he disabled the warning?

I believe that should be the expected behavior. It would be nice if you had a hint on the screen of the default action that will take place.

I recommend the book About Face 3: The Essentials of Interaction Design for some really good GUI designing ideas.

Nick D
+1 for recommendation of About Face. It should be required reading for anyone designing a UI of any sort.
Bryan Oakley
A: 

Better option is Auto save the document into drafts. It is possible to do that asynchronously.

A: 

I say, always automatically save. Forget the dialog. If they want to exit without saving, make that an explicit action on the file menu.

Think of how often you want to save versus those times you don't. The ratio is probably 100 to 1 or even 1000 to one. You want to inconvenience the user 999 times to protect them once?

Bryan Oakley
This would be sensible if it were at all in line with user expectations. It's bad to inconvenience the user, but it's *worse* to surprise them.
Imagist
Once again, not the typical application with a menu, there's no main menu on my application. It works differently.
Nazgulled
It's impossible to say whether it's in line with user expectations without knowing who the real users are. I agree with that comment up to a point but there are examples that prove sometimes a scheme like this works (think gmail and google docs for example)
Bryan Oakley
If there's no menu, I think that's all the more reason to always automatically save since that's what the user will probably want 90% of the time. Why inconvenience them with a dialog if they likely will click "yes, please save" the majority of the time?
Bryan Oakley
+1  A: 

1) You should also have a “Cancel” button that aborts the exiting, allowing the user to return to the document to see if s/he wants to save it or not.

2) “Disable this warning” is a little too geeky. Try, “Don’t show this warning again.” This tells the user that the warning will not be shown and implies no saving will happen in future cases. That’s probably not a good idea, and you should reconsider providing such a warning-suppression feature at all.

3) Far more often in this situation a user will want to save things than not, so that’s what your app really should do if there’s no warning. The checkbox in that case should be “Always automatically save changes when exiting.” This implies no warning will be shown in future cases.

4) If you do 3, you also need an alternative way for user to recover from totally botching up the file and not wanting to save. It could be an Undo dialog that allows the user to make big jumps backwards or maybe a menu item like “Go back to previous saved version.” Ideally, this feature should be available even after the user exits and re-opens the file.

5) If users can be made aware of 4), consider making 3) the default or sole option --don't have the warning at all.

All this assumes that periodic implicit saving is not an option.

Michael Zuschlag