Images from GUI Bloopers, by Jeff Johnson. Used without permission.
What's wrong with this?
How does the user move something from one list to the other? Developers
sometimes make the mistake of making some functions
only accessible through key combinations, gestures, or
context-sensitive pop-up menus. These functions are not displayed
explicitly
anywhere in the application, such as in a menu or button. To use these
functions, a user has to know that they exist and know
how to invoke them. Unfortunately, this can't be learned simply by
using the software, they have to find out from an external source
such as a manual or another person.
An improvement on the figure above is shown below.
Design Rule:
Application functionality should be accessible
by seeing and pointing, not remembering and typing. In the second
figure, "Add" and "Delete"
buttons provide a visible means of adding and deleting items from the
list on the right. Hidden UIs are ok, as long as there is another way
to invoke functionality besides key combinations, gestures, or
context-sensitive pop-up menus.