Sunday, April 29, 2007

The almost lightening talk: Accessibility

At the Code4Lib conference I was asked a few times if I was going to do a lightening talk. I really could only think of a few topics and while I stood around deciding, we ended getting the perfect number of needed lightning talks.

But all my thinking did give me an one idea that seemed well-suited to a lightening talk. And since I figure a good lightening talk should translate to a blog posting pretty well, here it is.


Recently I've been tilting at a particularly obstinate windmill, one that would do the Don of La Mancha proud. There's been complaints about the accessibility of our Voyager OPAC to various groups such as the blind, low-vision, and those with hand eye co-ordination issues. The complaints are right on the money, but sadly there isn't much we can do. With the great help of some good folks at the consortium and our disability offices we're making at least some progress. From this experienc I'm picking up a better sense of what's really important for accessibility.

Navigation:
This includes both in the page and the overall site. You need unique titles for pages and you need to use headers. So a good title might be "Detailed information for Moby Dick: Penguin Ed.". You can adjust the headers into negative space so they don't appear for sighted users, but headers allows a person using a screen reader to jump around.

Forms:
This is something I've been guilty of. Each form input element should have an id and a corresponding label with a 'for' attribute pointing to the input. I tend to be heavy with ids for later javascript manipulation, but I must admit to an old habit of avoiding labels due to styling quirkiness in browsers that no longer exists. They seem to be fine now, no reason not to use them.


Session timeouts and size of returns:
It seems when you broach a topic like this, you end up getting at least one person who says"Well, who would take more than ten minutes to read through results?" The fact is though, there's many patrons who might. The ideal here might be to have no timeout. Practical reality says try to have the most important pieces of information about each item on the screen. This is an area that would be interesting to evaluate some of the faceted interfaces. Is there a way to display it so even people who take longer to scan can do so successfully? I really don't know.


Clean HTML:
Really. Really. I still see really bad html, well, everywhere. At least skim through the spec, it's really not that long or hard. This seems actually less important, as long as you don't have a ton of tables. But still, clean html makes for easier post-processing manipulation for everyone, including yourself. I was around in the 90s. And I made clean html. Mostly because I'm lazy ;).


One last word, there is one trap to avoid:

Alt attributes seem to be constantly mentioned by the designers and web people, but doesn't seem as much of a concern for the actual patrons who are blind and low-sighted. The important part....have alt if it's an image that has meaning (is a control, indicate quality of return). Putting things like "filler" or "pretty picture of duck" can be quite annoying to some. I'm not quite sure why designers seem to start centering on this.