ARIA tab nodes must have an accessible name

Rule ID: aria-tab-name
Ruleset: axe-core 4.12
User Impact: Serious
Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), Trusted Tester, EN 301 549, RGAA

Start building more accessible experiences

Axe DevTools Pro helps development teams find and fix up to 80% of accessibility issues while coding. No experience required. Get started with your free trial today.

Compliance Data & Impact

User Impact

Disabilities Affected

  • Blind
  • Low Vision
  • Mobility

Standard(s)

  • WCAG 2.1 (A)
  • WCAG 2.0 (A)
  • WCAG 2.2 (A)
  • Trusted Tester
  • EN 301 549
  • RGAA

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

WCAG Success Criteria [WCAG 2.2 (A)]

  • 4.1.2: MUST: Name, Role, Value

Trusted Tester Guidelines

  • 5.C: MUST: The combination of the accessible name, accessible description, and other programmatic associations (e.g., table column and/or row associations) describes each input field and includes all relevant instructions and cues (textual and graphical).

EN 301 549 Guidelines

  • 9.4.1.2: MUST: Name, Role, Value

    How to Fix the Problem

    Correct markup solutions

    The aria-tab-name rule has four markup patterns that pass test criteria:

    <div role="tab" id="text">Settings</div>
    
    <div role="tab" id="al" aria-label="Settings"></div>
    
    <div role="tab" id="alb" aria-labelledby="labeldiv"></div>
    <div id="labeldiv">Settings</div>
    
    <div role="tab" id="title" title="Settings"></div>
    
    1. Ensure that each element with role="tab" has 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.
      • Non-empty title attribute.

    Incorrect markup solutions

    The aria-tab-name rule has four markup patterns that fail testing criteria:

    <div role="tab" id="empty"></div>
    
    <div role="tab" id="alempty" aria-label=""></div>
    
    <div role="tab" id="albmissing" aria-labelledby="nonexistent"></div>
    
    <div role="tab" id="albempty" aria-labelledby="emptydiv"></div>
    <div id="emptydiv"></div>

    Why it Matters

    Screen reader users are not able to discern the purpose of elements with role="tab" that do not have an accessible name.

    Rule Description

    ARIA tab elements must have discernible text that clearly describes the purpose or function of the tab for screen reader users.

    The Algorithm (in simple terms)

    Checks all elements with role="tab" to ensure that they have a discernable, accessible name.

    Resources

    Refer to the complete list of axe 4.12 rules.

    Was this information helpful?

    You have already given your feedback, thank you..

    Your response was as follows:

    Was this information helpful?
    Date/Time feedback was submitted: