KWCAG 2.2 · 8.2.1
How to test Accessible web applications (ARIA)
How to evaluate the KWCAG 2.2 checkpoint “Accessible web applications (ARIA)”. Automation catches part of it; the rest needs a person.
Which standards this maps to
- Korean standard (KWCAG 2.2)
- 8.2.1 Accessible web applications (ARIA)
- Robust
- International standard (WCAG 2.2)
- 4.1.2 Name, Role, Value (A) ↗4.1.3 Status Messages (AA) ↗
How to test it
Automated checks catch ARIA misuse; verify custom widgets announce role/state and follow APG keyboard patterns.
What automation covers
26 automated rules judge this checkpoint. Each comes with remediation guidance.
Interactive controls must not be nested
nested-interactiveDo not nest interactive elements; merge or separate them.
ARIA attributes must be allowed for the element's role
aria-allowed-attrRemove ARIA attributes not supported by the element's role.
Required ARIA attributes must be provided
aria-required-attrAdd the ARIA attributes required by the role (e.g., aria-checked for checkbox).
Certain ARIA roles must contain particular children
aria-required-childrenProvide the child roles the parent role requires (e.g., tablist → tab).
Certain ARIA roles must be contained by particular parents
aria-required-parentPlace the role inside its required parent role.
ARIA roles must be valid
aria-rolesUse only valid role values from the WAI-ARIA spec.
ARIA attributes must be valid names
aria-valid-attrFix misspelled aria-* attribute names.
ARIA attributes must have valid values
aria-valid-attr-valueEnsure attribute values match the spec and referenced ids exist.
aria-hidden must not be on the document body
aria-hidden-bodyRemove aria-hidden from the body element.
aria-hidden elements must not contain focusable elements
aria-hidden-focusUse inert or tabindex=-1 so hidden content can't receive focus.
ARIA input fields must have an accessible name
aria-input-field-nameName custom ARIA input widgets via aria-label/labelledby.
ARIA toggle fields must have an accessible name
aria-toggle-field-nameName ARIA toggle widgets (checkbox, switch, radio).
ARIA commands must have an accessible name
aria-command-nameProvide text or aria-label for ARIA command roles.
ARIA meter nodes must have an accessible name
aria-meter-nameLabel what the meter measures.
ARIA progressbar nodes must have an accessible name
aria-progressbar-nameLabel what the progressbar tracks.
ARIA tooltip nodes must have an accessible name
aria-tooltip-nameTooltips need text content.
ARIA tab nodes must have an accessible name
aria-tab-nameGive every role="tab" element an accessible name via its text content or aria-label.
ARIA dialog nodes must have an accessible name
aria-dialog-nameConnect dialogs to their heading via aria-labelledby.
role=text must not contain focusable descendants
aria-textRemove role=text when it contains focusable children.
ARIA treeitem nodes must have an accessible name
aria-treeitem-nameName treeitem nodes.
ARIA attributes must be used as specified for the element's state
aria-conditional-attrRemove ARIA that duplicates or contradicts native element state.
Deprecated ARIA roles must not be used
aria-deprecated-roleReplace deprecated roles with current equivalents.
ARIA attributes must not be prohibited for the role
aria-prohibited-attrAdd an appropriate role or remove the prohibited attribute.
aria-braille attributes require a non-braille equivalent
aria-braille-equivalentProvide a standard accessible name alongside braille attributes.
presentation role conflicts with other attributes
presentation-role-conflictRemove conflicting attributes or the presentation role.
ARIA role should be appropriate for the element
aria-allowed-rolePrefer native semantic elements over conflicting roles.
See how your own site does
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