Making Web Forms Work Better
Since many people who design web forms have never designed any
form of any kind in their lives before, it's hardly surprising
that plenty of the results could do with a little improvement -
and if you've spent any time on the web, you'll know just how
annoying bad forms can be. In this article, then, we'll look at
seven quick and easy ways to make your web forms much better.
But before I get started here is a very handy tip for those
folks that just can't get their head around designing a web form
and making it work. Believe it or not, I have used both
Frontpage and Dreamweaver extensively over the last 10 years and
to put it mildly, forms are a big pain in the rear. My solution,
still in use today is http://mycontactform.com It's simple, free
and it works first time, every time.
1. Remember the Rest of the World.
This one is a call-out to American websites especially: don't
forget that your site will have more than just American
visitors! It's very insulting to be asked to register for
something, only for the site to demand my state and zip code,
leaving no space for me to choose any other country or enter a
postal code in any other format than five digits. To save the
trouble of the whole thing, I usually just go for 'California'
and '90210' - a bad entry for that person's database, just
because they didn't consider me when they designed their form.
2. Don't Use Huge Drop-Downs.
Likewise, though, if you are nice enough to let me choose a
country, don't make me do it from an alphabetised list of every
country in the world! The same thing goes for lists of states,
counties, and so on. Drop down lists that are long enough to
have scroll bars are just plain difficult to use and
inconvenient - I'd much rather just type the name myself, thanks.
3. Always Offer Suggestions.
So someone can't get something they filled in on a form - their
username or domain name or whatever was already taken. What do
you do? Please don't just say "sorry, that one's taken, please
try another". Come up with some useful suggestions of
alternatives that are available, and let me choose them easily
if I like them. Do try to be more imaginative than just adding
numbers to the end, though, unless you want all your users to be
called 'jane23436'.
4. Don't Punish Double Submitters.
There are some people, let's face it, who just aren't all that
sure how the web works. They've been taught that you have to
double-click computer things to make them work, and so
double-click they do - on links, on buttons, on everything. At
some point, one of these people is likely to click twice on your
submit button. You should allow for this in advance, instead of
punishing them for it with an error. You might even consider
using Javascript to grey out the submit button once it's been
pushed once, which solves the problem in most cases.
5. Stop Being So Picky.
Come on, now, do you really need my birth in dd/mm/yyyy format?
Couldn't you figure out what I meant if I wrote a month out in
words, or if I only put in a one-digit day, or a two-digit year?
Of course you could. Don't throw my input back and ask me to fix
things that a little server-side scripting could just as easily
fix for me.
6. Display Warnings on the Page.
There are few things more annoying than websites which pop-up
those little alert boxes, causing the computer to make a loud
'ding!' sound as they do so. If there's something I need to go
back and fix, add the warning to the page itself, preferably
with a red border or background to mark it out for my attention.
Don't make me read a dialog box, click OK, and scroll back up
myself to hunt for my mistake.
7. Only Ask for What You Need.
Last but not least, this is a rule that could make so many web
forms so much better. If the information you're asking for isn't
absolutely crucial to your dealings with me, don't ask for it.
Every second I spend filling in a form is a second I spend
getting more frustrated with your website, and more likely not
to finish what I've started if something goes even slightly
wrong. Your site should be set up to figure out as much as it
can about me automatically. Don't ask what language I want to
use - my browser tells you that in its HTTP headers. Don't ask
which country I'm from - you can detect that with my IP address.
Save me time, and I'll be much more likely to appreciate your
site.