30 May, 2008

Effective use of forms on websites


People don't like filling out forms in the real world, and especially not while using the web. Forms are complicated, distracting, and take control away from the user. That is, unless they're designed effectively.

Most people hate filling out tax forms, registration forms, ballots, and so on. In fact, all kinds of new technologies are being developed to speed up delivery of common information (like telephone numbers, addresses, names, birthdates, and social service numbers), and prevent excessive use of forms. Yet users are still forced to fill out forms, to accomplish all kinds of simple tasks, because forms are perceived as an effective means of gathering information. They aren't always effective for users, and certainly aren't always effective for the recipients of the information, either.

Some common user-perceived problems with forms

• forms are long and complicated (they require a lot of cognitive activity, and interrupt flow)
• forms frequently aren't clear, and discerning their precise purposes can be impossible
• forms usually force users to answer questions, even if the user perceives the questions to be irrelevant
• forms take control away from the user
• websites often yell at users if they don't fill out forms correctly

If users don't understand why they are forced to answer a bunch of questions, in a very particular way, to achieve an unclear purpose, they are going to have a negative experience. That might cause them to simply leave the website, or to miss out on the positive benefits that await them if they fill out the form correctly.

Some common owner-discovered problems with forms

• the information collected by the form has to be requested again by someone else within the company
• most of the information collected by the form is useless
• the form isn't helping the business achieve a set goal, or isn't applicable to any goals
• the important information users provide via the form is too thin (in other words, users aren't providing accurate or specific information)
• the form isn't being used as much as was anticipated
• few users are using the form for its intended purpose (if it has one)
• users aren't accessing the value-added portion of the website that using a form leads to

Forms are very mechanical by nature, but humans aren't. Because of interface constraints, it's much easier for most people to write a specific message than to deliver the same information by filling out a form (think of the repetitive mouse movements required to select a birthdate from a complex popup menu widget). In many cases, if a user has reached a form, it's because they want something, or they want to communicate something to the people who run a website. They might have trouble trying to squeeze their thoughts into a narrowly-designed framework: a problem very similar to being forced to answer "yes" or "no" to a question when the answer should really be "maybe". If the message that the user needs to communicate is "maybe", then a human is much more able to process the information, and discover its meaning, than a computer is.

When are forms useful?

Obviously, forms are necessary for certain processes:

• collecting large quantities of statistical or otherwise quantifiable information
• surveys
• signup mechanisms
• login mechanisms
• search mechanisms

Feedback systems almost never require forms. Feedback forms are usually unnecessarily convoluted and frustrating. If a form is going to be used to direct information to a specific recipient or group, just indicate a specific email address to which the feedback should be sent. Give pointers with regard to what information users should provide, but don't force them to reveal information they are not comfortable with handing out to (potentially) complete strangers. Building trust and confidence is an essential part of positive user experience.

In circumstances where a form of some kind is necessary, it's best to keep it simple. In almost all cases, users want to be more effective, which includes getting things done hassle-free, and as quickly as possible. Therefore, forms should have few controls, and shouldn't require excessive cognitive processing or repetitive physical movements to complete.

Here are some common form design mistakes to avoid:

• long popup menus with lists of 150 nearly identical terms (such as lists of countries or professions; lists of two-letter abbreviations are exceptionally bad)
• asking for the same (or similar) information more than once
• asking for information that isn't relevant to the user's goals or task at hand (forget forms as a bonus market research tool)
• forcing users to fill out information (unless it's something absolutely necessary for maintaining user control like a user ID or password)
• forcing users to somehow communicate or build conversation with controls (no boolean buttons or complex search syntax forms)
• a form layout that puts might on will (borrowed from Alan Cooper: if most people just fill out one field and click "Submit:", put additional options after the submit button)

Tips for effective form use

I worked with a company that offered a very personal service to users. That meant that a registration system was required, and users would have to log in and log out. We ended up designing a service that users could browse before registration, but could only personalize after registration. The registration process was made as simple as possible: users were only required to enter a login and password to join. Additional information wasn't requested right away, but instead users were casually reminded to provide some more information, particularly their email address (for password retrieval). Otherwise, users only had to provide more personal information when it was necessary to help the user accomplish a given goal: for instance, users had to provide an address when they ordered a product for the first time.

The same service had a number of other simple forms for searching, logging in, and ordering products. In each case, we found out what was absolutely essential to the user, and how to most effectively design the form to keep users informed and in control.

Here are some guidelines that I kept in mind while working with the client to design the forms:

• use controls for the same purpose that they're used for in operating system interfaces (i.e. correct use of radio buttons and check boxes)
• collect information in bits and pieces as it's required from the user's point of view
• determine the minimum information necessary for collection, so that the user remains in flow and doesn't become frustrated with the website
• only use a form if it has a very clear advantage for users over a less mechanical method, such as email
• use less restrictive controls (fewer radio buttons, but more text fields)
• make the form as "optional" as possible
• ensure that the user will never have to provide the same information twice
• test the form with the recipients of the information to make sure its contents are practical, and to eliminate anything that isn't practical

When considering use of a form, it's important to remember how much most people hate filling out complicated ballots, tax returns, registration forms, and surveys. Web forms are no more fun.