Re: Question about HTML abbr and acronym tags

Thanks for the feed back and the discussion link.

I too would like to see something like:

    <abbr title="British Broadcasting Corporation" say="be be see">BBC</abbr>

(While pronunciation really belongs in a CSS aural style sheet,
that would be clumsy and require an id or class attribute on each abbr tag.)
Currently the HTML standard says in section 9.2.1:

<quote>
Note that abbreviations and acronyms often have idiosyncratic pronunciations.
For example, while "IRS" and "BBC" are typically pronounced letter by letter,
"NATO" and "UNESCO" are pronounced phonetically. Still other abbreviated
forms (e.g., "URI" and "SQL") are spelled out by some people and pronounced
as words by other people. When necessary, authors should use style sheets to
specify the pronunciation of an abbreviated form.
</quote>

which would tent to imply that markup (including the title attribute)
should not be used for pronunciation keys for abbreviations.

I'm not sure I agree with Peter Neumann's conclusion.  I think I agree
with those that say the browser software should get plurals right:
IDs should be pronounced as "eye dees", and IDS as "eye dee ess".
So it shouldn't matter unless you have:

 <abbr title="identity">ID</abbr>s

Visually this should show as "IDs", and we can hope some readers will
pronounce it correctly or that CSS markup (or a future "say"
attribute) will solve pronunciation issues.  The problem with using

 <abbr title="identities">IDs</abbr>

just to help some readers is that ABBR is often used with the
DFN tag to mark defining terms.  You link ABBRs with the DFN via
the title, so there would be no simple way to have everything.

For example, suppose you start with this:

   <p> An <dfn><abbr title="Identity">ID</abbr></dfn> is .... </p>
   ...
   <p> The <abbr>ID</abbr> is set to ... </p>

Here one would hope a screen reader would save the title of the defining
instance (or the first instance with a title attribute) and use it for
subsequent occurrences of that same ABBR.  But the cross references are
broken if do this:

   <p> ...Users with multiple <abbr title="Identities">IDs</abbr> ...</p>

or:

   <p> ...Users with multiple <abbr title="Identity">IDs</abbr> ...</p>

Here the cross reference will work but will any screen readers pronounce
this as "eye dees"?  Now if instead we use:

   <p> ...Users with multiple <abbr>ID</abbr>s ...</p>

Then the cross reference is preserved, and one can hope that
speech synthesis or translation software would realize that
    <abbr>anything</abbr>s  is a plural.

I didn't see anything about this in the HTML 5 draft (section 3.12.8),
(which is why I asked in the first place; I don't want to later
have to re-edit all my content!) but I see four solutions:

1) Keep the standard as is, and recommend <abbr>any</abbr>s for plurals.

2) Add a "say" attribute (really should be "pronounce" but that
    is too long).  Then the ABBR title attribute can be used to link the
    abbreviation to the DFN element and not be used for pronunciation.

    (While logically this should really be a CSS issue, it is difficult
    to see how CSS will process all ABBR tags with identical contents,
    without an id or class attribute on every ABBR occurrence.)

3) Simplify DFN semantics and add a "link" attribute on elements
    that can have defining instances, e.g. ABBR, ACRONYM, EM, etc.
    This link attribute would refer to the title of the DFN.

    This would allow markup such as:
    <p> ... <dfn title="identity"><abbr>ID</abbr></dfn> ...</p>
    <p> ...Users with multiple
        <abbr link="identity" title="identities">IDs</abbr> ...</p>

    which should allow the ABBR tag title attribute to be used as
    a pronunciation key.

4) Add "plural" semantic markup for DFN or (better) ABBR elements.
    Something such as:
       <p> The <dfn title="identity"><abbr>ID</abbr></dfn> ... <p>
       <p> ...<abbr plural-of="identity" title="identities>IDs</abbr>...
    (Here again the title is used as a pronunciation key; a "say" attribute
    or similar would be better for this purpose.)

    Or add a PLURAL element as a child of DFN (or ABBR):
       <p> The <dfn title="identity">
                <abbr>ID</abbr>
                <plural-form title="identities">IDs</plural-form>
           </dfn> ... <p>
       <p> ...<abbr>IDs</abbr>...

No matter what is done, it is unlikely to work in all cases.
But in any case some direction should be given if these tags
are to be widely useful!

No matter what (if anything) is decided, a note about this should
be added to the next version of the HTML / xhtml standards,
as an aded to programmers of web browsers, speech synthesis, and
translation software.

-Wayne

Received on Monday, 7 January 2008 19:48:18 UTC