3.1.4 Abbreviations
WCAG 2.2 · 3.1.4 AAA Understandable
What it requires
A mechanism must be available for identifying the expanded form or meaning of every
abbreviation — including acronyms and initialisms — wherever it appears in content. The
criterion applies the first time an abbreviation is used and to each later use whose
meaning could be ambiguous. If the expansion is already given in the surrounding text
(for example, “World Health Organization (WHO)”), that satisfies the requirement; otherwise
you must provide it some other way, such as an <abbr> element, an inline
definition, or a glossary link.
- People with reading or cognitive disabilities, who may not recognise a shortened form and cannot infer it from context.
- Screen-reader users, since many abbreviations are spoken as garbled words or letter-by-letter without their intended meaning.
- People new to a subject or language, including non-native readers, who are unfamiliar with domain jargon and acronyms.
How to detect it
| Check | How | Tooling |
|---|---|---|
| Find abbreviations | Scan content for acronyms, initialisms, and shortened words on first use. | Manual reading. |
| Expansion present | Confirm each has an expansion in text, an <abbr title>, or a definition link. |
Manual; inspect markup. |
| Screen reader | Listen to how the abbreviation is announced and whether meaning is conveyed. | NVDA / VoiceOver. |
| Automated | Tools can flag missing title attributes but cannot judge meaning or context. |
axe (partial only). |
How to fix it
- Expand the abbreviation in surrounding text on first use: “Cascading Style Sheets (CSS)”.
- Where an inline expansion is awkward, wrap it in an
<abbr>with atitlegiving the full form. - For terms reused across pages, link to a glossary entry or a definition list.
- Be consistent: if an abbreviation has more than one meaning, make each use unambiguous.
<p>Built on <abbr title="Cascading Style Sheets">CSS</abbr> and
<abbr title="HyperText Markup Language">HTML</abbr>.</p>
Copy-paste tests
Automated coverage
There is no fully automated axe-core rule for 3.1.4 — a tool can flag a
missing title but cannot judge whether an abbreviation has a correct, meaningful
expansion. This criterion needs manual review using the console check and
steps below.
Run this in the browser console
// Read-only: lists abbreviations and any expansion, outlines suspects.
const abbrs = [...document.querySelectorAll('abbr')];
const upper = [...document.body.innerText.matchAll(/\b[A-Z]{2,}\b/g)].map(m => m[0]);
console.table(abbrs.map(a => ({ text: a.textContent, title: a.title || '(none)' })));
console.log('ALL-CAPS tokens in text (review for missing <abbr>):', [...new Set(upper)]);
abbrs.filter(a => !a.title.trim()).forEach(a => { a.style.outline = '2px solid red'; });
What to check manually: confirm each title is the correct, full
expansion (not a guess or wrong meaning), and that abbreviations expanded only in surrounding
text stay unambiguous on every reuse — no script can verify meaning.
Related
- WCAG 2.2 criteria index
- Learn catalog
- Structure & semantics — using elements like
<abbr>for meaning.