Monday 16 December 2002

Building Accessible Websites, by Joe Clark

Building Accessible Websites comes highly recommended. In late October, Mark Pilgrim wrote:

Joe Clark’s Building Accessible Websites is now shipping. I was one of the technical editors for this book; having read it thoroughly, twice, I can assure you that it is the most comprehensive and most well-written web accessibility book in existence. Every web designer should read it. If you can only afford one web accessibility book, buy Joe’s book. (If you can afford two, buy Joe’s book and Jim’s book, reviewed here.)

Joe Clark's Building Accessible WebsitesWhen Joe emailed me to ask if I’d be interested in reviewing his book, I readily agreed—I have a strong interest in website accessibility (largely triggered, I confess, by the experience of making my own site accessible by implementing the tips in Mark’s series, Dive Into Accessibility: 30 days to a more accessible web site). Joe also agreed to answer a series of questions about the book and, more generally, about accessibility. I’ll publish this extended interview in a series of posts over the next few days.

The structure of Building Accessible Websites is much as one might expect. After briefly explaining how he intends the book to be read, Joe Clark runs through “some typical objections to providing accessibility, blowing them out of the water one after another,” then lists a number of active reasons for making one’s site accessible. He outlines the various kinds of disability (hearing-, vision-, mobility-, and learning-related), explains how disabled people use computers, and defines both accessibility and the structure of accessible pages.

Having mapped out—in five relatively brief chapters—the nature and extent of the problem, Clark gets down to the nitty-gritty: how to make images, text & links, navigation, type and color, tables & frames, stylesheets, forms & interaction, and multimedia (including Flash) all accessible.

The chapters on images and navigation are much longer than any of the others, reflecting Clark’s belief that addressing these two issues—even at a basic level—will make a site “vastly more accessible” to two large disability groups: the blind and visually-impaired and the mobility-impaired. (Clark’s Slashdot interview, which appeared last week, is essential reading for anyone interested in accessibility.)

These how-to chapters are all structured similarly. For example, Chapter 6, The Image Problem, covers:

  • the three levels of accessibility for uncomplicated image types (the alt, title, and longdesc attributes);
  • variations in browser support for each attribute and workarounds;
  • problem image types including advertising, animated GIFs, bullets, charts & graphs, exploded drawings, hit counters, maps, pictures of text, porn, image portfolios, rollovers, sliced graphics, spacer images, and webcams);
  • succinct advice on implementation; and
  • a supplementary section with more hints on making online ads accessible.

A section titled Bottom-Line Accessibility Advice concludes each chapter. For example, the advice for images is:

Basic accessibility
Use alt texts on absolutely every image without exception.
Intermediate accessibility
Add titles to images in increments no smaller than a page: Either all graphics on a page contain titles or none.
Advanced accessibility
Write long descriptions for the rather more intricate images.

In the last two chapters, Clark discusses certification & testing and outlines some “future dreams.” Finally, he provides appendices on accessibility & the law and language codes, a bibliography, and a colophon (describing the making of the book). In addition, the entire text of the book is included on the accompanying CD-ROM, making it easy to search the book’s contents and to check the code samples—you simply copy the code into an editor then view it in a browser.

Although I hope by this point I’ve convinced you that Building Accessible Websites is comprehensive and full of practical advice, those are not the only reasons the book is worth buying and reading. Mark Pilgrim is absolutely correct when he says: “Joe’s an incredible writer; he can explain the most esoteric topics in a way that anyone can understand.” And it’s not just that he writes with great clarity and elegance. A large part of the book’s appeal is Clark’s refusal to pull any punches:

Usability is a good predictor of accessibility, since usable sites are put together by intelligent, thoughtful people (not necessarily paid experts), and that is exactly the group that pays heed to access without being pushed and prodded. But we should not expect a one-to-one relationship. Usable sites can be inaccessible (e.g., an E-commerce site where every navigation button is an image without a text equivalent). Conversely, accessible sites can be unusable - e.g., Jakob Nielsen’s, which is so outlandishly undesigned as to make it hard to find anything, not to mention dozens or hundreds of pages at the World Wide Web Consortium itself, where we similarly drown in accessible data.

Frequently provocative, Joe Clark is also remarkably pragmatic. For example, it’s almost an orthodoxy in Blogaria that table-based layouts are inferior to those that use CSS-positioning. Not so, argues Clark:

