April 24 2008

Cancelling “Yes or No”

Curtis inquired in a comment on my last post about “Yes” and “No” being poor menu options. There are many UI design sources that suggest this, but I go as far as to say dialogs should never use Yes and No as options. OK is almost as bad unless it’s the only option. Why? People don’t read dialog boxes. This is how most users see dialog boxes:

If a user feels very cautious or isn’t used to computers they’ll read the dialog text, but most of the time they’ll read the buttons and choose the one that’s the default, unless the other seems more appropriate.

David Chisnall gives a particularly bad example:

When you put your card in a cash machine, you’re presented with a long question, and two options: Yes or No. You need to read this question every time, because sometimes it asks if you want the UI in English, and sometimes if you want it in Welsh. If the options were “English” and “Welsh,” you could completely ignore the question and skip to the right button immediately.

Windows software is particularly bad for the Yes/No problem, but even MSDN says:

Prefer specific responses over Yes and No buttons. While there’s nothing wrong with using Yes and No, specific responses can be understood more quickly, resulting in efficient decision making.

Yes and No are terrible because their meaning is easily swapped. If you use verbs for your options, this can’t happen. You can’t rewrite a dialog’s text so that the meanings of Cancel and Continue are reversed.

Even better are verbs that use the user’s language. OS X “Are you sure?” dialogs do this, giving the options “Save” and “Don’t Save”. The user likely wants to save, but they’re unlikely to be hankering for some yessing.

Related Posts

3 Comments

  1. Bruce
    Apr 24 2008
    12:27 pm

    The problem is at least partly rooted in the APIs, which form the basis of developer’s imagination (APIs are stronger than documentation). Win32, for example, has a trivial API for message boxes with yes/no, ok/cancel, and abort/retry/ignore. The APIs gave birth to thousands of unimaginative dialog boxes on the platforms, despite a good recommendation in the platform docs to do otherwise. Making bad UIs easy is a core part of the problem.

    Really, the API writers should expressly disallow horrible dialogs, or make it easier to make good ones.

  2. Steven Fisher
    Apr 24 2008
    12:36 pm

    I’m impressed, Bruce. You got through a comment on Windodws Yes/No Abort/Retry/Fail insanity without mentioning “(Press Retry to debug.)” in Visual Studio. :)

  3. Pingback tewha.net » Blog Archive » Yes/no
    Apr 26 2008
    9:03 pm

    [...] Pike posted on the silliness of Yes/No and OK/Cancel a few days ago. Today, I saw the best example ever of poorly-named buttons. This is pretty typical [...]

What do you think?