Improving the usability of an interface – something we all want, right? So, make the UI do more or less what the user ACTUALLY EXPECTS of it yeah? Yes, good start. So why do most UIs fail at this in one subtle way? It’s what I call the premature stimulus response. In other words…
“When a UI responds to user input in the context of stimuli they haven’t been given time to understand.”
Humans are slow
If we’re talking about visual stimulus, the average reaction time of a human is 0.25 seconds. Add to this time taken to understand and decide an action upon said stimulus and a value of over 1 second is more realistic (see the OODA loop).
So what?
For example, consider a dialog box, suddenly appearing centre-stage in the screen. If the user was to click on it, or press a key within 0.25 seconds of it appearing, then they are probably not reacting to its appearance – instead they were probably intending to action something else.
It gets worse
In an interface without a pointing device, such as on TV, using a traditional remote control, the problem is exacerbated, since the user only need press OK to commit whatever action happens to come into focus. When using an infra-red remote control, this problem is compounded further, because it usually takes a fraction of a second for the receiving device to recognise the incoming IR pulses as something it needs to deal with and push that signal up through the software stack to the UI layer as a user input event.
What can we do?
I have a simple suggestion to fix this issue in most cases, which draws its inspiration from the behaviour of nerve stimulation – called the UI Refractory Period. That is…
“To render a control briefly inactionable, after a change in UI state, long enough for the user to assimilate said state change.”
The few interfaces which loosely employ some such technique, do so usually just as a side-effect of having some animated transition when a dialog appears. Sometimes, a button or other control is disabled until the transition completes. This is actually a very good way of ‘easing the user into’ the change in UI state. But, for consistency, a UI Refractory Period should still be implemented, whether or not an animated transition is present – otherwise, disabling transitions in an interface could make LESS usable 🙁
How?
The UI Refractory Period could be some function of the ‘impact’ of the state change. That is, the amount/importance of information appearing. A good example of this is the Firefox Add-on confirmation dialog, which forces you to wait a few seconds, rather than letting you instantly mash RETURN and accidentally install some random plugin.
A simpler example?
But, in its most simple incarnation, a UI Refractory Period could simply be used to filter out double-click mania, for those trigger happy users who click things a little too eagerly.
Please start designing this kind of behaviour into your UIs – your users will thank you. OK, they won’t, because good design is transparent 😉