CARVIEW |
This website uses cookies
By continuing to use our sites or services, regardless of your cookie preferences, you agree to our Terms of Use. Deque University uses first and third-party technologies to enable us and third parties to collect information about you and your interactions with our sites and services in accordance with our Legal Policy.
Translation Feedback
Please provide your feedback on the translation.
Buttons must have discernible text
Accessibility testing for dev teams - No experience required
Sign up for the axe newsletter
Stay up to date on axe features, updates, and events.
Compliance Data & Impact
User Impact
▼
Disabilities Affected
- Blind
Deafblind
Standard(s)
- WCAG 2.1 (A)
- WCAG 2.0 (A)
- Section 508
- Trusted Tester
WCAG Success Criteria [WCAG 2.1 (A)]
- 4.1.2: MUST: Name, Role, Value
WCAG Success Criteria [WCAG 2.0 (A)]
- 4.1.2: MUST: Name, Role, Value
Section 508 Guidelines
- 1194.22: MUST: Web based intranet and Internet Information & Applications
- 1194.22 (a): MUST: A text equivalent for every non-text element shall be provided (e.g., via "alt", "longdesc", or in element content)
Trusted Tester Guidelines
- 6.A: MUST: The purpose of each link or button can be determined from any combination of the link/button text, accessible name, accessible description, and/or programmatically determined link/button context.
How to Fix the Problem
Correct markup solutions
The button-name
rule has five markup patterns that pass test
criteria:
<button id="text">Name</button>
<button id="al" aria-label="Name"></button>
<button id="alb" aria-labelledby="labeldiv"></button>
<div id="labeldiv">Button label</div>
<button id="combo" aria-label="Aria Name">Name</button>
<button id="buttonTitle" title="Title"></button>
-
Ensure that each
button
element and elements withrole="button"
have one of the following characteristics:- Inner text that is discernible to screen reader users.
- Non-empty
aria-label
attribute. -
aria-labelledby
pointing to element with text which is discernible to screen reader users. -
role="presentation"
orrole="none"
(ARIA 1.1) and is not in tab order (tabindex="-1"
).
Incorrect markup solutions
The button-name
rule has six markup patterns that fail testing
criteria:
<button id="empty"></button>
<button id="val" value="Button Name"></button>
<button id="alempty" aria-label=""></button>
<button id="albmissing" aria-labelledby="nonexistent"></button>
<button id="albempty" aria-labelledby="emptydiv"></button>
<div id="emptydiv"></div>
<button id="buttonvalue" value="foo" tabindex="-1"></button>
Why it Matters
Screen reader users are not able to discern the purpose of elements with
role="link"
, role="button"
, or
role="menuitem"
that do not have an accessible name.
Rule Description
Buttons must have discernible text that clearly describes the destination, purpose, function, or action for screen reader users.
The input-button-name
rule separates functionality from the
button-name
rule to ensure that input buttons have discernible
text; advise relevant to input button names was incorrect for button elements.
The Algorithm (in simple terms)
Checks all buttons to ensure that they have a discernable, accessible name.
Resources
Refer to the complete list of axe 4.7 rules.
Was this information helpful?
Your response was as follows:
Date/Time feedback was submitted:
Customer Feeddback