BUGFIX: template-no-aria-unsupported-elements — source the reserved-element list from aria-query#2719
Merged
NullVoxPopuli merged 2 commits intoApr 21, 2026
Conversation
…ist from aria-query The rule's hand-maintained set covered 8 elements: meta, html, script, style, title, base, head, link aria-query's dom map marks 16 elements as reserved (its source is HTML-AAM §2, which lists every element that must not have ARIA): base, col, colgroup, head, html, link, meta, noembed, noscript, param, picture, script, source, style, title, track Replace the hand-list with a filtered view of aria-query's dom map. aria-query is already a dependency (used elsewhere for role/attribute validation). No new dependency, no behavioural regression — the new set is a superset of the old one. Six new invalid tests cover the previously-missing elements: col, colgroup, noscript, picture, source, track.
NullVoxPopuli
approved these changes
Apr 21, 2026
This was referenced Apr 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is part of a Phase 3 a11y-parity audit against jsx-a11y / vue-a11y / angular-eslint-template / lit-a11y.
aria-queryencodes a closely-related list indom[tag].reserved.<col>,<colgroup>,<noembed>,<noscript>,<param>,<picture>,<source>, and<track>.Fix: derive the set from
aria-query'sdommap by filteringdef.reserved.meta, html, script, style, title, base, head, link(8)col, colgroup, noembed, noscript, param, picture, source, track(16)aria-queryis already a dependency — no new packages. Six new invalid tests cover the previously-missing elements.Caveat — aria-query
.reservedvs HTML-AAMdocconformancelistThese sets are close but not identical:
map,slot,templateas "No role or aria-*" — aria-query does NOT include these in.reserved. This PR does not close those gaps.html,picturein.reserved— HTML-AAM's wording for these is softer ("No role other than document or generic..." forhtml; "authors MAY specify aria-hidden..." forpicture). aria-query's "reserved" flag is stricter than the spec text.title,track,noembedare in aria-query's.reservedset; their HTML-AAM status is less clearly documented in the main conformance table.Using aria-query's
.reservedset is a pragmatic approximation of the HTML-AAM list, not an exact mirror.Prior art
Verified each peer in source:
aria-unsupported-elementsdommap filtered by.reserved. Tests iteratedom.keys().filter(el => dom.get(el).reserved).aria-unsupported-elements(dom.get(getElementType(node)) || {}).reserved.aria-unsupported-elements['meta', 'script', 'style']at line 16; does not consult aria-query.