[whatwg] On using abbr with no title and screen readers
chocolate.camera at gmail.com
Tue Dec 20 14:17:14 PST 2011
I am trying to make myself clear on how and when to use abbr, if at all, specifically when it does not need expansion and hence does not a title attribute.
The point, I guess, is only mark things up if it provides something.
I would say that the sole purpose of using abbr with no title (besides styling) is to tell a screen reading engine to either spell a word because it is an acronym, instead of pronouncing it as if it were just a word (or that read like one).
Let me start by mentioning that I do think there are times where text in all-caps in the HTML itself (i.e. CSS aside) is justified and makes sense. I do think it is wrong to use all-caps in the HTML for mere presentation purposes (like, for headers), but not when it conveys a meaning of stress (yelling; same as you do not need <q> if you use quotation marks) or when quoting something that was written elsewhere originally in all caps too.
I assume a screen readers will (should) assume something is an acronym, and hence should be spelled, only if:
1. it does not exists in its internal dictionary (I assume screen readers —decent ones— will have a dictionary of the language they read, which will also include acronyms marked as such).
2. cannot be pronounced (I assume the reading system should be designed to be able to pronounce new words not in its dictionary).
I think the rationale to use title-less abbr that I think makes sense to me is:
- Use abbr when I want a screen reader to spell something, even if it looks like a word, because it is not. The reading system should try to pronounce PAL like a word, with no need for markup, because it is one that does exists in English, and the screen reader should expect that normal text in all caps can (and will) happen. Who cares if it is a different "pal" from the one in its dictionary if the pronunciation is right.
In contrast, should I assume the screen reader's dictionary may not have USA as an acronym (I do not assume that, but for the sake of the argument), I would want to make sure that the screen reader does not read it like "yousay", but that spells it instead. In that case, I would mark it up as an acronym.
That way, it plays fine with non-acronym text in all caps, and I actually rarely need to mark anything up:
1. If it can be pronounced, just let the screen reader pronounce it, no need for markup. If it happens to be normal text in all caps, it will also be pronounced, since the reading system can.
2. If it looks like pronounceable, but should be spelled, then mark it up (few times are pronounceable acronyms spelled, so this will be rare anyway).
3. If it cannot be pronounced, we should expect the screen reader will spell it (since it will not be a word in its dictionary, and it will not know how to pronounce the new word), no need for markup.
4. if I ever mark up something the screen reader already knew it should spell (like for styling), the markup is superfluous but does not do any harm.
I keep mentioning text in all caps, but the same goes for acronyms in lower case: the presence of title-less abbr of lack of would tell the reading engine whether to spell it or pronounce it.
This is quite the opposite of what Kroc Camen decided for his own in his post "Abbreviations, Definitions & Citations Revisited" <http://camendesign.com/code/abbr_redux>, more than a year ago, where he concludes that if it reads like a word, he would mark it up, and if it does not, he would not mark it up. Yet I initiated this reflection with him and he thought it was interesting and that I should bring it up, so here it is.
This is not based around any experience whatsoever on what screen readers actually do (I have zero knowledge of them), but maybe this rationale, if shared, helps their developers make them start behaving like I described, which I think is a useful behavior and would also help authors have a higher level of prediction/control on how their text will be read.
More information about the whatwg