2024-05-31

Simplification of triple-choice prompts to dual-choice

I have a lot to say about the modern trend in graphical user interface design which aims to achieve an impossibly clean look at the expense of usability, but this is going to be the subject of another blog post. In this post, I want to talk about simplifying the user interface when the simplification is clearly a win, both from a usability point of view and, incidentally, from an aesthetics point of view. Specifically, I want to show how a yes/no/cancel prompt can be reduced to just a yes/cancel prompt.

(Useful pre-reading: About these papers)

A typical example of such a prompt is when an application asks the user what to do when the user tries to quit the application while a file is unsaved.

We have two boolean variables:

  1. To save or not to save.
  2. To quit or not to quit.

Since there are two boolean variables, there is a total of four conceivable options:

  1. Save and quit.
  2. Quit without saving.
  3. Save without quitting.
  4. Do not save and do not quit.

The very first programmers of interactive applications did not fail to notice that saving without quitting is not particularly useful, so in fact we only need three options, and this has given us the traditional triple-choice yes / no / cancel prompt, variations of which you see in almost all applications out there. One of the variations is as follows:

Save the file before quitting? [Yes] / [No] / [Cancel]

Needless to say, presenting the user with an application-modal prompt containing not one, not two, but three options is terrible. (If you think that "terrible" is a harsh word for such a low-impact problem, then please read michael.gr - Problem Severity Calculation Formula.)

Note that the replacement of a generic "Yes" / "No" / "Cancel" prompt with a more specific "Save and exit" / "Exit without saving" / "Do not exit" prompt is probably an improvement, but this is not what I am discussing here.  I would like to reduce the number of choices to less than three; once the number of choices has been reduced, finding some better wording for the remaining choices is all the better.

Also note that the best solution to multiple choice application-modal prompts is of course to restructure software, to rethink software from scratch if need be, so that they can be completely eliminated. For example, all prompts about saving before quitting could be a thing of the past if we were to abandon the notion of saving, or even the notion of quitting. However, such exotic approaches are off-topic in this discussion.

A blog author who has also examined the problem of triple-choice prompts, and explains it better than me, is Martin Kleppmann in "Yes/No/Cancel causes Aspirin sales to soar".  Interestingly enough, Martin Kleppmann follows a thought process which is similar to mine, but does not present a proposal as to what to do instead. 

So, here is my contribution to the subject:  

Quite often, a triple choice prompt can be simplified to a dual-choice prompt!

We can eliminate the option to save and quit because we offer the option to not quit, which, if chosen, makes saving or not saving irrelevant: for as long as the application is still running, the user can always achieve saving and quitting by simply saving, and then quitting. (Duh!)

Thus, we can offer the following simplified prompt:

Quit without saving? [Yes] / [Cancel]

The only way in which this could be further simplified would be to tell the user that they cannot quit because they have unsaved changes, and only show an [OK] button, but that would be annoying.

The traditional triple-choice prompt may have been invented for the benefit of users who are in the habit of quitting while having unsaved changes that they intend to keep, but I hope that we can all agree that this is not a healthy habit worth facilitating, certainly not if facilitating it would add the slightest bit of inconvenience to other, more legitimate, (and I suspect more frequently occurring,) use cases:
  • The user quits intending to revert changes.
  • The user attempts to quit while unaware that they have made changes.
  • The user does not intend to quit, but issues the quit command accidentally.

Special workflows can be facilitated by separate commands that specially target such workflows. For example, saving every single unmodified file can be accomplished with a "Save All" command, and this has the benefits of:

  1. Being useful at any time, not only when quitting, and 
  2. Sparing the user from having to do one click per unmodified file.

    To summarize:

    Presenting the user with only two choices is immensely better than presenting the user with three choices, when the missing choice can be trivially accomplished in an immediately obvious way.

    No comments:

    Post a Comment