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 three-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.) 

A blog author who has also examined this problem 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 three-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.

    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