In application design, there's a tension between
: Users want the ability to get a lot done, but they don't want to take the time to learn lots of complicated features.
One way to address this dilemma is to use
— that is, to show users only the most important options until they ask for the advanced features.
Another good approach is to use
remain the same across many different contexts
and thus reduce complexity.
Cut, Copy, Paste
triad offers the most famous example of generic commands. These 3 basic commands suffice to let users do everything from move text to edit movies. In fact, because they work across so many applications, I view them as "
The first guidelines for generic commands are:
If at all applicable to your domain, your application should support the super-generic commands that people expect and know from other applications.
In particular, provide
commands for moving stuff around.
One of the big criticisms of iPhone version 1.0's user experience is that it doesn't support
, even though users definitely expect these commands in any modern design.
triad wasn't the original generic editing command set. The
original designers at Xerox PARC
. If you think about it, these two triads both map to all common user actions, they just do it in different ways:
(with no subsequent
Insert stuff in a new location while removing it from the old location
, followed by
Insert stuff in a new location while leaving it intact at the original location
, followed by
From the above table, it might seem that
is the superior set of generic commands. In practice, however, it forces you to specify
you're copying or moving to and from. Having 2 arguments per command complicates matters. In contrast,
employs an intermediate state: the clipboard, which is a different complication but allows each command to proceed with only 1 argument.
It's hard to say which of the two models is superior. But it's clearly best to
model and stick to it everywhere. Much confusion would ensue if people had to use one model half the time and another model the other half of the time.
Benefits of Generic Commands
Generic commands have three advantages:
, so users will
to find them (and will
for the commands without being prompted to do so).
, so users will know how to
many commands that are more specialized, so users have less to
If users are to form expectations about available commands, consistency is essential. Consistency is further enhanced when commands are always assigned the same
shortcuts. Thus, rather than looking for a command, users can, for example, simply type
when they want to copy something.
Consistency doesn't require that generic commands work identically across different contexts — just that users
that they do so. For example: cutting a piece of an image using a graphics editor typically leaves a blank area on the canvas, while cutting words using a word processor closes up the remaining text without leaving a gap.
You could expose these different operations by using separate user interface commands — such as
s — but doing so would add unnecessary complexity. Yes, when users issue a
command in the two contexts, different subroutines execute, but it's better to hide this difference and create the
that a single command performs these similar operations.
On the Web, a simple example of a generic website command is "go to the homepage." Often, sites support this command using a logo in the page's upper left corner that links to the homepage. Unfortunately, not all sites do this, which seriously reduces usability for the Web as a whole.
Currently, the only generic Web commands that truly work are those in browsers rather than on individual sites. Examples include
. In the latter case, it would be much more useful if the generic
button subsumed a page's
should print a printer-friendly view, not the view on the screen. You can implement this improved user interface by providing two CSS style sheets for the page: one for displaying on the screen and one for printing.
iPod Touch: Examples of Generic Commands
Generic commands don't have to be issued through menus and command-key shortcuts. As the following screenshots show, the
— a touch-screen tablet device that's basically an iPhone, minus the crappy phone service — uses gestures and icons instead: