How to build great forms

Aristotle said, “We are what we repeatedly do. Excellence, then, is not an act, but a habit”. What many people don’t realize is that excellence isn’t achieved at the macro level. You don’t reach excellence by making one great decision. Instead, you reach excellence through making lots of small decisions consistently well. Here are some simple guidelines to help you improve the quality of your user forms:

1. Do your research

When designing a user interface, take the time to read up on stuff like eyetracking research before you design your forms. For example, did you know that you can reduce your users saccade time from 500ms to 50ms per input field, just by placing form labels above the field instead of left aligning them in another column?

2. Know your user (see #1)

Talk to people! Ask questions. And when all else fails, use common sense. For example, we recently redesigned our date input fields. We were using the popular date picker which allows user’s to select the date from a popup calendar. We thought this feature was cool, until we realized that conference organizers usually register their events 6 or more months in advance – that means they have 6 or more unnecessary clicks just to get to the right month. This didn’t make sense to us, so we went back to the drawing board and opted for regular drop-down date inputs instead.

3. Reduce friction

Every input field that you have people fill out is friction. With every second that you keep people waiting, you increase your likelihood of losing them. You need to do everything you can to reduce this friction. Sit down and evaluate every question in your form design and ask yourself what it would take to get rid of it.

I came across a good example of this yesterday as I was working on the registration form for EventVue. Since our conferences can be located anywhere, we need to collect time zone information. Every website I’ve found requires the user to manually enter their time zone. Why do they do that? Why can’t the browser just tell you which time zone the user is in and automatically select it for them? I spent a day looking into this problem, and sure enough, all it took was some time and some javascript to detect the user’s time zone automagically. So what fields do you have that you could eliminate?