Web form inefficiency?

The economic perspective leads one to look for efficiencies and inefficiencies everywhere, and to doubt one's judgement when the latter appear widespread. For example, there is a particularly common and error in HTML forms for addresses, which seems to me like such a stupid design choice that perhaps I'm missing some good reason for its existence.

Consider the choice between a pop-up menu and a free-form text box. We can analyze this user interface choice by considering the time efficiency for user selection. It seems pretty clear that time for choosing a pop-up is roughly proportional to the number of choices, while that for a text box is proportional to the length of the text. Additionally, pop-ups are useful when the site knows the choices but the user does not. So a field where there are a large number of very short choices which the user knows would seem ideally suited for a free-form box, and idiotic as a pop up. Yet it is quite common for the "state" field of an address to be a pop-up with 50+ options, each 2 letters long, so the user must choose from a list of 50 rather than entering a simple 2 letter code. :???:

I'd love to hear any good theories about why this practice is not simply wasting the time of everyone on the internet (however strange it may seem to complain about that :wink:), a few hundred milliseconds at a time.

Share this

But can't you just hit (for

But can't you just hit (for example), "t" twice for Texas? (The first finds Tennessee, the second selects Texas, and you're on your way.)

It's much neater from the

It's much neater from the programmer's point of view to force selection from a list. Now he doesn't need code to error check that field and bounce the form back if the user enters, say, "YN" as the state. In essence, it's pre-checked by the listbox's software, which he doesn't need to re-write.

Indeed, it is done that way

Indeed, it is done that way to force the answer to be valid, so the programmer does not have to do as much datachecking.

This is relatively OK for 50 states, but I've seen bigger ones (it's not unheard of to see listboxes with hundreds of choices, or sometimes even thousands) It's a fairly common user-interface gaffe.

Web form inefficiency Patri

Web form inefficiency
Patri Friedman asks why websites often require users to deal with annoying pulldown menus such as those listing 50 states. I expect that the main reason is that users who are allowed to type in text will enter it in nonstandard forms. For example, Mass...

It appears that one answer

It appears that one answer may be the combination of keyboard shortcuts (Kevin's point) and programmer validation (Andy's point). I had been thinking it would be just as easy to validate in the code, but Andy is absolutely right that its much less hassle to let the form do the validation.

How universal are these keyboard shortcuts? If they are universal, than this seems like a sufficient explanation.

Thanks for validating my a priori belief that the problem was much more likely to be my misunderstanding than a widespread and easily-fixed inefficiency :smile:

Listing the states in a

Listing the states in a pulldown box doesn't let the programmer get out of checking the received data -- it does however relieve the programmer of having to make it do something nice for the user when it does detect an error, since you can assume that it's a bot doing it rather than a person. This way of doing it does make errors less likely (a key precept of good interface design), and the keyboard shortcuts are universal, AFAIK.

Another thing you might be

Another thing you might be missing is that there are a lot of people who are really, really, ignorant about things. Let's suppose you have a text box that's two chars wide for the state abbreviation.

The user tries to enter the abbreviation for Hawaii: "HA"

They get an error message.

They try again: "HA"

They get an error message.

Etc, etc.

I think a lot of design choices are driven by the lowest common denominator, so to speak. *Everybody* has to be able to use it, not just the fraction of the populance that knows (or can figure out) the state abbreviations.

I've often thought the same

I've often thought the same thing; entering the abbreviation is much faster. But John Lopez convinced me that I'm wrong; there are probably lots of people who can't remember the abbreviations.

Now the question remains: why do we use state abbreviations at all when we have zip codes? :end:

Patri, There is no inherent


There is no inherent conflict between having a list and a entry field. One can get a program to do both. There is no reason why typing "NY" could not get you to the correct selection. But for some reason, which I am not 100% sure of, the convention for HTML browsers is that any typing matches only the first character. Thus, I must type "N" multiple times to get to the selection for "NY". If this were intentional I would say it borders programming malpractice.

I will however reserve judgment because frankly I don't know why the choice was made for this convention. Usually it comes down to one of these. 1) A lazy programmer 2)An intense deadline 3)Stupidity 4) A lame attempt at ensuring "correctness". 7) Adapting code to do more than it was originally designed for. 7) A comedy of independly made errors with ignorance of each person on the actions of others 8.) A management decision not to make the investment 9) Halfassed interface done now saves more overall cost in the present than best solution later (do you want a program that can save you ten million each month now with bugs now or perfect with no bugs in three years?). 10) A legal constraint

Once the HTML convention is in place it is a decision on the part of each programmer whether his interface will use it, which is nearly costless, or to build something himself from scratch.

Frankly, for web sites that are used by thousands if not millions of people, I think the investment in something better may make sense. However even that has drawbacks because now you are talking about some sort of download of the code to the client machines. The browser is preloaded. The programming involved really is not all that difficult, and you can often find examples on the internet. As an example, look at this link for example code and this link for the associated demonstration.

The HTML standard does not actually specify how the "html select form element" has to work with the keyboard so I think the people who write the browsers are free to fix the problem. See the specification here . But it's a convention now so do you want your browser to flaunt it? I guess you could add an option on the browser to define how the drop downs work. The default option being the normal convention with the option to switch to the properly designed method.

OK, As I am writing this post I am reminding myself of things and looking things up. So perhaps I will pass judgment after all. I not married to it but I think
a) The designer(s) of HTML were too lazy, or didn't have time to think through and write a full specification for a friendly interface, on the select element.
b) The designers of the first browser was too lazy or didn't have time to implement it properly.
c) The bad implementation in b) became a convention
d) Programmers of specific web pages are either too lazy to code a proper script, are under time pressure, or have some requirment not to use client side scripts.

Since many of the web interfaces that have this flaw are also using scripts, are used by millions so the programming cost should be trivial. These are not first releases so it is not a matter of holding up the solution till perfection. So it probably is just a matter of convention or laziness. I am now used to hitting N a few times to get to NY so an interface I used infrequently that did things differently would actually throw me off.

PS. I am a programmer.