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

Good Defaults

Visual Studio profile screen


Wherever appropriate, prefill form fields with your best guesses at the values the user wants.

Use when:

Your UI asks the user any questions requiring form-like input (such as text fields or radio buttons), and you want to reduce the amount of work that users have to do. Perhaps most users will answer in a certain way, or the user has already provided enough contextual information for the UI to make an accurate guess. For technical or semi-relevant questions, maybe he can't be expected to know or care about the answer, and "whatever the system decides" is okay.

But supplying defaults is not always wise when answers might be sensitive or politically charged, such as passwords, gender, or citizenship. Making assumptions like that, or pre-filling fields with data you should be careful with, can make users uncomfortable or angry. (And for the love of all that is good in the world, don't leave "Please send me advertising email" checkboxes checked by default!)


By providing reasonable default answers to questions, you save the users work. It's really that simple. You spare the user the effort of thinking about, or typing, the answer. Filling in forms is never fun, but if this pattern halves the time it takes him to work through it, he'll be grateful.

Even if the default isn't what the user wants, at least you offered an example of what kind of answer is asked for. That alone can save him a few seconds of thought -- or, worse, an error message.

Sometimes you may run into an unintended consequence of Good Defaults. If a user can skip over a field, that question may not "register" mentally with him. He may forget that it was asked; he may not understand the implications of the question, or of the default value. The act of typing an answer, selecting a value, or clicking a button forces the user to address the issue consciously, and that can be important if you want the user to learn the application effectively.


Prefill the text fields, combo boxes, and other controls with reasonable default values. You could do this when you show the page to the user for the first time, or you could use the information the user supplies early in the application to dynamically set later values. (For instance, if someone supplies a United States ZIP code, you can infer the state, country, and sometimes the city or town from just that number.)

Don't choose a default value just because you think you shouldn't leave any blank controls. Do so only when you're reasonably sure that most users, most of the time, won't change it -- otherwise, you will create extra work for everybody. Know your users!

Occasional-use interfaces like software installers deserve a special note. You should ask users for some technical information, like the location of the install, in case they want to customize it. But 90 percent of users probably won't. And they won't care where you install it, either -- it's just not important to them. So it's perfectly reasonable to supply a default location.

Jeff Johnson discusses this issue at length in Web Bloopers: 60 Common Web Design Mistakes and How To Avoid Them (Morgan Kaufman). He provides some hilarious examples of poor default values.


From Photoshop

When an image canvas is resized in Photoshop, this dialog box appears. The original image was 519 x 364, as shown. These dimensions become the default Width and Height, which is very convenient for several use cases. If I wanted to put a thin frame around the image, I can start with the existing dimensions and increase them by just two pixels each; if I wanted to make the image canvas wider but not taller, I only need to change the Width field; or I could just click OK now and nothing changes.