dequelabs / dequelabs/axe-core
Investigate whether multiple AT-visible labels still fail iOS/Safari/VoiceOver with aria-labelledby
- Dominant language
- JavaScript
- Stars
- 7.5k
- Forks
- 933
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 17
Description
_Follow-up from review of #5170 ([comment](https://github.com/dequelabs/axe-core/pull/5170#discussion_r3578267064))._
The `multiple-label` check (`lib/checks/label/multiple-label-evaluate.js`) returns `undefined` (incomplete) when an element has more than one AT-visible label, based on this comment:
```js
// more than 1 AT visible label will fail IOS/Safari/VO even with aria-labelledby
if (ATVisibleLabels.length > 1) {
return undefined;
}
```
It's not clear this is still true in current versions of iOS/Safari/VoiceOver. If the underlying AT behavior has been fixed, this branch is overly conservative — returning incomplete where it could give a definitive result — and the surrounding single-AT-visible-label + `aria-labelledby` logic may be simplifiable.
**Tasks**
- Verify current iOS/Safari/VoiceOver behavior with >1 AT-visible label, with and without `aria-labelledby`.
- If behavior has changed, update the check logic + comment and add/adjust tests.
- If it still holds, record the evidence (versions tested) in the comment so it isn't re-questioned.
Contributor guide
Research direction
Start with `lib/checks/label/multiple-label-evaluate.js` and the behavior described in the issue; verify current iOS/Safari/VoiceOver behavior for more than one AT-visible label, both with and without `aria-labelledby`. If behavior has changed, update the check and comment and add or adjust tests; otherwise, record the tested versions and evidence in the comment.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, javascript
- Domain
- accessibility
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100