The Second Edition is out!
Visit to read excerpts and learn more.

Jump to Item

From the Mac OS X Finder


When the user types the name of an item, jump straight to that item and select it.

Use when:

The interface uses a scrolling list, table, dropdown, combo box, or tree to present a long set of items. These items are usually sorted, either alphabetically or numerically. The user wants to select one particular item quickly and accurately, and preferably with the keyboard.

This pattern is often used in file finders, long lists of names, and dropdown boxes for state or country selection. You can also use it for numbers --such as years or dollar amounts -- or even calendar time, like months or days of the week.


People aren't good at scanning down long lists of words or numbers. But computers are. Let them do what they're good at!

Another nice thing about this technique is that it lets the user keep her hands on the keyboard. As a user moves through a form or dialog box, she might find it nice to select from a list simply by typing the first few characters of the item they want -- the system then picks the item for her, and she can continue on to the next thing. No scrolling or clicking is necessary; the user's hand never has to move from the keyboard to the mouse.


When the user types the first letter or number of the item she's looking for, jump to the first item that matches what the user typed; automatically scroll the list so that the item is visible, and select it.

As the user types more characters in rapid succession, keep changing the selection to the first exact match for the whole user-typed string. If there is no match, stay put at the nearest match, and don't scroll back to the top of the list. You may want to beep at the user to tell her that there's no match -- some apps do, some don't.

Martijn van Welie, in his patterns collection, has defined a pattern very similar to this one entitled Continuous Filter.


From GNU Emacs

A variant of Jump to Item is used by the GNU Emacs incremental-search facility. After the user enters i-search mode via Control-S, each typed character brings the user to the first instance of that cumulative string in the document. It doesn't matter that the original material wasn't sorted.

Once an occurrence of the string is found, the user can find subsequent ones by hitting Ctrl-S repeatedly. In some ways, this incremental search is more convenient -- and certainly faster -- than typical desktop "Find" dialogs, which don't update continuously as you type the search string.

Furthermore, recent versions of Emacs highlight all other instances of that string in the document, in addition to scrolling to the first one. This gives the user lots of extra contextual information about the search they're performing: is it a common string, or not? Are they clustered together, or scattered?