Oracle Blog

What's New, What's Cool

Designing an Intuitive Interface

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 didn't have tell anyone what the ALT key and CTRL key did. After learning six or seven commands, people figured it out on their own. Then, if they learned that CTRL-X cut the selected text to the clipboard, they had a natural expectation about what ALT-X would do.

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.