UI Patterns and Techniques

Jump to Item


From the Mac OS/X Finder

Use when:

The interface uses a scrolling list, table, dropdown, combo box, or tree to present a long set of items. These items are sorted, either alphabetically or numerically. The user wants to find or select one particular item.

This is often used in file finders, long lists of names, and dropdown boxes for state or country selection. It could also be used for numbers -- years, dollar amounts, etc. -- or even calendar time.

Why:

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

Another nice thing about this technique is that it lets the user keep their hands on the keyboard. As a user moves through a form or dialog, they 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 them, and they 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.

How:

When the user types the first letter or number of the item they're 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 them 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.

Examples:


From a Web application for bug-tracking

When an application (Web-based or otherwise) asks the user for a bunch of settings like this, the ability to quickly find and select items from the keyboard becomes a huge productivity boost.


From GNU Emacs

A variant of Jump to Item can be found in GNU Emacs's incremental-search facility. After the user enters i-search mode (via keystrokes instead of focus traversal, unlike most GUIs), each character typed brings the user to the first instance of that cumulative string in the document. Sorting is not an issue.

Once an occurrence of the string has been 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 doing: is it a common string, or not? Are they clustered together, or scattered?