diff --git a/lib/rules/template-no-aria-unsupported-elements.js b/lib/rules/template-no-aria-unsupported-elements.js
index 2def3edb42..5f0c7e269c 100644
--- a/lib/rules/template-no-aria-unsupported-elements.js
+++ b/lib/rules/template-no-aria-unsupported-elements.js
@@ -18,7 +18,8 @@ module.exports = {
},
create(context) {
- // Elements that don't support ARIA
+ // Elements that don't support ARIA per the W3C ARIA in HTML spec.
+ // Includes metadata/structural elements that have no UI representation.
const ELEMENTS_WITHOUT_ARIA_SUPPORT = new Set([
'meta',
'html',
diff --git a/tests/lib/rules/template-no-aria-unsupported-elements.js b/tests/lib/rules/template-no-aria-unsupported-elements.js
index c3fb87648e..57aaaad674 100644
--- a/tests/lib/rules/template-no-aria-unsupported-elements.js
+++ b/tests/lib/rules/template-no-aria-unsupported-elements.js
@@ -11,6 +11,11 @@ ruleTester.run('template-no-aria-unsupported-elements', rule, {
'',
'',
'',
+ // No ARIA attributes — these are fine
+ 'Page Title',
+ '',
+ '',
+ '',
],
invalid: [
@@ -29,5 +34,30 @@ ruleTester.run('template-no-aria-unsupported-elements', rule, {
output: null,
errors: [{ messageId: 'unsupported' }],
},
+ {
+ code: '',
+ output: null,
+ errors: [{ messageId: 'unsupported' }],
+ },
+ {
+ code: '',
+ output: null,
+ errors: [{ messageId: 'unsupported' }],
+ },
+ {
+ code: '',
+ output: null,
+ errors: [{ messageId: 'unsupported' }],
+ },
+ {
+ code: '',
+ output: null,
+ errors: [{ messageId: 'unsupported' }],
+ },
+ {
+ code: '',
+ output: null,
+ errors: [{ messageId: 'unsupported' }],
+ },
],
});