WebAIM - Web Accessibility In Mind

E-mail List Archives

Re: Forms - 1 label for 2 selects?

for

From: Jukka K. Korpela
Date: Aug 6, 2004 6:05AM


On Fri, 6 Aug 2004, tim.beadle wrote:

> This must be one of the few times where usability and accessibility are
> in conflict with eachother.

I don't think so. There are cases where a dropdown is better for usability
but worse for accessibility; this however is not one of those cases.
Besides, in such cases a set of radio buttons is usually a better
solution than either a dropdown or a text input box.

> If you read "Defensive Design for the Web"
> by 37 Signals, they actually recommend using drop-downs for
> date-selection, for the simple reason that it restricts what values can
> be entered, and thus frustrates the user less.

That's normally bogus. It is surely more frustrating to have to make three
selections (day, month, year) from dropdown lists, which might be quite
long, than to type in a date.

> Guideline 10:
> "Provide sample entries, pull-downs and formatting hints to ensure clean
> data".

That's worse than bogus, since such things do _not_ ensure clean data.
On the Web, all arriving data is to be presumed dirty until proven clean.
The server side form data handler _must_ check _everything_, for
fundamental security reasons.

You need to tell the user what the expected input is. If you can make
browsers behave so that incorrect data cannot be entered, fine. Use
whatever markup and/or client-side scripting for the purpose, as long as
the user gets nice feedback when he tries to enter incorrect data.
But don't try too hard, since the data must be checked at the server side
anyway.

In this particular case, what the user is asked to do is to enter expiry
date of a credit card. What could possibly be more natural than to type in
what's printed on the card itself?*) The rest should be the burden of the
system designer, not the user.

*) If desired, you could run some client-side script that checks that the
data is in correct format. But that's probably overkill, since it needs to
be checked server-side anyway, and users can reasonably be expected to be
extra careful when entering credit card information.

--
Jukka "Yucca" Korpela, http://www.cs.tut.fi/~jkorpela/