WCAG 3.2.4: Consistent Identification
If it does the same thing, call it the same thing. This criterion requires that components with the same functionality are identified consistently across a set of pages — the same visible label, the same icon, the same alt text, the same accessible name. A function that answers to “Search” on Monday’s page and “Find” on Tuesday’s forces every user to learn your interface twice.
The success criterion, in full
Components that have the same functionality within a set of Web pages are identified consistently.
“Identified” covers every way a component announces itself: visible text, iconography, text alternatives, and accessible names. “Within a set of Web pages” scopes the comparison across the pages of a site — this is a cross-page consistency check, and there are no exceptions.
Why consistent naming matters
Recognition is cheaper than comprehension. Once a user has learned that the disk icon labelled “Save” stores their work, every later encounter costs them nothing — they recognize it and act. Rename it “Store” on the next page and the shortcut breaks: now they must stop, read, and reason about whether this new thing is the old thing. For most users that is friction; for some it is a wall.
Screen reader users are hit hardest, because the accessible name isthe component to them. Searching a page for the “Save” button fails when this template calls it “Store”. Users with cognitive limitations — including people who memorize one term per function, users of symbol-based communication, and people with limited reading vocabulary — depend on stable naming the same way. And users of speech recognition software literally invoke controls by name: “click Search” does nothing if the button is called “Find” here.
There is a corollary the Understanding document calls out: things that do different jobs must notshare a name. If a checkmark icon means “approved” in one view and “task complete” in another, its text alternative must differ to match the function. Consistency binds name to function in both directions.
What must stay consistent
“Identification” is every signal a user might use to recognize the component:
Visible text labels
Button text, link text, and field labels for the same function: always 'Search', not a rotation of 'Search', 'Find', and 'Go'.
Icons
The same function keeps the same icon across pages. Swapping a magnifying glass for binoculars mid-site breaks visual recognition.
Text alternatives
Alt text on image buttons and icons naming the same function should match — and should name the function ('Print'), not the picture ('Printer icon').
Accessible names
aria-label / aria-labelledby values for the same control across templates. Speech-input users invoke controls by these names.
Consistent does not mean robotic. Context-appropriate precision is allowed: a pagination arrow labelled “Go to page 4” on one page and “Go to page 5” on the next identifies the same function the same way. The test is whether a user who learned the component once will recognize it instantly the next time.
Pass and fail examples
One 'Search' everywhere(passes)
Every page's header search uses the same magnifying-glass icon with the accessible name 'Search'. Users recognize it instantly on any page. Passes.
Wizard buttons with contextual precision(passes)
A checkout labels its advance button 'Continue to shipping', then 'Continue to payment'. The identification pattern — 'Continue to <next step>' — is consistent and clearer than a bare 'Next'. Passes.
Same icon, different function, different name(passes)
A checkmark icon means 'approved' in the review queue and 'complete' in the task list, and its alt text differs accordingly. Different functions correctly get different names. Passes.
Download by any other name(fails)
PDF download links read 'Download' in the docs section, 'Get PDF' on product pages, and 'Save file' in support articles — same function, three identities. Fails.
Drifting alt text on an icon button(fails)
The same print function is alt="Print" on one template, alt="Printer" on another, and has no alt on a third. Screen reader users cannot recognize it as one function. Fails.
Code examples
Inconsistent vs. consistent identification
The same search function, hand-coded per template, drifts into three identities. Pin one label and one icon for the function site-wide.
<!-- ✗ Same function, three different identities -->
<!-- home template -->
<button><svg aria-hidden="true">…magnifier…</svg> Search</button>
<!-- blog template -->
<button><svg aria-hidden="true">…binoculars…</svg> Find</button>
<!-- docs template -->
<button aria-label="Go"><svg aria-hidden="true">…magnifier…</svg></button>
<!-- ✓ One identity everywhere: same icon, same accessible name -->
<button type="submit">
<svg aria-hidden="true" focusable="false">…magnifier…</svg>
Search
</button>Alt text names the function, identically
For repeated image controls, the text alternative is the identification screen reader users rely on. Name the function, and keep the name stable.
<!-- ✗ The same print control drifts between pages -->
<input type="image" src="/icons/print.svg" alt="Print" /> <!-- page A -->
<input type="image" src="/icons/print.svg" alt="Printer" /> <!-- page B -->
<input type="image" src="/icons/print.svg" alt="" /> <!-- page C -->
<!-- ✓ One function, one name, everywhere -->
<input type="image" src="/icons/print.svg" alt="Print this page" />Enforce consistency with a shared component
The structural fix: define each repeated function as one component with its label and icon baked in, so templates cannot improvise.
// download-button.tsx — the single source of identity
export function DownloadButton({ href }: { href: string }) {
return (
<a href={href} download className="btn">
<DownloadIcon aria-hidden="true" />
Download PDF
</a>
)
}
// Every template renders <DownloadButton /> — the label,
// icon, and accessible name cannot drift between pages.Common failures
- Synonym drift: the same function labelled 'Search' / 'Find' / 'Go', or 'Download' / 'Get PDF' / 'Save file', on different pages.
- The same icon function with different text alternatives across pages — or alt text that names the image ('Magnifying glass') instead of the function ('Search').
- Different icons for the same function between templates, usually after a partial redesign or a mixed icon library.
- Visible label kept consistent while the accessible name varies (a changing aria-label overriding the same button text), so speech-input and screen reader users get a different identity than sighted users.
- Two different functions sharing one label — e.g. 'Submit' for both 'save draft' and 'publish' — so users cannot distinguish them.
- Teams editing copy per page in a CMS with no shared component or style guide, letting identical functions accumulate different names over time.
How to test for 3.2.4
- 1
Inventory the repeated functions
List functions that recur across pages: search, print, download, save, share, help, cart, next/previous, close. These are the components 3.2.4 audits.
- 2
Sample pages from every template
Pick pages built from each distinct layout — home, listing, detail, blog, docs, account. Naming drift almost always happens between templates and teams, not within one page.
- 3
Compare visible labels and icons
For each function, record its visible text and icon on every sampled page. Any arbitrary variation — synonyms, different icons — is a failure. Contextual precision ('Go to page 4' vs 'Go to page 5') is fine.
- 4
Compare accessible names
Use the browser's accessibility inspector or a screen reader to read each control's accessible name (label, alt, aria-label). The name for the same function must match across pages, and must match what sighted users see.
- 5
Check the inverse: different functions, different names
Scan for distinct functions sharing one identity — the same icon or label doing different jobs in different places. Give each function its own stable name.
Automated tools cannot compare naming across pages, so this is a manual audit — best done once, then locked in with shared components and a content style guide. Fold it into the full WCAG 2.2 checklist.
Frequently asked questions
What does WCAG 3.2.4 Consistent Identification require?
It requires that components with the same functionality within a set of web pages are identified consistently. If a magnifying-glass icon triggers search on one page, the same function must not be labelled 'Find' with a binoculars icon on another. Identification covers everything that names a component to users: visible text labels, icons, alt text on image controls, and accessible names such as aria-label. It is a Level AA success criterion under Guideline 3.2 Predictable, introduced in WCAG 2.0 and unchanged in 2.1 and 2.2.
Does 'consistent' mean the labels must be identical?
Consistent means users can recognize the same function, which usually means identical — but not always. Context-sensitive variations are acceptable when they serve clarity: a 'Next' button might read 'Next step' in a wizard and 'Next page' in search results without confusion, and W3C's own example allows an arrow icon labelled 'go to page 4' on one page and 'go to page 5' on another, because the function (go to the named page) is identified the same way. What fails is arbitrary variation: 'Search' here, 'Find' there, 'Go' elsewhere for the identical function.
Does 3.2.4 apply within a single page or only across pages?
The normative text scopes it to a set of web pages, so strictly it is a cross-page requirement — the same function must be identified the same way on page after page. Within one page, wildly inconsistent naming of the same function is still a usability problem and often trips other criteria (such as 2.4.6 Headings and Labels if labels stop being descriptive), but the 3.2.4 audit itself compares pages across the site. Note the flip side: two components that do different things should not share the same label either, or users cannot tell them apart.
Does consistent identification cover icons and alt text, not just visible text?
Yes. Identification includes every cue users rely on to recognize a component: the visible label, the icon or image, and the text alternative exposed to assistive technology. A classic failure pattern is the same printer icon carrying alt="Print" on one page and alt="Print this page" on a second — that inconsistency is tolerable — but alt="Printer" (naming the picture, not the function) or a completely different name like "Output" on a third breaks recognition for screen reader users. Keep the accessible name for a repeated function stable everywhere it appears.
Who benefits from consistent identification?
People who learn interfaces through repetition benefit most. Screen reader users recognize functions by their announced names — a stable name means the 'Save' they trusted on one page is the same 'Save' everywhere. Users with cognitive limitations avoid re-deciphering controls on every page; many rely on recognizing a familiar icon-plus-label pair. People who use text-to-speech, symbols, or limited reading vocabulary often have one memorized term per function. Every unnecessary synonym multiplies their cognitive load.
How is 3.2.4 different from 3.2.3 Consistent Navigation?
Both sit under Guideline 3.2 Predictable at Level AA and they audit different dimensions. 3.2.3 is about position: navigational mechanisms repeated across pages keep the same relative order. 3.2.4 is about naming: any components with the same functionality — navigation or not — are identified the same way across pages. A site can pass one and fail the other: a menu in a fixed order whose search button is labelled 'Search' on some pages and 'Find' on others passes 3.2.3 and fails 3.2.4.
Related Success Criteria
When a component receives focus, it does not initiate a change of context.
Changing settings of a component does not automatically cause context changes.
Navigational mechanisms are repeated in the same relative order.
Changes of context are initiated only by user request.
Help mechanisms appear in the same relative order across pages.