|
State independence |
State mismatch can occur when the system response to a
user action depends on the system state. Therefore, a straightforward way to
prevent state mismatch is by defining user commands that are independent of
the system state. For example, suppose that a button is defined to actuate a
function A when the system is in a certain state, and to actuate a function B
otherwise. Such buttons are error-prone, because the operator might forget to
examine the system state before pressing the button. To prevent activation of
the wrong function we need to redefine the user commands so that they will be
state independent. |
|
|
Control duplication A simple way to avoid activation of the wrong function is
by control duplication. In the example, we can replace the button by two
dedicated buttons; one that actuates function A and the other that actuates
function B. With the dedicated buttons, users apply direct mapping from the
function to the control, enabling seamless operation. In the example of cable
TV, we can replace the state-dependent On-Off clicker button by two dedicated
buttons, one for controlling the TV set and the other for controlling the
cable converter. With this design change it is implausible that the user will
turn off the converter when trying to turn on the TV set. |
|
|
Virtual controls Virtual controls make use of auxiliary controls, by
applying them simultaneously. For example, when depressed, the Shift key
changes the function of the keyboard letters from small to capital. Virtual
controls facilitate state independent functions. For example, consider the
numeric and scroll keys of a cable-TV clicker, used to scroll the channels of
either the TV set or the cable converter, depending on a clicker mode. This
arrangement is error-prone, because users often disregard the mode. To avoid
these errors we add a “shift” key that monitors the selection of the
controlled unit: when depressed, it is used to set the TV, and when not depressed
it is used to scroll the converter. |
|
Eliminating UI states |
Suppose that we have changed the design so that all the
controls are state independent. In the example of cable TV remote control,
this may be the case once we duplicated the On-Off button, and added a
“shift” key that duplicates the numeric and scroll keys. In this case, since
the state was originally defined only for the purpose of functional
multiplexing, the states become redundant, and can thereof be eliminated. |
|
Automatic dependency termination |
Another means to avoid state mismatch is by terminating
the exceptional state automatically. One method, most effective for naïve
users, is by time out. This method is well known to users of electronic
devices such as mobile phones. Another method is by the normal actions. For
example clicking the mouse on the text editing area sets the cursor there,
but also unselects the text. |