dequelabs / dequelabs/axe-core

ARIA 1.2 deprecated some aria attributes from global use

Open
#5,281 0 comments 0 reactions 0 assignees View on GitHub
standards
Dominant language
JavaScript
Stars
7.5k
Forks
933
Avg merge
2d 23h
Merged PRs (30d)
17

Description

[ARIA 1.2](https://www.w3.org/TR/wai-aria-1.2/#global_states) deprecated `aria-disabled`, `aria-errormessage`, `aria-haspopup`, and `aria-invalid` from being used as global aria attributes. In addition, in the HTML in ARIA spec some elements are allowed to use all global aria-* attributes, and some of the attributes that were global. For example [`input[type=color]`](https://www.w3.org/TR/html-aria/#el-input-color) is allowed "Global aria-* attributes and aria-disabled attribute."

The problem is that our code for the check `aria-allowed-attr-elm` treats the `allowedAriaAttrs` property as a filter to the global aria-* attributes. So when we say `allowedAriaAttrs: ['aria-hidden']` we mean that no global aria-* attributes are allowed _except_ `aria-hidden`. Our code currently doesn't support saying "allowed all global aria-* attributes and some non-global aria-* in addition to that." We'll need to figure out how to update the logic / property to handle that.

Contributor guide

Open the contributing guide

Research direction

Start with the aria-allowed-attr-elm check and its allowedAriaAttrs property, then compare their current behavior with the ARIA 1.2 global states and HTML-in-ARIA examples linked in the issue. Define how global attributes and additional non-global attributes should be represented, including deprecated global usage. Done means the logic can express both allowed global attributes and permitted additions for elements such as input[type=color].

Written by the indexing model from the issue text.

Assessment

Tech stack
html, javascript
Domain
accessibility
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.