- ZIP code fields that don’t accept the ZIP+4, or only accept it without the hyphen, or only accept it with the hyphen, or let you enter it and then tell you it’s invalid
- Credit-card number fields that don’t accept spaces or hyphens, or require spaces or hyphens, or tell you to enter the card number without spaces but actually accept the spaces with no trouble
- Credit-card expiration date drop-downs that default to the current month and year; how pointless is that?
- Phone-number fields that don’t accept parentheses, spaces or hyphens
- Sites that require Flash for no good reason
- Sites that tell you your browser isn’t supported and refuse to let you enter the site
- [new] Sites that make simple operations like deleting a message require multiple clicks and multiple page loads (yes, Citizens Bank, I’m talking to you!)
People who implement user interfaces this stupid ought to be permanently banned from Web programming.
So, loyal readers, what are your Web site pet peeves?
What does counting backwards have to do with it? When I click on the dropdown, I see a list containing all of the 12 months, with January on top. All I have to do is click on the one that matches the month on my card. There’s no counting involved at all — just pattern recognition.
You are making two different erroneous assumptions.
The first is that all browsers display a single-select list as you’ve described it. Three browsers I just tested, firefox, IE7 and Opera, behave as you describe. Two other browsers I tested, Safari 3.2.3 and Lynx, do not. Rather than popping up the list below the input field, such that you would start scanning from the top regardless of which value is already selected, they pop it up over the input field; think of the list as a slide rule with the input field sliding over it. That’s one browser UI that has the problems I referred to; I suspect there are others, e.g., I suspect that some mobile browsers display single-select lists in novel ways.
The second incorrect assumption is that everyone using the Web site is doing so by pointing and clicking. There are other ways to enter input onto a Web page.
And all of this notwithstanding, there is still the fact that defaulting to the current month, or three months into the future, or any valid value brings no benefit with it and has the very real disadvantages of (a) making it easier for users to forget to enter the expiration date and (b) making it impossible for the browser to determine whether the user has filled in the expiration date before submitting the form.
What does counting backwards have to do with it? When I click on the dropdown, I see a list containing all of the 12 months, with January on top. All I have to do is click on the one that matches the month on my card. There’s no counting involved at all — just pattern recognition. And what difference does it make if it so happens that the 6th item on the list is in reverse color, as opposed to the first?
I don’t grok the difference between going backwards and forwards in a dropdown. Can you elaborate and/or give further info on how you know that “People are slightly worse at going backward than forward”?
Common sense. People’s brains don’t work in reverse. Try this:
Time how long it takes you to count from 1 to 100. Then time how long it takes you to count from 100 down to 1.
Set up a Web form with a dropdown with the numbers 1-12 in it. Make it come up with a random month from 1-5 each time the form is displayed, and make it auto-submit whenever you change the value of the dropdown. Time how long it takes you to set the value to 6 20 times. Then change it so that it starts with a value from 7-12, and do the same thing. 20 times might not be enough to notice the difference in time (unless you’re using a faste server, it’ll be dwarfed by the times for round trips to the server).
Keep in mind that you are an engineer who works with numbers for a living, so the difference won’t be as pronounced for you as it will be for many people.
Why do you think that one of the road-side sobriety tests used by the police is counting or reciting the alphabet backwards?
FWIW, my company defaults to three months in the future.
Why? What possible advantage could there be in doing this? I suspect that if you did traffic analysis on your site, you would discover that there are far more people forgetting to change the expiration date to the correct value than there are people for whom three months in the future just happens to be the correct value.
I don’t grok the difference between going backwards and forwards in a dropdown. Can you elaborate and/or give further info on how you know that “People are slightly worse at going backward than forward”?
FWIW, my company defaults to three months in the future.
This allows the s/w to check that you entered something in that field, before submitting the data for verification.
Nope. Credit cards that expire this month are still valid, which means that defaulting to the current month and year prevents the software from verifying that something valid was entered in that field. In other words, it makes it more likely that users will forget to enter the expiration date and have to submit the page again after correcting the error. Or worse, if the transaction isn’t processed in real-time, the submission will be initially accepted and then rejected later.
The right way to force entry in this field is to leave it blank initially and to check that it was filled in before submitting the form to the server.
When the expiration date starts on the current month, on average half of the people entering credit-card numbers are going to have to go backwards in the drop-down to get to the correct month. People are slightly worse at going backward than forward — they do it slightly more slowly, and they make mistakes more often.
In short, by defaulting to the current month and year, you (1) increase the number of people who forget to fill out the expiration date; (2) make it take longer on average for people to fill out the form; and (3) increase the error rate.
There is no advantage to this default. It’s just bad design.
I get the expiration date point, though. Starting on the current month makes sense because earlier dates would be expired, and cards are expiring all the time. If you don’t enter your date, it assumes it’s expiring-this-month. This is a built-in guarantee that you must enter a date. (Lots of people must forget/skip this part.)
This allows the s/w to check that you entered something in that field, before submitting the data for verification.