Input Devices and Widgets
- function keys and buttons
Function keys are useful in almost all application areas.
Buttons serve the same purpose: they are like function keys, displayed
on the screen.
Function keys are more efficient when continuously using the keyboard,
while buttons are more efficient in interfaces that require continuous
use of the mouse.
Bottons represent the "mechanical button" metaphor.
However this metaphor often fails in a subtle way: in most instances a
mechanical button invokes the corresponding action when it is pressed,
while a button widget invokes the action when the button is released.
In some instances it is possible to cancel a button-press by moving the
mouse pointer outside the button before releasing the mouse button.
This possibility is not known by many users because it does not
correspond to a function of mechanical buttons.
- A keyboard should (when possible) only contain keys that are used
in the application.
In life-critical applications the budget is large enough to accomodate
the development of a special-purpose keyboard.
- The same function key should always invoke the same function.
For instance:
- "Return" or "Line Feed" to move the cursor to the beginning of
the next line.
- "Enter" or "Return" to confirm input and move the cursor to the
next field of a form.
- Arrow keys for moving the cursor in any direction.
- Paging keys ("Page Up" and "Page Down") for switching to the next
or previous page.
- "Delete" or "Rubout" to delete the character at the cursor position.
- "Backspace" to delete the character preceding the cursor position.
- prefix and modifier keys
These general and meaningless keys ("Control", "Alt", "Meta", "Escape", etc.)
require the user to remember a lot and often lead to errors.
- The combined use (within one application)
of keys that need to be pressed at the same time as "normal"
keys (like with "Control") and keys that need to preceed the "normal"
keys (like with "Esc") should be avoided.
An interesting evolution was seen with the emacs editor.
It used the concept of a "Meta" key, which was not available on most
computer systems, and therefore simulated by "Escape" followed by a normal
key. Later, when keyboards with an "Alt" key became available, the "Alt"
key took over the function of the "Meta" key.
- Modifier keys in combination with mouse buttons should be avoided.
The combination of modifier keys with mouse buttons was first introduced
on the Macintosh to overcome the problem of having only one mouse button.
- programmable function keys
- Programmable keys are useful to provide shortcuts for expert users.
In the past the more advanced terminals offered programmable function keys.
This feature has been replaced by software. Each function key provides a
different code, which is replaced by a (programmable) string taken from a
lookup table.
- They should never be used to provide a shortcut for passwords.
Terminals with programmable function keys usually provide a way to
display the strings programmed for each key, thus making it possible
to view programmed passwords.
So besides being able to log on without permission (by using the function
key) a malicious user could display and memorize the password and use
it on other terminals as well.
- There should be a visual indication that keys are programmable.
Unfortunately this is almost never the case.
- One should be able to easily label the programmable keys.
- When a function key sometimes provides a certain operation and
sometimes doesn't it should provide the operation in all circumstances
where that operation makes sense.
A typical problem with some World Wide Web browsers is that the
"Page Up" and "Page Down" keys do not always work, for instance not while
filling out text-fields in a form.
- mouse and other pointing devices
These modern input devices are often used in inconsistent ways.
Points to watch out for are:
- The user must be able to press the mouse keys without moving the mouse.
In practice this means that the "clicking motion" should be vertical.
The "Depraz" mouse (the infamous red mouse for the AT&T 5620 and 630
terminals) uses buttons that click horizontally, making it almost impossible
to click without moving the mouse pointer.
- A mouse should have no more than 3 buttons.
This leaves the thumb and little finger for holding the mouse in place
and for controlling mouse movement.
- The same mouse button may have different meanings depending on the
object that is pointed to, but over similar objects it should have the
same meaning.
- Modifier keys in combination with mouse keys are a bad way to compensate
for the lack of more mouse buttons.
This undesirable feature was first introduced on the Macintosh to compensate
for having only one mouse button.
It was later introduced in other window systems as well, resulting in more
modifier-key/mouse-button combination than the average user can remember.
- When the "mouse position" is not also automatically the "cursor position"
the user may misinterpret which object will receive keyboard input.
- The mouse position should not influence the handling of keyboard input
without clicking a mouse button first.
The "xv" imaging program and the "xfig" drawing program violate this rule:
they require the mouse pointer to be positioned in the textfield (but no
mouse click) before you can enter text in the field.
Early window systems used a strict click to type or
no click to type interaction modes.
More and more applications or window systems offer a mix of these two
modes, which can be confusing.
In Windows'95 for instance, you must click in a window to make it active
(and accept keyboard input), but when a dialog box is popped up it
is made active without clicking in it.
- A mouse is not suitable for freehand drawing. A light-pen is better.
- Pull-down menus require extra mouse movement to reach the menus.
Pop-up menus can be activated more quickly, but require an additional
hierarchical level.