A Call for Accessibility
The following is an early draft of the intro to Chapter 6 of Refactoring HTML. The remainder of the chapter will address specific recipes for improving site accessibility, especially those tasks that remain after a site has been made strictly valid (which is addressed in earlier chapters). Comments, suggestions, and corrections, are appreciated.
The Web has the potential to more fully integrate people with seeing, hearing, physical, learning, and other disabilities into society. By limiting the interaction necessary to communicate, as well as enabling delayed communications so that participants can move at their own pace, the Web has transformed our relationships with each other. Properly designed web pages neither know nor care whether you’re reading them with a CRT or a screen reader. Properly designed forms neither know nor care whether you’re inputting data with a keyboard, a mouse, or voice recognition software.
However accessibility does not come automatically. Many pages are locked into one modality of use, most commonly visual. Many pages are designed with the assumption that the user will view the page in the same way that the designer does. Such pages can lock out people with different levels of eyesight, attention, motor skills, and a dozen other characteristics.
Accessibility is not just about supporting people with extreme physical impairments such as blindness either. Ability and accessibility are both continuums. People don’t merely see or not see. They see better or worse. Most of us see worse with age. By age 40, we’ve either discovered the Ctrl-+ keyboard shortcut for increasing the font size of our browser or we’ve begun cursing out 20-something web designers as we surf (or both). The changes you make to improve accessibility don’t just help people who meet the legal definition of disabled. They help everyone’s who’s seeing, hearing, or motor skills are less than perfect. At least some of the time, that’s all of us. If it isn’t today, it will be tomorrow. As we age, eye sight and motor skills decline, and accessibility becomes more important. When I started on the Web, college students were a majority of the population on the net. Today they’re probably less than 10%, and are vastly outnumbered by senior citizens.
Accessibility also improves your site for people accessing it with non-traditional devices. A 28-year old Wall Street trader may prefer to view your news through the small screen of her Blackberry. Even an airline pilot with 20/20 vision may as well be blind when listening to your page on their cell phone while jogging.
Of course, accessibility isn’t just about supporting people with physical or device impairments. Wheelchair ramps are far more commonly used by parents with strollers, students with bicycles, and delivery people with hand trucks than they are by people in wheelchairs. Properly done, increasing accessibility for the disabled increases accessibility for everyone. That’s as true on the World Wide Web as in the physical world.
In many jurisdictions, accessibility is not just a good idea, and the right thing to do. It’s the law. In the United States, the Americans with Disabilities Act requires that all web sites built or procured by the Federal government be accessible to users without regard for physical handicap.
And if all that isn’t enough to convince you that it’s important to invest time and resources in making your pages accessible, consider this. The most profoundly disabled user of your page is going to be a search engine robot. Robots can’t see, hear, touch, or think. They are unbelievably stupid. While a person can eventually make sense out of a strange layout or text encoded in an image, a robot never will. Almost everything you do to make your pages more accessible to and usable by people will be paid back ten-fold in search engine optimization.
Simply making documents valid XHTML makes documents a lot more accessible than they otherwise would be. Making them strict XHTML rather than transitional goes even further. Removing presentational elements like b and replacing them with semantic elements like strong helps a little. Separating the content from the presentation using CSS stylesheets helps a lot.
However, that’s the beginning of accessibility, not the end. If you aren’t careful, you can create completely valid but almost totally inaccessible pages. Validation is an automatic and unthinking process. It focuses purely on the syntax. It can’t tell if you’ve chosen green on red text that will be impenetrable to many color blind visitors. It doesn’t know that the first 20K of your page are advertising and navigation that blind users have to slog through before getting to the actual content. It can’t distinguish between a well designed data table containing monthly financials and a layout table that rearranges the linear flow of text into unintelligible gibberish.
Making web sites accessible requires applying human intelligence to recognize and then fix problems like these.
As usual there are tools that can help. The W3C HTML validator discussed in Chapter 2 notes many accessibility problems as well as pure well-formedness and validity errors. Other tools are available that check more deeply for accessibility. The W3C maintains a list of many such tools at http://www.w3.org/WAI/ER/tools/complete/. These tools are helpful, but they are relatively stupid. They may find problems a validator won’t, such as green text on a red background; and they may suspect that certain tables are likely being used for layout. However, they don’t know this, and there are many problems they will never find. You must spend some time looking at the site with an eye toward accessibility.
Accessibility is ultimately about people, not following a fixed set of rules. If your site is open and accessible to all users you’ve done your job, even if you’ve violated a rule here or there. If your site is confusing or hard-to-use, you haven’t, even if it validates and passes all the automated checks. To really tell how well you’ve succeeded you have to do user testing. Observe actual users navigating your site. Watching even a single user will reveal problems you didn’t know you had. Time and budget permitting, you should observe many, and endeavor to include users with different skill sets and abilities. Watching a senior citizen navigate your site will tell you very different things than watching a teenager. Watching a blind user navigate with a screen reader will reveal issues you won’t encounter with a sighted user. Try to test as many different classes of users as you can. Even if your budget does not permit formal user testing, do some informal testing by recruiting your friends, family, and co-workers for simple tests.
Sometimes even seeing the difficulties other users experience isn’t enough. We have to experience them for ourselves. If you do not have easy access to blind users, you can simulate their experience. First try surfing your site through the text mode browser Lynx. Second, buy and install screen reader software such as JAWS, turn off your monitor, and try to surf your own site. This will give you a decent approximation of how a blind user views your site. The turn the monitor back on, disconnect the mouse and the keyboard, and try navigating with voice recognition. This will help teach you how some physically disabled people will approach the site and where their pain points are likely to be.
Web site accessibility is still quite poor, and in 2007 there’s no excuse for that. Most users are inconvenienced, some critically so. However there are some simple changes and improvements you can make to the design of your sites to improve matters.
March 28th, 2007 at 7:35 pm
Not bad; it’s a good start. Some points for consideration:
Some of the language in the first handful of paragraphs feel like handwaving. Consider: “When I started on the Web, college students were a majority of the population on the net. Today they’re probably less than 10%, and are vastly outnumbered by senior citizens.” When I read that, I thought: “Care to cite a source?”
I feel like the first 5 paragraphs are ‘fluffy’ – they’re not adding a whole lot of value, and they’re making the same (or similar) points over and over again. Could you try cutting it down by half?
I am such a minority case that it’s not even funny, but I found your comment about buying JAWS and surfing with the monitor off extremely amusing, and this is no reflection on what you wrote. I’m profoundly hearing impaired, so for me to test my pages for accessibility, I have to turn on my screen reader, and turn on voice captioning to read what the computer is saying to me. Clumsy as it is, it works though.
Elliotte, in this book, are you making any recommendations about having access to Windows, Linux, and OS X as part of the development process (for testing layouts)? If so, then it may be useful to indicate that on OS X, you have access to built-in screen-reading software that works rather well (and is far cheaper than a JAWS license — heck, for the price of JAWS, you could pick up a Mac Mini for browser testing and get the screen reader for free!)
March 29th, 2007 at 7:26 am
I’ve since learned from the last post that Windows XP and Vista both contain built-in screen readers; why are you suggesting web developers spend at least US$900 on a license for JAWS?
March 29th, 2007 at 9:36 pm
The link (http://www.w3.org/WAI/ER/tools/complete/) appears to be broken. The complete list of tools is available at http://www.w3.org/WAI/ER/tools/complete.php.
April 20th, 2007 at 5:23 pm
Robert Hahn,
The screen reader that comes with Windows is known as “Narrator” and is not considered as a replacement for powerful screen readers such as JAWS or Window-Eyes. See for example the comment at http://www.afb.org/afbpress/pub.asp?DocID=AW030206 : “Narrator is a basic screen reader that provides speech output for blind computer users. It is not intended to replace more powerful commercially available screen readers. Rather, it is intended to help you when your normal adaptive equipment is not available.”
Microsoft Narrator even has an entry in Wikipedia: http://en.wikipedia.org/wiki/Microsoft_Narrator.
There is also work being done on free screen readers for Windows:
* NVDA (NonVisual Desktop Access; http://www.nvda-project.org/), which is also open-source, and
* Thunder (free, but not open source; http://www.screenreader.net/).
June 18th, 2011 at 6:29 am
Most of what you say is supprisingly accurate and it makes me wonder why I hadn’t looked at this in this light before. This piece really did turn the light on for me as far as this topic goes. But there is one point I am not too comfortable with and while I try to reconcile that with the central theme of your point, let me see what the rest of your readers have to say. Well done.