Have you ever used a graphical drawing program on your computer? The palette of drawing tools you
use is an example of the use of modes. When you select the draw tool, you are in the draw mode. Your
mouse movement, mouse button presses, and keyboard keystrokes will all produce some type of
drawing actions. Then select the text tool, and the same mouse and keyboard actions produce text and
text functions. Modes are a necessary part of many software interfaces. You probably can’t avoid using
modes altogether, but use them only when needed. A common example of a familiar and unavoidable
mode can be found in any word processor. When you are typing text, you are always in a mode—
either insert mode or replace mode.
It’s easy to find interfaces that put users in modes unnecessarily. Any time a message pops up on the
computer screen and users can’t do anything else in the program or even anywhere else on the screen,
they are imprisoned by a modal dialog! There are two types of interface modes, and although they may
be necessary in some cases, they are not needed or are unnecessarily restrictive most of the time.
The first type is application modal. When in an application mode, users are not allowed to work
elsewhere in the program, or it places them in a certain mode for the whole program. For example, if
working with a database of information and the view data mode is chosen, the program will not allow
users to add, delete, or modify the data record. Users would have to change to the update data mode
to perform these actions. This may be appropriate for users who are only allowed to browse the
database. What if users are constantly viewing data and wish to change data when they want to? Why
should they be forced to change modes all the time? Why are users forced to either be in view or
update mode in the first place? A more user- and task-oriented approach is to let users access the data
without being forced to choose a mode beforehand. If they choose to modify data, they should be able
to save the data and update the database without being in a particular mode. If they don’t make any
changes, they can access a new data record or exit the record, without having made any decision about
program modes. Perhaps the best method is to display data in a format that is consistent with a user’s
access. If limited access, display static text; if uses have update access, provide entry fields that are
updateable