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.

Any thoughts?

Reply via email to