Components with same functionality are identified consistently
Why it matters
When the same action is labeled differently across pages — 'Save' on one page, 'Submit' on another, 'X' vs 'Close' in modals — voice control users cannot reliably activate components by speaking the label they see, and screen reader users build an incorrect model of the interface. WCAG 2.2 SC 3.2.4 (Consistent Identification) is a Level AA requirement. The cost of inconsistency compounds with every repeated interaction for users who depend on assistive technology.
Severity rationale
High because inconsistent component labels break voice control activation and disorient screen reader users across pages, violating WCAG 2.2 SC 3.2.4 at Level AA for every affected user interaction.
Remediation
Extract shared interactive components into a single reusable source so their label and appearance cannot drift.
// components/CloseButton.tsx — single definition, no label variants
export function CloseButton({ onClose }: { onClose: () => void }) {
return (
<button
onClick={onClose}
aria-label="Close"
className="..."
>
<XIcon aria-hidden="true" />
</button>
)
}
// Use the same component in modals, drawers, and overlays:
<CloseButton onClose={() => setOpen(false)} />
Audit the codebase for close, submit, delete, and save actions. Anywhere the same operation has different labels in different contexts, consolidate to the shared component.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Accessibility WCAG Compliance Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- wcag:2.2 · 3.2.4 — Consistent Identification
- section-508:2018-refresh · 501.1 — Scope
Taxons
History
- 2026-04-18·v1.0.0·Initial import from accessibility-wcag·automated