Skip to main content
Perceivly: Perceivly home

2.5.3 Label in Name

Level A · added in WCAG 2.1

When a control has a visible text label, its accessible name must contain that same text. Ideally the name starts with the visible label.

Who it helps

Voice control users say what they see, such as "click Send". If the code names the button "Submit form", the command fails. Screen reader users who can see the screen also get confused when speech doesn't match the label.

How to meet it

Examples

Fails:The visible label says Send but the accessible name says Submit form
<button type="submit" aria-label="Submit form">Send</button>
Fails:A search button whose name drops the visible word
<button type="submit" aria-label="Find products">Search</button>
Passes:No aria-label, so the visible text is the name
<button type="submit">Send</button>
Passes:An extended name that starts with the visible label
<button type="submit" aria-label="Search products">Search</button>

Can a scanner detect this?

Partly

axe-core's label-content-name-mismatch rule compares visible text with the accessible name and flags names that don't contain it. It cannot read text inside images or labels placed outside the control, so check those by hand.

axe-core rules that test it

Common mistakes

Official W3C explanation of 2.5.3

Check your own page

See which automated WCAG checks your page fails, with the failing elements and how to fix them.

Enter a page address, for example example.com/shop.

Reviewed November 2, 2026