Using Drop Down Menus for Birthday and State in Web Forms
So in my dealings with clients and filling out the forms of websites in general, one thing keeps bugging me over and over: sites that ask for your birthday using drop down list for month/day/year and sites that use drop down for state selection for your address. There are some basic usuability issues here that really drive me nuts, if the web designers thought about it for more than a minute.
First off, why do you even need to know my birthday to begin with? I guarantee that 90% of the people just go straight to the drop down list for year, set it to something over 21 and go on their way. It isn’t like ‘birthday’ is any more legally helpful than simply asking for your age. Why not just let the user enter ‘35’ for their age and be done with it. I bet you would find that you end up getting a lot more accurate information out of your users in that situation. Typing two numbers is sooo much easier than dealing with drop down menus. If you want to keep the age up to date, all you need to do is keep track of the date they set their age, and adjust it accordingly when you retrieve it. Barring that, if for some reason you just have to have birthday info, then why not at least provide an easy way for the user to put in ‘4’ for the month, ‘16’ for the day, and ‘1982’ for the year? Again it is just that much easier to do.
With states, the same thing applies. I live in New York (NY), but apparently I can’t be trusted to type ‘NY’ for my state (2 keys). Instead, I have to click the drop down, then scroll through 50+ state abbreviations (if say PR for Puerto Rico, etc. is included), and then click my state. If I accidentally click the wrong one, I have to do it all over. Or if I want to use a ‘shortcut’, I have to press N 5 times to get past the other ‘N’ states, and usually I have to go through it a couple of times because I overshoot, since just typing ‘N’ then ‘Y’ as a shortcut doesn’t actually work in most browsers. The only other thought is that maybe the web developers are using this as some sort of easy data validation, to prevent someone from putting in ‘NX’ or something. But that is precisely what server-side validation should do for you, not rely on the client to send ‘clean’ input. Someone could easily call your registration method directly (without using a web form), so you had better implement server-side validation anyway.
Oh well, it is the little things that get to me, when you have to do them over and over and over…