Welcome to Vanilla Breeze
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
The abbreviation element represents an abbreviation or acronym, optionally with its expansion shown via the title attribute.
The <abbr> element marks up abbreviations and acronyms, providing an expansion through the title attribute. This helps users understand unfamiliar terms and provides additional context for assistive technologies.
help cursor reinforces that the element is informationalvar(--color-interactive) for visual feedback<abbr title="HyperText Markup Language">HTML</abbr>
<abbr class="plain" title="Cascading Style Sheets">CSS</abbr>
Combine with <dfn> when first defining a term. This signals to screen readers and search engines that this is the defining instance.
<p> <dfn><abbr title="Application Programming Interface">API</abbr></dfn> (Application Programming Interface) is a set of protocols for building software applications. Later uses of <abbr title="Application Programming Interface">API</abbr> need only the abbreviation.</p>
| Class | Effect |
|---|---|
| (default) | Dotted underline + help cursor. Underline color changes to interactive on hover. |
.plain |
No underline. Title tooltip still works on hover. |
abbr { text-decoration: underline dotted; text-decoration-color: var(--color-text-muted); cursor: help;} abbr[title]:hover { text-decoration-color: var(--color-interactive);} /* Remove underline */abbr.plain { text-decoration: none;}
For maximum accessibility, spell out the abbreviation in parentheses on first use, then use <abbr> alone for subsequent occurrences. This works on all devices, including touch.
If the expansion must be accessible on touch devices, wrap the abbreviation in a <tool-tip> which responds to tap/focus in addition to hover.
Vanilla Breeze's glossary is generated from site/src/_data/vocabulary.json, where each concept can declare a skos:altLabel array of synonyms and abbreviations. Examples from the shipped vocabulary:
Concept (@id) |
skos:prefLabel |
skos:altLabel |
|---|---|---|
progressive-enhancement | progressive enhancement | PE |
data-review | data-review | review |
keyword-index | keyword index | index, site index |
metadata-substrate | metadata substrate | substrate |
content-lens | content lens | lens |
When you reference a concept by its abbreviated altLabel rather than its full prefLabel, <abbr> is the right wrapper: it shows the expansion via title and signals the dotted underline to sighted readers, while the inner anchor with data-concept drives the glossary popover.
<p>The <abbr title="Progressive Enhancement"><a href="/glossary/#term-progressive-enhancement" data-concept="progressive-enhancement">PE</a></abbr> approach also benefits search engine indexing.</p>
The popover script queries a[data-concept] regardless of wrapper, so this composes cleanly with the <dfn>-wrapped first-mention pattern. Use <dfn> for the prefLabel form on first mention; use <abbr> for altLabel/abbreviation mentions.
See Glossary terms in prose for the full authoring pattern.
<dfn> — For defining terms (often wraps <abbr> on first use)skos:altLabel abbreviations<dfn> vs <abbr> authoring patterns<tool-tip> — For accessible tooltips that work on touch and keyboard<dt> — Abbreviations inside definition terms for glossaries