The use of tables for layout has never been prohibited by the Web Accessibility Initiative. You are not creating an inaccessible page if it contains tables used for layout. You have committed no sin—necessarily. You will not be forced to turn in your trackball and badge while WAI Internal Affairs conducts an investigation. But you are not off the hook: You must code tables properly, which, for layout tables, is not difficult at all.

He is similarly relaxed about pictures of text:

For small amounts of text (typically, text rendered as graphics is used for navigation buttons), enter the complete text into alt; you can add explanatory details to title if you wish. (Example: alt=”Contact” title=”Contact information, job listings, and feedback page”.) Accessibility purists may hate this entire approach, but I simply do not see any harm whatsoever in limited bits of text rendered as graphics since it is dead simple to make those graphics accessible. I use pictures of text myself.

Though I nearly fell off my chair when I read Clark’s advice on headings:

The Web Content Accessibility Guidelines tell us to use heading elements in strict numerical order—<h1></h1>, then, if necessary, <h2></h2> through <h6></h6> in that sequence. That dictum suits androids and Vulcans quite well, but here in the real world you can skip intervening levels and you don’t have to start at <h1></h1>. I am telling you that you can defy the WCAG in this limited way. You must not, however, use heading elements in anything but ascending order.

Call me a Vulcan—or an android—but this makes no sense to me at all. The usual reason given for starting with (say) <h3></h3> is that <h1></h1> is too big, black, and ugly. Yet you can easily define the appearance of any element with CSS so the <h1></h1> can be as small, brightly-colored, and pretty as you like. More importantly, assigning <h1></h1> to the first heading on a page will assist in securing a higher Page Rank in Google. And why would you want to skip intervening heading levels? In other words, what’s the advantage in defying the WCAG in this case?

I was also surprised at Clark’s advice concerning resizable text, particularly when I recall the angst that accompanied my switch from pixel-based to relative font sizing. Clark argues that anyone with significant visual impairment will be using screen magnification software, thus rendering the font-size argument irrelevant. While I can see his point, I still believe that it’s worth accommodating normal-vision people who find small type difficult to read, even if it is “too low-level for this book to worry about.”

So, what’s that then? A couple of quibbles in over 400 pages. Mark Pilgrim was right: Building Accessible Websites is the book to buy. (Jim’s book, to which Mark also referred, is Constructing Accessible Web Sites by Jim Thatcher et al.) It’s a fine book, packed with useful information. But, because it has eight authors, it lacks the most appealing quality of Joe Clark’s book: the sense of being guided through the subject by an informed, literate, entertaining, and—above all—iconoclastic expert who absolutely fulfills his own aspirations for the book:

You will, I hope, find the book quite readable. I have this fantasy that Building Accessible Websites will be as enjoyable to read as a well-written cookbook. (What, you’ve never read a cookbook while reclining in bed, far removed from the kitchen?)

I’m not a great reader of cookbooks (I’m not much of a cook, for that matter, though I discovered tonight I can cook a trout to perfection). But I did find myself reading Joe Clark’s book in bed and almost everywhere else in my house—as well as on the train and in a couple of my favorite restaurants. Building Accessible Websites is a considerable achievement: a thorough practical guide to Web accessibility that’s also a pleasure to read.

Permalink | Technorati


Now _this_ is a good book review!

I do want this book, will put on my wishlist. Particularly if he covers learning disabilities, which all other accessibility seem to forget.

I am glad that there is a pull back from total condemnation of tables. I use them in my new re-design, but have followed Mark Pilgrim's guidelines on smarter tables. I then tested in a voice browser and exactly the effect to go for -- main text being the first text heard, with extraneous material following, holds.

Normally I don't use H1 headers, either. But your point is good, and I'm looking at altering this in the new design.

Posted by Burningbird on 16 December 2002 (Comment Permalink)

I'm feeling cantankerous today, so a couple of quibbles, both with the review and with Bb's comment above.

One might reasonably want to skip levels in <h*> if one is using the level-headers as outline-stratifiers, and one of the strata is irrelevant or redundant. For example, imagine an outline of cities over 25,000 people. A top-level heading might be "continent", followed by second-level heading "country", then by the city name. If (as we did back in school) you're going to treat "Australia" as a continent, then it's redundant and silly to then list it as a country as well — just go ahead and start in with the cities. (My randomly made-up example suffers several flaws, including the existence of New Zealand, but perhaps the idea comes through.)

