The HTML <abbr>
element is deceptively familiar and attractive, its been around forever (1999) and thus people assume that it does what it does and does it well. Nothing much changed over the iterations of the abbr
element definition over the years. One notable exception is that the acronym
element was obsoleted in HTML5 and abbr
now is used for both acronyms and abbreviations.
User Interface truth
The use of the title
attribute to provide the expansion for an abbreviation is not a user friendly way to provide the expanded text, it is a method that #SUX (Some User Experience).
WHY SUX?
- The
title
attribute content is only practically available to mouse users. - The
title
attribute display for mouse users with low vision is problematic, to say the least. - The
title
attribute content is available to users of JAWS and NVDA screen reader users if they enable it, by default it’s ignored. - VoiceOver simply does not announce the
title
attribute content on<abbr>
- No amount of clever tricks with ARIA, CSS and JavaScript will make it not suck.
A solution
Provide an expansion of the abbreviation/acronym, numeronym even, in plain text on first use, use an <abbr>
to mark up the abbreviation, which provides a hint to user agents on how to announce/display the content:
See the Pen
Abbreviations by steve faulkner (@stevef)
on CodePen.
Comments
TFW (That Feeling When) you wonder if he really meant “neuronym” or maybe “numeronym”, like a11y or i18n.
If the
title
is largely ignored, how is it harmful to keep it in (if properly textually expanded the first time)?For example, wouldn’t something like this be better than your proposed solution?
FWIW (For What It's Worth)
And later down the page, probably under a different heading, further down the page,
FWIW
The user still has the possibility of seeing the expansion even if they’ve skipped the first instance (such as nav by headings).