If you have a web site then the chances are that there will be a form of some kind on there somewhere. This might be a search box, or a contact form or even a tool. There is one thing that should be followed no matter what sort of form you create and this is the rule of Simple Input Detailed Output, or SIDO for short.
The idea behind SIDO is that you get the user to enter the absolute minimum amount of information when filling out a form, but once complete give them as much information as you can in return. The perfect form should have a single input box, and return at least a page of information from this single starting point.
This is one of the most important things to remember when designing your website, so here are some basic ideas that you should keep in mind when creating a web form using SIDO.
Ask what is absolutely nessesary
You should only askthe user to fill in what you absolutely need in order for you to do what it is they are trying to do. If you are creating a contact form then you should only need the users name, their email address (so that you can get back to them) and a textbox where they can type a message.
Many websites make the mistake of asking far too much information for the user to enter, most of which is never used or can be gained by other means. The longer the form is the more chance there is that the user will get bored go elsewhere. Many users will simply balk and say something like "do I really have to fill all this in?"
Manditory Vs Non-mantidory
If you want to ask the user more information than absolutely needed then make the fields non-manditory. For example, you might also want to know what country they live in, or how they found your site. Although most users will fill this in anyway you should make it non-manditory unless it is absolutely essential.
Any manditory fields should be labelled clearly, and not just with a different colour as colour blind people will not be able to tell the difference. A little star next to the field label is usually a good way to go, but bold text is also acceptable.
To keep your form short you can use information about the user that they don’t have to enter. For example, you can guess at the users location by looking at their IP address, so you don’t have to ask what country they live in.
The biggest mistake I see sites doing here is putting a "Where did you hear about us?" question in their forms that contains 27 choices, 5 of which are a list of different search engines. If the user has found the site through a search engine then any decent analytics package can let you know about what search engine was used, and what keyword they used.
To answer this question, you only really need a list of no more than a few items. These would be Advertising, Press coverage, Another Website and Search Engine. The option of Search Engine should be included for those users who have come to the site via a search engine and want to select something from this list.
The goal of your site, especially if it is a shopping cart, is to get that user to convert into a sale, enquiry, comment or whatever you want. Once the user has done this you can follow up by sending emails and asking them any other information you would like to know.
Remember that most information is important to you, not the user.
Avoid multi-page forms
Some websites will hide the fact that the form is long by splitting it across several pages. It can be argued that this keeps the form "above the fold", but the form should be small enough to do this anyway. Splitting up the form into multiple pages will probably annoy your users as they enter a cycle of filling out a page and hoping that this one will be the last page. The more pages you have on your form, the most chance you have of your users bouncing.
Make it interesting
Both the form and the ouput should be interesting to the user. If you have to ask a question that is completely dull or difficult to answer then provide a way of making it interesting. For example, if you have a site that asks the user how many miles they would drive a rental car then try adding in a slider control that they can use to fill in this information. Of course, this has usability issues of its own, but you can put Land's End at one end and John o'Groats at the other and make the slider control into a car to make it seem more obvious.
The output of the users query should be equal to, but preferably more than they entered. For example, search engines only every ask the user for a single search term, but they can return hundreds of pages of information.
Of course, the one exception to this rule is that if you create a contact form, the user will expect the success page to let them know that they have sent the email. Nothing more than a polite message about getting back to them as soon as possible is needed.
There is an exception
The one exception that I can think of with regards SIDO is when creating a form that gives quotes for car insurance or something similar. Here, the user will expect to enter detailed information about their needs in order to get a good result. It is usually a good idea not to mess around with forms that deal with financial information.
There is a lot more to form design and implementation than just SIDO, but it should be a part of any form design that you do. Just ask yourself "do I *really* need that input box?"