- Success Criterion 2.5.3
- Conformance level A
- W3C reference F111
Visible Label Text With No Accessible Name Behind It
2.5.3 — Label in Name
Scenario
Setting
A ride-hailing app's trip booking screen
What’s wrong
A control shows label text on screen but has no accessible name at all — screen readers announce nothing useful and voice control can't target it.
Example
<div class="confirm-btn" onclick="confirmPickup()">
<span aria-hidden="true">Confirm Pickup</span>
</div> Why it matters
A screen reader announces only 'clickable,' and a voice-control user has no words at all to say to activate it.
How to test
Inspect a control that shows label text on screen: check its computed accessible name — if empty, it fails.
How to fix
A real button element carries its text content as its name automatically; drop the aria-hidden span trick.
<button onclick="confirmPickup()">Confirm Pickup</button> Outcome
A rider hears 'Confirm Pickup, button' and activates it with one voice command.
Who is affected
Screen reader users and voice-control users who both depend on a real accessible name to find and trigger the control.
Learn more
- Understanding Understanding document (opens in a new tab)
- Technique Related technique (opens in a new tab)
Related scenarios
- Accessible Name That Doesn’t Match the Control’s Visible Label
- ARIA Label Naming a Completely Different Action Than Shown
- Accessible Name Built From an Icon Instead of Visible Text
- Translated ARIA Label That Doesn’t Match the Visible Language
- Visible Label Text Reordered or Broken Apart in the Name
- ARIA Reference Pointing to the Wrong Element for a Name