Designing an Intuitive Interface
By Eric Armstrong on Jul 23, 2007
I once designed an interface that was frequently described as "intuitive". It was for an outlining program. The key concept that made it "intuitive" was (tada!) orthogonality.
Orthogonality makes it possible for an intelligent person to make a "reasonable guess", and have their expectations rewarded a fair percentage of the time.
It worked like this:
- The CTRL key was used for all text operations
- The ALT key was used for all structure operations
- Other keys had defined meanings that were substantially the same in either context.
We made sure that those expectations were rewarded. We wrote down the meaning for each of the keys, created a big table, and mapped all of the operations we needed to provide into that table.
Of course, there were many possible names for each of the actions. It took a couple of weeks to figure out a set of names that allowed for minimal keystroke combinations like CTRL-C and ALT-C.
To do that, we had to make sure that we didn't have abbreviation conflicts. So if we had a "copy" operation and a "collapse" operation, at least one of them had to be renamed. (In that particular case, we used the numeric minus and plus keys for structure collapse and expand operations, thereby avoiding the naming conflict.)
The moral of all this is that orthogonality is the key to intuition. It lets the user formulate general principles, and form expectations based on those principles. Then it rewards their expectations.