HTML and CSS Reference
//html:a | //html:h1 | // html:h2 | //html:h3 | //html:h4
| //html:h5 | //html:h6
A regular expression is not much harder:
<a\s+.*>.*</a> | <h([1-6])\s+.*>.*</h\1>
Fixing them, however, requires real human intelligence. Given the state of the art, this cannot be automated.
For each item, ask yourself whether the most important content comes first. For example, the heading "Johns
Hopkins scientists find cure for cancer" should be rewritten as "Cancer cure found by Johns Hopkins scientists."
The most important information is that a cure for cancer was found, not who found it. A sighted user may in fact
pick up on that in the first form because the word cancer is likely to jump out at him even before he has read
the sentence (especially if it's been emphasized with em or strong tags). However, a blind reader may hear the
words "Johns Hopkins scientists" and jump to the next heading on the page because she's not all that interested
in scientists or Johns Hopkins.
This inverted style of writing can, of course, be more than a little stilted and distracting when it occurs in the
middle of body text. I don't customarily use it in links inside paragraphs and narrative text. However, it's very
important for lists of links, such as tables of contents and the like. In these, the auditory user is going to scan
down the page very, very quickly, listening to just two or three words of each item.
Consequently, one thing you should avoid at all costs is lists in which each item starts with the same two or
three words. For example:
The more words of text in common at the start of each link, heading, or list item, the more annoying this is.
Rewrite all such lists as soon as possible, and then improve other links and headings as time permits.