dequelabs / dequelabs/axe-core
ARIA 1.2 deprecated some aria attributes from global use
- 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
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