Okay, this just happened to me on Google of all places. This pisses me off no end.

Why, oh why, if you are going to validate input for a certain format, don't you indicate that you are expecting said format?

I was just finalizing my Google AdSense (no link, me angry) account and they wanted SSN and DOB. The prompt for DOB said "mm/dd/yyyy" so I know that I have to do month, slash, day, slash, fully qualified year. Great. Awesome. No problem.

The prompt for Social said nothing. so i did xxxxxxxxx because, well, I'm lazy, and my fingers don't find the - that well on my laptop (in typing this I typed =, then 0, then 0 again before I gave up and looked). Validator kicks it out and says "NO! YOU MUST USE DASHES" (actually it said "Social Security Numbers look like this: xxx-xx-xxxx", which I find to be condescending). Well what the f---? If you want me to use the f------ dashes, then f------ say so! What am I, Kreskin? And the bitch of it is that if I had done dashes they would have had a number-only validator or something.

This is rampant practice on several types of UI fields, but the two most notorious are Phone/Fax and SSN. Here's what I do with each and every interface I ever design. I accept all standard inputs, regex them myself, and store them in the database however I want. I would think that it wouldn't be too much to ask for Google and others to do the same. Phones in the states come in 3 basic formats: xxxxxxxxxx, (xxx)xxx-xxxx, and xxx-xxx-xxxx. Then it's one more quick expression to see if there is a space in the one with the parentheses. If all else fails, you validate whatever they put in, take out special characters (like maybe they did xxx.xxx.xxxx), and see if it's a phone number. If not, kick it back. But don't be a design dick and not tell us what you are willing to accept if it is so specific.

Now that I've blown off my steam, and my session is probably expired over there, I'm going to try to continue my registration.
Tags: