Strive not for unnegativity

c: | f: /

Even in the touchy-feely age of gestures and finger taps, user interface design is littered with confusing options and crappily worded dialogs.

One of my little bugbears with utility software — apart from the fact it’s almost uniformly rubbish — is the fact it’s programmed by people who don’t get out much. These people have computer mindsets with computer thinking and it often manifests itself in the human interface.

I often encounter usability barriers with dialog boxes and naming conventions for function attributes. For example, what does the following option do?

Prevent unauthorized access:
[Yes] [No]

Selecting “Yes” yields a largely predictable result: “stop unauthorized people from getting in”, but selecting “No” is perhaps more difficult to fathom. Is it:

  1. Allow unauthorized access (anyone can see the resource)
  2. Prevent authorized access (only unauthorized users can see the resource)

Tricky.

It can get silly:

do_not_inhibit_unnecessary_advanced_admin_menus=1

Contrived maybe, but I knew someone who aspired to make such options the norm in his software because it made sense to him at coding time. It’s anyone’s guess what setting this to 1 (yes) or 0 (no) would do!

Textpattern has an example of a badly-named attribute in the <txp:title /> tag: no_widow. A widow is a typography term that determines if the last word of a headline can appear on its own line if it wraps. Thus no_widow="0" means “allow the last word to appear on its own line”. Double-negatives are just blaergh! widow would have been a much better name — and shorter.

Dialog boxes are especially awkward, especially in Windoze apps. I’ve seen:

Are you sure you want to quit? Please make sure you have saved your work to avoid loss of data. [OK] [CANCEL]

Is OK an acknowledgement that you will save your data before closing? Does Cancel close the program or does it cancel the save operation?

I’m not the world’s greatest coder or UI builder, and I’m guilty of naming things badly, but with the benefit of hindsight I can offer aspiring programmers the following advice:

  • use positive affirmations instead of negative ones
  • be clear and concise to define what is happening and what each option will do
  • be consistent in wording
  • use the third person in text

Scribe for me

(required)

(required, never made visible)

(optional, linked with rel="nofollow")

(required)