Re: tables. It makes me grimace in pain anytime anyone refers to the "banning" or "condemnation" of tables used for layout, especially in the context of accessibility. The WaSP FAQ sez [1]: Following the introduction of CSS, the W3C *recommended* that layout-specific features in HTML be phased out and replaced by stylesheets, creating a *simpler and more structural World Wide Web*.(My emph.) Nothing in there about illegality, condemnation, or calumny for users of tables. As Burningbird says, if they pass the voice-browser test, then you can congratulate yourself on that score. You might also consider that, in general, table-based layouts load more slowly than CSS-based ones, and that there is no way to have a table-based layout print nicely (that is, automatically suppressing graphics, etc., which can be achieved using style sheets). But if you choose to ignore those things, it's your call.

It's not that tables are evil. Life is more complicated than that. Even to imply that there is a reasonable stance that includes holding tables as evil is simplistic and ultimately counerproductive.


Posted by Graham on 17 December 2002 (Comment Permalink)

Joe and I have strong and opposing opinions about relative font sizing. This issue came up while I was editing his book, and... well, let's just say that it's his book, and he can say whatever he likes, and in my book, I can say whatever I like (and did).

Simply put, I believe that there is a large class of people who would not in any way refer to themselves as "visually impaired" or "disabled" in any way, who nonetheless can not read 9px type on their computer monitor. Reading on-screen is hard enough as it is, and tiny type in stupid fonts only makes a bad situation worse. These affected people are not running screen magnification software as Joe suggests; they are not running any accessibility-related software at all, because they do not view themselves as disabled. At most, they may be running in a display theme with slightly larger fonts, which means that everything on their computer that they read on a regular basis (menus, buttons, toolbars) is readable -- everything except web pages that use absolute font sizes.

And please, spare me the torment of hearing "they can just go to Internet Explorer and go to Tools and go to Internet Options and go to General tab and go to Accessibility and click 'Ignore font sizes specified on web pages'" (except it's not that in IE 6 because Microsoft decided to move the option and I don't remember where they put it and don't have IE 6 handy to check, and besides, seeing the differences between font sizes of various elements within a page is important for comprehension). Or worse, "they can just upgrade to Mozilla". Yeah, that'll happen. Do you have any idea what sort of people we're talking about here? Here's a hint: just for starters, they probably use AOL. It goes downhill from there. They're not changing diddly on their computer; they're afraid of their computer. But they still want to read your site, and they can't, and it's your fault, and you can fix it.

I should also note that, in the community of professional web designers, Joe is alone in his belief that absolute font sizes are not an accessibility problem. Even Zeldman states that you should use relative font sizes whenever possible. He admits that it is not always viable on commercial sites, where branding concerns override accessibility concerns, but this is a very different point from saying that absolute font sizes are not an accessibility concern to begin with.

One disagreement in 432 pages. The other 431 pages are top-notch. Buy the book.

Posted by Mark on 17 December 2002 (Comment Permalink)

Bb, thanks for the kind remarks.

Graham, thank you too for the explanation of why one might want to skip a heading level -- that makes perfect sense. And your point about condemnation of table-based layouts is well-taken. I have a strong preference for CSS-layouts, for the reasons you articulate, but I do accept there are valid reasons for developers wanting to stick with tables.

Mark, I'm with you on relative font sizes, as you know. Switching was painful, but only for a day or so. And, as my review suggests, the book is indeed top-notch.

Posted by Jonathon Delacour on 17 December 2002 (Comment Permalink)

Thanks for the wonderful review, which was posted almost at the same time I received my academic review copy. I toted the book off to Starbucks with me this weekend, and was entranced.

This morning my web design class and I discussed font sizes, and I'm going to point them to this post (and the comments) to further their understanding.

Both Joe and Mark do an excellent job of addressing the "why bother" questions that I so often get from students, as well as the arguments as to the difficulty of implementing accessibility that I get from my colleagues. Bravo to you both.

Jonathon, once your multi-post series on this topic is done, would you consider creating an archive page that combines the posts, so that I can easily point students and colleagues to it?

Posted by Liz on 18 December 2002 (Comment Permalink)

This discussion is now closed. My thanks to everyone who contributed.

© Copyright 2007 Jonathon Delacour