The patterns in this chapter deal with the problem of navigation. How does a user know where they are now, where to go next, and how to get there from here?
The reason why I call it a “problem” is this. Navigating around a web site or application is like commuting. You have to do it to get where you need to go, but it’s dull, it’s sometimes infuriating, and the time and energy you spend on it just seems wasted. Can’t you do something better with your time, like playing a game or getting some actual work done?
The best kind of commuting—all else being equal—is none at all. Having everything you need right at your fingertips, without having to travel somewhere, is pretty convenient. Likewise, keeping most tools “within reach” on an interface is handy, especially for intermediate-to-expert users (i.e., people who have already learned where everything is). Sometimes you do need to put lesser-used tools in separate dialog boxes, where they don’t clutter things up; sometimes you need to group things onto different pages so the interface makes sense. All this is fine, as long as the “distances” that a user has to travel remain short.
So: less is better. Let’s talk terminology for a minute and come back to this concept.
Let’s say you’ve built a large web site or application that you’ve had to break up into sections, subsections, specialized tools, pages, windows, and wizards. How do you help users navigate?