KWCAG 2.2 · 8.2.1
How to evaluate the KWCAG 2.2 checkpoint “Accessible web applications (ARIA)”. Automation catches part of it; the rest needs a person.
Automated checks catch ARIA misuse; verify custom widgets announce role/state and follow APG keyboard patterns.
25 automated rules judge this checkpoint. Each comes with remediation guidance.
nested-interactiveDo not nest interactive elements; merge or separate them.
aria-allowed-attrRemove ARIA attributes not supported by the element's role.
aria-required-attrAdd the ARIA attributes required by the role (e.g., aria-checked for checkbox).
aria-required-childrenProvide the child roles the parent role requires (e.g., tablist → tab).
aria-required-parentPlace the role inside its required parent role.
aria-rolesUse only valid role values from the WAI-ARIA spec.
aria-valid-attrFix misspelled aria-* attribute names.
aria-valid-attr-valueEnsure attribute values match the spec and referenced ids exist.
aria-hidden-bodyRemove aria-hidden from the body element.
aria-hidden-focusUse inert or tabindex=-1 so hidden content can't receive focus.
aria-input-field-nameName custom ARIA input widgets via aria-label/labelledby.
aria-toggle-field-nameName ARIA toggle widgets (checkbox, switch, radio).
aria-command-nameProvide text or aria-label for ARIA command roles.
aria-meter-nameLabel what the meter measures.
aria-progressbar-nameLabel what the progressbar tracks.
aria-tooltip-nameTooltips need text content.
aria-dialog-nameConnect dialogs to their heading via aria-labelledby.
aria-textRemove role=text when it contains focusable children.
aria-treeitem-nameName treeitem nodes.
aria-conditional-attrRemove ARIA that duplicates or contradicts native element state.
aria-deprecated-roleReplace deprecated roles with current equivalents.
aria-prohibited-attrAdd an appropriate role or remove the prohibited attribute.
aria-braille-equivalentProvide a standard accessible name alongside braille attributes.
presentation-role-conflictRemove conflicting attributes or the presentation role.
aria-allowed-rolePrefer native semantic elements over conflicting roles.
Enter a URL and we will check this checkpoint along with the other 32. One page can be audited without signing in.
Run a free check