Tuesday, September 29, 2009

Designing the Obvious

Adobe MAX2009 is coming up this weekend, and while I won't get the chance to go this year I was reviewing some of the material from years past. One presentation that I have somehow hung onto was one by Robert Hoekman Jr on 'Designing the Obvious' - from his book of the same name.

I never got the book - but I think I will now. As I was reading through the paper, he talks about something we all still come across everyday - form fields with character length limits.

He mentions some of the 'obviously' wrong ways to do this:
1) type in the field, hit submit and the system tells you that you guess wrong and that there were too many characters in the field.
2) There is a 'hint' next to the text field but it lets you type in the wrong number of characters anyways. He also noted that a 'hint' is not instructive to tell someone that spaces are or are not counted.
3) The field just lets you type in characters until it just stops. The 'stops' feedback still leaves us to wonder why the system stopped taking input.

The 'obvious' answer he suggests is to give the user real-time feedback about their input. As his book title suggests - this is so obvious.

I thought I would create a quick component that did just that - gave the user real-time feedback on their input and accounted for either including space or excluding space.

In the example application below, the first input just stops taking input at the maximum character - can you guess what that limit might be? The second input uses a StringValidator - which is a step in the right direction, but does not provide the real-time feedback.

The next two use a simple component I created. The first of those, has a 15 character limit, and spaces count toward that limit. The next one has a 30 character limit and spaces do not count toward the limit.

Getting the component to ignore spaces was trickier than I thought it would be at first - but for those curious you can download the code and see how I did this.

Source can be found by clicking here



Thanks for stopping by. I would love to hear your comments on the 'obvious'.