diff --git a/lib/standards/aria-roles.js b/lib/standards/aria-roles.js index bbf031dff3..fcc9d7504c 100644 --- a/lib/standards/aria-roles.js +++ b/lib/standards/aria-roles.js @@ -79,13 +79,10 @@ const ariaRoles = { }, checkbox: { type: 'widget', - // Note: since the checkbox role has an implicit - // aria-checked value it is not required to be added by - // the user - // // Note: aria-required is not in the 1.1 spec but is // consistently supported in ATs and was added in 1.2 - allowedAttrs: ['aria-checked', 'aria-readonly', 'aria-required'], + requiredAttrs: ['aria-checked'], + allowedAttrs: ['aria-readonly', 'aria-required'], superclassRole: ['input'], accessibleNameRequired: true, nameFromContent: true, @@ -370,12 +367,8 @@ const ariaRoles = { menuitemcheckbox: { type: 'widget', requiredContext: ['menu', 'menubar', 'group'], - allowedAttrs: [ - 'aria-checked', - 'aria-posinset', - 'aria-readonly', - 'aria-setsize' - ], + requiredAttrs: ['aria-checked'], + allowedAttrs: ['aria-posinset', 'aria-readonly', 'aria-setsize'], superclassRole: ['checkbox', 'menuitem'], accessibleNameRequired: true, nameFromContent: true, @@ -384,12 +377,8 @@ const ariaRoles = { menuitemradio: { type: 'widget', requiredContext: ['menu', 'menubar', 'group'], - allowedAttrs: [ - 'aria-checked', - 'aria-posinset', - 'aria-readonly', - 'aria-setsize' - ], + requiredAttrs: ['aria-checked'], + allowedAttrs: ['aria-posinset', 'aria-readonly', 'aria-setsize'], superclassRole: ['menuitemcheckbox', 'radio'], accessibleNameRequired: true, nameFromContent: true, @@ -465,18 +454,10 @@ const ariaRoles = { }, radio: { type: 'widget', - // Note: since the radio role has an implicit - // aria-check value it is not required to be added by - // the user - // // Note: aria-required is not in the 1.1 or 1.2 specs but is // consistently supported in ATs on the individual radio element - allowedAttrs: [ - 'aria-checked', - 'aria-posinset', - 'aria-setsize', - 'aria-required' - ], + requiredAttrs: ['aria-checked'], + allowedAttrs: ['aria-posinset', 'aria-setsize', 'aria-required'], superclassRole: ['input'], accessibleNameRequired: true, nameFromContent: true, diff --git a/test/integration/rules/aria-required-attr/required-attr.html b/test/integration/rules/aria-required-attr/required-attr.html index 36f15f64a7..79ac4b5f17 100644 --- a/test/integration/rules/aria-required-attr/required-attr.html +++ b/test/integration/rules/aria-required-attr/required-attr.html @@ -44,8 +44,8 @@ > ok -I am BLUE! -I am RED! +I am RED! +I am GREEN! I am GREEN! @@ -57,4 +57,5 @@
fail
fail
fail
- +I am BLUE! + diff --git a/test/integration/rules/aria-required-attr/required-attr.json b/test/integration/rules/aria-required-attr/required-attr.json index 071a9976b7..8701edf2b6 100644 --- a/test/integration/rules/aria-required-attr/required-attr.json +++ b/test/integration/rules/aria-required-attr/required-attr.json @@ -7,6 +7,7 @@ ["#violation3"], ["#violation4"], ["#violation5"], + ["#violation6"], ["#comboboxWithOwns"] ], "passes": [