landmark-unique does not reflect latest HTML-role mappings #4460
Description
Product
axe Extension
Product Version
4.79.3
Latest Version
- I have tested the issue with the latest version of the product
Issue Description
Note: I wrote up this issue based on the browser extension, but I also checked that this issue holds with the newer axe-core 4.9.1 using @axe-core/cli.
Expectation
The following URL should have zero landmark-unique violations:
https://pydata-sphinx-theme.readthedocs.io/en/latest/examples/kitchen-sink/generic.html
Actual
Axe finds several landmark-unique violations at the above URL.
These landmark-unique violations are for several <aside>
tags on that page that are actually not represented by the latest browsers as role=complementary landmarks.
How to Reproduce
Using:
- Chromium 124
- axe DevTools v4.79.3 (axe-core 4.8.4)
Scan the following URL:
https://pydata-sphinx-theme.readthedocs.io/en/latest/examples/kitchen-sink/generic.html
Observe that the tool reports several instances of the landmark-unique violation.
Additional context
The latest browsers follow the HTML-role mapping specification and do not assign role=complementary
to unnamed <aside>
tags that are scoped to a sectioning content element (section 3.4.9).
But apparently Axe-core treats all <aside>
tags in the document as landmarks, which triggers the landmark-unique violation.
For more context:
- This was the motivating issue on my end: landmark-unique violation at /examples/kitchen-sink/generic.html pydata/pydata-sphinx-theme#1479
- Here are links to issues showing the problem fixed recently in Firefox and Safari (it was fixed even longer ago in Chrome):