A11y Check

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

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-interactive

    Do not nest interactive elements; merge or separate them.

  • ARIA attributes must be allowed for the element's role aria-allowed-attr

    Remove ARIA attributes not supported by the element's role.

  • Required ARIA attributes must be provided aria-required-attr

    Add the ARIA attributes required by the role (e.g., aria-checked for checkbox).

  • Certain ARIA roles must contain particular children aria-required-children

    Provide the child roles the parent role requires (e.g., tablist → tab).

  • Certain ARIA roles must be contained by particular parents aria-required-parent

    Place the role inside its required parent role.

  • ARIA roles must be valid aria-roles

    Use only valid role values from the WAI-ARIA spec.

  • ARIA attributes must be valid names aria-valid-attr

    Fix misspelled aria-* attribute names.

  • ARIA attributes must have valid values aria-valid-attr-value

    Ensure attribute values match the spec and referenced ids exist.

  • aria-hidden must not be on the document body aria-hidden-body

    Remove aria-hidden from the body element.

  • aria-hidden elements must not contain focusable elements aria-hidden-focus

    Use inert or tabindex=-1 so hidden content can't receive focus.

  • ARIA input fields must have an accessible name aria-input-field-name

    Name custom ARIA input widgets via aria-label/labelledby.

  • ARIA toggle fields must have an accessible name aria-toggle-field-name

    Name ARIA toggle widgets (checkbox, switch, radio).

  • ARIA commands must have an accessible name aria-command-name

    Provide text or aria-label for ARIA command roles.

  • ARIA meter nodes must have an accessible name aria-meter-name

    Label what the meter measures.

  • ARIA progressbar nodes must have an accessible name aria-progressbar-name

    Label what the progressbar tracks.

  • ARIA tooltip nodes must have an accessible name aria-tooltip-name

    Tooltips need text content.

  • ARIA tab nodes must have an accessible name aria-tab-name

    Give every role="tab" element an accessible name via its text content or aria-label.

  • ARIA dialog nodes must have an accessible name aria-dialog-name

    Connect dialogs to their heading via aria-labelledby.

  • role=text must not contain focusable descendants aria-text

    Remove role=text when it contains focusable children.

  • ARIA treeitem nodes must have an accessible name aria-treeitem-name

    Name treeitem nodes.

  • ARIA attributes must be used as specified for the element's state aria-conditional-attr

    Remove ARIA that duplicates or contradicts native element state.

  • Deprecated ARIA roles must not be used aria-deprecated-role

    Replace deprecated roles with current equivalents.

  • ARIA attributes must not be prohibited for the role aria-prohibited-attr

    Add an appropriate role or remove the prohibited attribute.

  • aria-braille attributes require a non-braille equivalent aria-braille-equivalent

    Provide a standard accessible name alongside braille attributes.

  • presentation role conflicts with other attributes presentation-role-conflict

    Remove conflicting attributes or the presentation role.

  • ARIA role should be appropriate for the element aria-allowed-role

    Prefer 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