Scott Boms

A Case for Autocomplete

Reading Jakob Nielsen’s Alertbox for September 19th this morning got me thinking about something which has always bothered me with web applications and web forms in general. Jakob mentions the problem of scrunched screen elements and effective use of screen real-estate often being a problem with web forms.

In particular, he refers to avoiding drop-down menus and scroll lists by instead using lists of selectable items where “all items are visible simultaneously” to reduce errors and make selection more immediate. This made that little lightbulb over my head start flashing repeatedly…

One of the biggest annoyances with web forms for me typically rears its ugly head when faced with an e-commerce transaction and having to select a state/province or country from an excessively long drop-down menu. Raise your hand if you also find this annoying and tedious.

Some might argue that you can get around this by using a standard input field as some do. Yes, but then you have to deal with the problem of spelling and possibly abbreviations. So what’s a web geek to do?

An Answer?

What if the best solution was a combination of the two approaches? A simple text field with the capability to autocomplete based on user entry?

Country selection autocomplete example
An example country selection autocomplete form field

Rather than force the user to scroll through a really long list, let them type the first few letters and choose from a much shorter list of options (or a single option depending on what they entered).

This approach would permit you to check against a list of common abbreviations, country codes, misspellings and still be able to deliver a useful, intuitive and responsive interface with less errors and more completed transactions.

Perhaps the most significant downside to this approach is that there are still massive numbers of users using antiquated browser software which is incompatible with “Web 2.0” DOM scripting and AJAX.

Nevertheless, given that we have wonderful technologies such as Rails, Behaviour and Script.aculo.us to help solve such design problems and for creating innovative web applications I’m a little surprised I haven’t seen anyone really try to tackle this issue in a new way. I can’t possibly be the first to consider this, can I?

So say you…

This is something that I’ve been working on in a rails application that I’m developing. I haven’t actually got a working model just yet, just have the ideas scratched out on paper.

…And you’re right with all of the great resources available to us right now, this should not be hard to implement.

Jeff Smith Jeff Smith September 20, 2005

Exactly. Given all the great technical and usability resources available these days, this is a problem that I’d like to see someone at least attempt to resolve.

Maybe it will prove to be no better than what we have now, but someone, I don’t think so.

Scott Scott September 20, 2005

You may not be the first, but you’re are one of the first to come up with a good solution. It’s been bothering me too, but I wasn’t coming up with a starting point. Thanks for the inspiration!

Adam Farnsworth Adam Farnsworth September 20, 2005