Ian Bicking: the old part of his blog


How about an objective comparison of the UIs? A reasonable standard (though not the only possible one) is to measure the number of actions a user must take to enter a value. Let's count them:

First, your favorite:
Date [22/07/2004] (dd/mm/yyyy)
1. Tab into the field.
2. Type "2".
3. Type "2".
4. Type "/".
5. Type "0".
6. Type "8". (this is a typo... hey, nobody's perfect)
7. Realize mistake; type "Backspace".
8. Type "7".
9. Type "/".
10. Type "2".
11. Type "0".
12. Type "0".
13. Type "4".

Now Mr Ed's preference:
Day [22]V Month [July]V Year [2004]V
1. Tab into field.
2. Click on day dropdown.
4. Move mouse to scrollbar.
5. Drag down the scrollbar.
6. Move mouse back up scrollbar.
7. Drag down the scrollbar again.
8. Click on "22".
9. Click on month dropdown.
10. Move mouse to scrollbar.
11. Drag down the scrollbar.
12. Click on "August". (drat! I hate making mistakes!
13. Click on month dropdown.
14. Move mouse to scrollbar.
15. Drag down the scrollbar.
16. Click carefully on "July".
17. Click on the year dropdown.
18. Move mouse to scrollbar.
19. Drag down scrollbar.
20. Click on "2004".

Notice a difference? But really, I'm cheating here because when the UI professionals do this, they count "muscle movements", and so "Drag down scrollbar" would actually be three steps: "Press down on button; move mouse; let up on button". Which more accurately reflects the relative speed and ease of typing versus mousing. But then I'd have had to add at least 10 more steps and I was getting tired of typing.

And if the text entry box were ever so slightly flexible it might suggest a "dd/mm/yyyy" format but *accept* single digits for month and day ("7" instead of "07") and two digit years ("04" instead of 2004", with reasonable defaults for the century). Then the textbox would be only 8 muscle movements (or 10 with the "mistake").

Don't use dropdowns for entering dates. Just don't. Really.

-- Michael Chermside
Comment on Re: Favour Error Prevention over Error Detection
by Michael Chermside