Elements must only use allowed ARIA attributes

Rule ID: aria-allowed-attr
User Impact: Critical
WCAG: 4.1.2

Compliance Data & Impact

User Impact

Disabilities Affected

  • Blind
  • Deafblind
  • Mobility

Requirement(s)

  • WCAG 2.0 (A): MUST

WCAG Success Criteria

  • 4.1.2 Name, Role, Value

Section 508 Guidelines

  • Not specified, or not applicable

Rule Description

Not all ARIA role-attribute combinations are valid. This Rule checks that each role is supplied with allowed attributes.

Why it Matters

Using ARIA attributes in roles where they are not allowed can interfere with the accessibility of the web page. Using an invalid role-attribute combination will, at best, result in no effect on the accessibility of the application and, at worst, may trigger behavior that disables accessibility for entire portions of an application.

When ARIA attributes are used on HTML elements that are not in accordance with WAI-ARIA 1.1, they conflict with the semantics of the elements which can cause assistive technology products report nonsensical user interface (UI) information that does not represent the actual UI of the document.

How to Fix the Problem

ARIA explicitly defines which attributes are allowed for any given role and for every attribute, where that attribute may be used. The detailed information on each attribute can be found by looking at the documentation for each role and/or each attribute.

Specific Reference: For more information about which ARIA attributes may or should not be used by HTML element, see ARIA in HTML – Document conformance requirements for use of ARIA attributes in HTML opens in a new window.

General Reference: For general information about what ARIA can do, refer to the following external sources of information. ARIA is primarily to be used by web developers and programmers, because implementing ARIA usually requires JavaScript skills. Learning ARIA can also take a fair amount of time because of the complexities of the programming logic and also the nuances of ensuring that ARIA role-attribute combinations are valid.

The Algorithm (in simple terms)

Checks that each element with an ARIA role uses only ARIA attributes allowed for that role.