I’ve seen some pretty rough looking software that was written by the blind for the blind, so I thought I would offer a little advice. I think all of us who program with a visual impairment know that we have to take special care when designing for the sighted world. We may not care much how it looks as long as it works, but at a minimum things need to be laid out in a logical and comfortable way for someone who is looking at the screen. A conscientious coder will also make at least an attempt to format the code such that sighted peers can make sense of it.
Do the same rules apply if you are writing specifically for users who are blind? They certainly should. Of all people a blind person should understand what I’m about to write, but apparently not all do. You may be writing with the blind in mind, but not everyone who uses your software is completely blind. There are some examples of software out there that is almost totally driven by keyboard interaction with audible only prompts, but even those programs have a few visual elements. It is confusing when what one sees doesn’t line up with what one hears.
Even if the user is totally blind, it is important to realize that all screen readers are not equally capable. Even if every effort is made to maintain accessibility, there may be instances when the user needs to explore the visual layout of the screen in order to learn what is presented. If even the most basic rules for accessibility are followed, this should be possible for any screen reader to do.
I’ll provide an example. I have some vision, but even so this situation was a little frustrating. The program I was using presented a dialog of functions with their associated shortcut keys. The box was too small for the text, so the actual key combination was outside of the viewable area and there was no provision for resizing the box. I could fiddle with my screen reader’s settings and get it to read the hidden information in an understandable way, but I wanted to simply point the mouse at the line and review by character. So doing would provide a tool tip like expansion so that the key combination could be seen, but the screen reader didn’t pick that up and I need the text so large that it was difficult to obtain the information visually.
Finally, it makes you look incompetent. You may be a very sharp person, but all people will notice is how bad the software looks on the screen. Your work may enrich the lives of blind computer users everywhere, but if your work looks like that of a youngster writing his first program, you won’t be taken seriously. With possible exception of those who produce products for the same market, few employers are going to take a look at a poorly designed user interface and say, “I want to hire this guy.”
Like it or not, sometimes we need a little help from those who can see. There’s no shame in that. If my pipes leak, I’m not ashamed to call a plumber. He knows how to do something I don’t. It make take a little more effort and a little less pride, but we need to strive to produce high quality software in both form and function.
This applies to web site design as well. I try to make mine easy for someone with a visual impairment to read, but I’ve been told it gives some people a headache. So I’m taking my own advice, although it may take some time for me to get around to it or find the right solution. Ideally it will be something that lets the user control both the color scheme and the font size.