ARIA in HTML5 Integration: Document Conformance (Draft)

This is a draft written by Henri Sivonen. This is not a spec and has not been endorsed by anyone. For context, please refer to this companion email.

Banned Roles

Special—No Role Allowed

Strong Native Role—No Override

Should input with a strong native semantic be able to become role=combobox? aria-level seems questionable on regions.

Element Implicit role Permitted States and Properties
address contentinfo aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
article region aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
aside note aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
audio

caption ~description aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
command type=radio menuitemradio aria-controls
command type=checkbox menuitemcheckbox aria-controls
datagrid treegrid
del

details region aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
dialog region aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
fieldset group aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-live, aria-relevant, aria-activedescendant
figure ~img aria-atomic, aria-busy, aria-channel, aria-controls, aria-live, aria-relevant
footer contentinfo aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
h1—h6 heading aria-atomic, aria-busy, aria-channel, aria-live, aria-relevant
header ~banner aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
hr separator aria-atomic, aria-busy, aria-channel, aria-live, aria-relevant
input type=add button aria-controls
input type=checkbox checkbox aria-controls
input type=date spinbox+datatype aria-controls, aria-invalid, aria-required
input type=datetime spinbox+datatype aria-controls, aria-invalid, aria-required
input type=datetime-local spinbox+datatype aria-controls, aria-invalid, aria-required
input type=email textbox+datatype aria-controls, aria-invalid, aria-required
input type=file input aria-controls, aria-invalid, aria-required
input type=image button aria-controls
input type=month spinbox+datatype aria-controls, aria-invalid, aria-required
input type=move-down button aria-controls
input type=move-up button aria-controls
input type=number spinbox aria-controls, aria-invalid, aria-required
input type=password textbox+secret aria-controls, aria-invalid, aria-required
input type=radio radio aria-controls, aria-invalid, aria-required
input type=range slider aria-controls, aria-invalid, aria-required
input type=remove button aria-controls
input type=reset button aria-controls
input type=submit button aria-controls
input type=time spinbox+datatype aria-controls, aria-invalid, aria-required
input type=url textbox+datatype aria-controls, aria-invalid, aria-required
input type=week spinbox+datatype aria-controls, aria-invalid, aria-required
ins

label ~description aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
legend ~description aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
li (in menu) menuitem not sure
mark

menu menu not sure
meter

nav navigation aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
option option aria-controls, aria-invalid, aria-required
output region aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
progress progressbar
section region aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
select select aria-invalid, aria-required, aria-atomic, aria-busy, aria-channel, aria-controls, aria-live, aria-relevant
textarea textbox aria-invalid, aria-required
th scope=row rowheader aria-sort, aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant, aria-disabled, aria-expanded, aria-live, aria-readonly, aria-relevant, aria-selected
th scope=col columnheader aria-sort, aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant, aria-disabled, aria-expanded, aria-live, aria-readonly, aria-relevant, aria-selected
time

video

Weak Native Role—Override Allowed

Element Implicit role Permitted States and Properties
html document aria-atomic, aria-busy, aria-channel, aria-live, aria-relevant
a link aria-controls, aria-disabled
iframe region aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
button button aria-controls
input type=button button aria-controls
input type=text textbox aria-invalid, aria-required
ol list aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
ul list aria-atomic, aria-busy, aria-channel, aria-controls, aria-expanded, aria-level, aria-live, aria-relevant
li (in ol or ul) listitem aria-posinset, aria-setsize, aria-atomic, aria-busy, aria-channel, aria-live, aria-relevant

No Native Role—Any Role Allowed