Implementation Report

Last updated 19 August 2021

Status of checks against the ARIA in HTML rules in the following implementations:

Conformance Checker Rule Implementations

The following tables provide a breakdown of the implementation of the rules for ARIA attribute usage by HTML element by conformance checkers which actively refer to the ARIA in HTML specification. These conformance checkers have either implemented the rules of ARIA in HTML, or are in process of accepting implementation gaps, and rolling out updates.

As of 06-26-2021 all features have been verified to have at least two implementations. There are no features at risk.

Note: IBM presently does not return errors/warnings when explicit roles are specified on elements which natively expose that role implicitly.

Rules of ARIA attribute usage by HTML element
HTML element

Implicit ARIA semantics (explicitly assigning these in markup is NOT RECOMMENDED)

ARIA roles, states and properties which MAY be used Test Case Implemented in W3C Validator Implemented in ARC Toolkit Implemented in IBM Accessibility Checker
a with href role=link

Roles: button, checkbox, menuitem, menuitemcheckbox, menuitemradio, option, radio, switch, tab or treeitem

DPub Roles: doc-backlink, doc-biblioref, doc-glossref, or doc-noteref

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

It is NOT RECOMMENDED to use aria-disabled="true" on an a element with an href attribute. If a link needs to be "disabled", remove the href attribute.

test 1 - a-href
test 2 - aria-disabled
test 1 - yes
test 2 - yes - issue 1112
test 1 - yes
- issue 16
test 2 - yes
- issue 27
test 1 - yes
test 2 - not yet implemented
- issue 358
a without href No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

a-no-href yes yes
- issue 17
yes
abbr No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

abbr yes yes yes
address No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

address yes
- issue #637
yes yes
area role=link (with href) or no corresponding role (without href)

No role

Global aria-* attributes and any aria-* attributes applicable to the link role.

area yes
- note: same expectations for area with or without href
yes
- note: same expectations for area with or without href
yes
- note: same expectations for area with or without href
article role=article

Roles: application, document, feed, main, none, presentation or region.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

article yes yes yes
aside role=complementary

Roles: feed, none, note, presentation, region or search.

DPub Roles: doc-dedication, doc-example, doc-footnote, doc-pullquote, doc-tip

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

aside yes yes yes
audio No corresponding role

Role: application

Global aria-* attributes and any aria-* attributes applicable to the application role.

audio yes yes yes
autonomous custom element Role exposed from author defined ElementInternals. Otherwise no corresponding role.

If role defined by ElementInternals, no role.

Otherwise, any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

no declared elementInternals role
no test case for custom element with role declared via elementInternals
yes yes yes
b No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

b yes yes yes
base No corresponding role No role or aria-* attributes base yes yes yes
bdi No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

bdi yes yes yes
bdo No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

bdo yes yes yes
blockquote No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

blockquote yes yes yes
body No corresponding role

No role

Global aria-* attributes and any aria-* attributes applicable to the document role.

body yes yes
- issue 30
yes
br No corresponding role

Roles: presentation or none.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

br yes
- issue 1097
yes
- pull request
yes
- issue 334
button role=button

Roles: checkbox, link, menuitem, menuitemcheckbox, menuitemradio, option, radio, switch or tab.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

button yes
- issue #639
yes yes
canvas No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

canvas yes yes yes
caption No corresponding role

No role

Global aria-* attributes

caption yes
- issue #640
yes yes
cite No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

cite yes yes yes
code No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

code yes yes yes
col No corresponding role No role or aria-* attributes col yes
- issue #646
yes yes
colgroup No corresponding role No role or aria-* attributes colgroup yes
- issue #645
yes yes
data No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

data yes yes yes
datalist role=listbox

No role

Global aria-* attributes and any aria-* attributes applicable to the listbox role.

datalist yes
- issue #653
yes yes
dd role=definition

No role

Global aria-* attributes and any aria-* attributes applicable to the definition role.

dd yes
- issue #659
yes yes
del No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

del yes yes yes
dfn role=term Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

dfn yes
- issue 1093
yes yes
details role=group

No role

Global aria-* attributes and any aria-* attributes applicable to the group role.

details yes yes yes
dialog role=dialog

Role: alertdialog

Global aria-* attributes and any aria-* attributes applicable to the dialog role.

dialog yes yes yes
div No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

div yes yes yes
dl No corresponding role

Roles: group, list, presentation or none.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

dl yes
- issue 671
yes yes
dt role=term

Role: listitem

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

dt yes
- issue 672
yes
- issue 18
yes
em No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

em yes yes yes
embed No corresponding role

Roles: application, document, img, presentation or none.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

embed yes yes yes
fieldset role=group

Roles: none, presentation or radiogroup.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

fieldset yes
- issue 674
yes yes
- issue 333
figcaption No corresponding role

Roles: group, presentation or none.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

figcaption yes
- issue 673
yes yes
figure role=figure

If the figure has no figcaption descendant:
Any role

If the figure has a figcaption descendant:
No role.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

test 1 - figure no figcaption
test 2 - figure with figcaption
yes
- issue 1108
yes
- issue 21
yes
- issue 335
form If the form element has an accessible name: role=form. Otherwise, no corresponding role.

Roles: search, none or presentation.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

form yes yes yes
form-associated custom element Role exposed from author defined ElementInternals. Otherwise no corresponding role.

If role defined by ElementInternals, no role.

Otherwise, form-related roles: button, checkbox, combobox, group, listbox, progressbar, radio, radiogroup, searchbox, slider, spinbutton, switch or textbox.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

cannot be tested at this time cannot be tested at this time cannot be tested at this time cannot be tested at this time
h1 to h6 role=heading, with the aria-level = positive integer.

Roles: none, presentation or tab.

DPub Role: doc-subtitle

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

yes yes yes
head No corresponding role No role or aria-* attributes head yes yes yes
header If not a descendant of an article, aside, main, nav or section element, or an element with role=article, complementary, main, navigation or region then role=banner. Otherwise no corresponding role

Roles: group, none or presentation.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

header yes yes yes
hgroup No corresponding role

Any role.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

hgroup yes yes yes
- issue 336
hr role=separator

Roles: none or presentation.

DPub Role: doc-pagebreak

Global aria-* attributes and any aria-* attributes applicable to the separator role.

hr yes yes yes
html role=document No role or aria-* attributes html yes yes
- issue 30
yes
i No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

i yes yes yes
iframe No corresponding role

Roles: application, document, img, none or presentation.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

iframe yes yes yes
img with alt="some text" role=img

Roles: button, checkbox, link, menuitem, menuitemcheckbox, menuitemradio, option, progressbar, scrollbar, separator, slider, switch, tab or treeitem

DPub Role: doc-cover.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

img with alt="some text" yes yes not yet implemented -
allows any role except presentation or none
- issue 392
img with alt="" role=presentation No role or aria-* attributes except aria-hidden="true". img with alt="" yes
- issue 1137
yes
- issue 36
partial implementation
- does not flag role=none, presentation as invalid
- issue 391
img without alt attribute role=img

If no author-defined accessible name is provided by other methods: No role, and no aria-* attributes except aria-hidden.

Otherwise, if the img has an author defined accessible name, see img alt="some text".

img no alt yes yes
- issue 36
yes
input type=button role=button

Roles: link, menuitem, menuitemcheckbox, menuitemradio, option, radio, switch or tab.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

type=button yes yes yes
input type=checkbox

role=checkbox

Roles: menuitemcheckbox, option or switch; button if used with aria-pressed.

Authors SHOULD NOT use the aria-checked attribute on input type=checkbox elements.

Otherwise, any global aria-* attributes and any aria-* attributes applicable to the allowed roles.

Note: the HTML checked attribute may be used instead of the aria-checked attribute for menuitemcheckbox, option or switch when used on type=checkbox.

test 1: type=checkbox
test 2: see aria-checked test
yes
- issue 1109
yes
- issue 24
yes
- issue 337
input type=color No corresponding role

No role

Global aria-* attributes

type=color yes yes yes
input type=date No corresponding role

No role

Global aria-* attributes and any aria-* attributes applicable to the textbox role.

type=date yes yes yes
input type=datetime-local No corresponding role

No role

Global aria-* attributes and any aria-* attributes applicable to the textbox role.

type=datetime-local yes yes yes - issue 341
input type=email with no list attribute role=textbox

No role

Global aria-* attributes and any aria-* attributes applicable to the textbox role.

type=email yes yes yes
input type=file No corresponding role

No role

Global aria-* attributes

type=file yes yes yes
input type=hidden No corresponding role No role or aria-* attributes type=hidden yes
- issue 679
yes not implemented
- issue 338
input type=image role=button

Roles: link, menuitem, menuitemcheckbox, menuitemradio, radio or switch.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

type=image yes yes yes
input type=month No corresponding role

No role

Global aria-* attributes and any aria-* attributes applicable to the textbox role.

type=month yes yes yes
input type=number role=spinbutton

No role

Global aria-* attributes and any aria-* attributes applicable to the spinbutton role.

type=number yes yes yes
input type=password No corresponding role

No role

Global aria-* attributes and any aria-* attributes applicable to the textbox role.

type=password yes yes
- issue 22
yes
input type=radio role=radio

Role: menuitemradio

Authors SHOULD NOT use the aria-checked attribute on input type=radio elements.

Otherwise, any global aria-* attributes and any aria-* attributes applicable to the allowed roles.

Note: the HTML checked attribute may be used instead of the aria-checked attribute for menuitemradio when used on type=radio.

test 1: type=radio
test 2: see aria-checked test
yes
- issue 1109
yes
- issue 24
yes
input type=range role=slider

No role

Authors SHOULD NOT use the aria-valuemax or aria-valuemin attributes oninput type=range elements.

Otherwise, any global aria-* attributes and any other aria-* attributes applicable to the slider role.

type=range yes yes yes
input type=reset role=button

No role

Global aria-* attributes and any aria-* attributes applicable to the button role.

type=reset yes yes yes
input type=submit role=button

No role

Global aria-* attributes and any aria-* attributes applicable to the button role.

type=submit yes yes yes
input type=tel, with no list attribute role=textbox

No role

Global aria-* attributes and any aria-* attributes applicable to the textbox role.

type=tel yes yes yes
input type=text or with a missing or invalid type, with no list attribute role=textbox

Roles: combobox, searchbox or spinbutton.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

type=text yes yes yes
input type=text, search, tel, url, email, or with a missing or invalid type, with a list attribute role=combobox

No role

Authors SHOULD NOT use the aria-haspopup attribute on the indicated inputs with a list attribute.

Otherwise, any global aria-* attributes and any other aria-* attributes applicable to the combobox role.

yes - issue #1117 yes - issue #39 partial implementation (does not warn about aria-haspopup use) issue #357
input type=time No corresponding role

No role

Global aria-* attributes and any aria-* attributes applicable to the textbox role.

type=time yes yes yes
input type=url with no list attribute role=textbox

No role

Global aria-* attributes and any aria-* attributes applicable to the textbox role.

type=url yes yes yes
input type=week No corresponding role

No role

Global aria-* attributes and any aria-* attributes applicable to the textbox role.

type=week yes yes yes
ins No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

ins yes yes yes
kbd No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

kbd yes yes yes
label No corresponding role

No role

global aria-* attributes

label yes yes yes
legend No corresponding role

No role

global aria-* attributes

legend yes yes yes
li role=listitem

Roles: menuitem, menuitemcheckbox, menuitemradio, option, none, presentation, radio, separator, tab or treeitem

DPub Roles: doc-biblioentry, doc-endnote.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

li yes yes yes
main role=main

No role

Global aria-* attributes and any aria-* attributes applicable to the main role.

main yes yes yes
map No corresponding role No role or aria-* attributes map yes yes yes
math role=math

No role

Global aria-* attributes and any aria-* attributes applicable to the math role.

math yes yes yes
mark No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

mark yes yes yes
menu role=list

Roles: directory, group, listbox, menu, menubar, none, presentation, radiogroup, tablist, toolbar or tree.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

menu yes yes yes
- issue 339
meta No corresponding role No role or aria-* attributes meta yes yes yes
meter No corresponding role

No role

Authors SHOULD NOT use the `aria-valuemax` or `aria-valuemin` attributes on `meter` elements.

Otherwise, any global aria-* attributes.

meter yes yes yes
nav role=navigation

Roles: menu, menubar or tablist.

DPub Roles: doc-index, doc-pagelist, doc-toc.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

nav yes
- issue 1110
yes
- issue 25
yes
- issue 342
noscript No corresponding role No role or aria-* attributes noscript yes yes yes - issue 340 (results are browser dependent)
object No corresponding role

Roles: application, document or img.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

object yes yes yes
ol role=list

Roles: directory, group, listbox, menu, menubar, none, presentation, radiogroup, tablist, toolbar or tree

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

ol yes yes yes
optgroup role=group

No role

Global aria-* attributes and any aria-* attributes applicable to the group role.

optgroup yes yes yes
option element that is in a list of options or that represents a suggestion in a datalist role=option

No role

Authors SHOULD NOT use the aria-selected attribute on the option element.

Global aria-* attributes and any aria-* attributes applicable to the option role.

test 1: option
test 2: option aria-selected
test 1: yes
test 2: yes - issue 1111
test 1: yes
test 2: yes - issue 26
test 1: yes
- issue 343
test 2: not yet implemented
- issue 344
output role=status

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

output yes yes yes
p No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

p yes yes yes
param No corresponding role No role or aria-* attributes param yes yes yes
picture No corresponding role No role or aria-* attributes picture yes yes yes
pre No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

pre yes yes yes
progress role=progressbar

No role

Authors SHOULD NOT use the `aria-valuemax` attribute on `progress` elements.

Global aria-* attributes and any other aria-* attributes applicable to the progressbar role.

progress yes yes yes
q No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

q yes yes yes
rp No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

rp yes yes yes
rt No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

rt yes yes yes
ruby No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

ruby yes yes yes
s No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

s yes yes yes
samp No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

samp yes yes yes
script No corresponding role No role or aria-* attributes script yes yes yes
section role=region if the section element has an accessible name. Otherwise, no corresponding role.

Roles: alert, alertdialog, application, banner, complementary, contentinfo, dialog, document, feed, log, main, marquee, navigation, none, note, presentation, search, status or tabpanel

DPub Roles: doc-abstract, doc-acknowledgments, doc-afterword, doc-appendix, doc-bibliography, doc-chapter, doc-colophon, doc-conclusion, doc-credit, doc-credits, doc-dedication, doc-endnotes, doc-epigraph, doc-epilogue, doc-errata, doc-example, doc-foreword, doc-glossary, doc-index, doc-introduction, doc-notice, doc-pagelist, doc-part, doc-preface, doc-prologue, doc-pullquote, doc-qna, doc-toc

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

section yes yes yes
select (with NO multiple attribute and NO size attribute having value greater than 1) role=combobox

Role: menu

Authors SHOULD NOT use the aria-multiselectable attribute on a select element.

Otherwise, any global aria-* attributes and any other aria-* attributes applicable to the combobox or menu role.

test 1 - select w/out multiple
test 2 - aria-multiselectable
test 1 - yes
test 2 - not yet implemented
- issue 1094
test 1 - yes
test 2 - yes
test 1 - yes
test 2 - yes
select (with a multiple attribute or a size attribute having value greater than 1) role=listbox

No role

Authors SHOULD NOT use the aria-multiselectable attribute on a select element.

Otherwise, any global aria-* attributes and any other aria-* attributes applicable to the listbox role.

test 1 - select w/multiple
test 2 - aria-multiselectable
test 1 - yes
test 2 - yes
- issue 1094
test 1 - yes - issue 31
test 2 - yes
test 1 - yes
test 2 - not yet implemented - issue 345
slot No corresponding role No role or aria-* attributes A slot element is not exposed in browsers. - - -
small No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

small yes yes yes
source No corresponding role No role or aria-* attributes source yes yes yes
span No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

span yes yes yes
strong No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

strong yes yes yes
style No corresponding role No role or aria-* attributes style yes yes yes
SVG role=graphics-document as defined by SVG AAM

Any Role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

svg yes
- issue 1096
yes
- pull request
yes
- issue 346
sub No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

sub yes yes yes
summary role=button

No role

Global aria-* attributes and any aria-* attributes applicable to the button role.

summary yes yes
- issue 32
yes
sup No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

sup yes yes yes
table role=table

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

table yes yes yes
tbody role=rowgroup

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

tbody yes yes yes
template No corresponding role No role or aria-* attributes template yes yes yes
textarea role=textbox

No role

Global aria-* attributes and any aria-* attributes applicable to the textbox role.

textarea yes yes yes
tfoot role=rowgroup

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

tfoot yes yes yes
thead role=rowgroup

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

thead yes yes yes
time No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

time yes yes yes
title No corresponding role No role or aria-* attributes title yes yes yes
td

role=cell if the ancestor table element is exposed as a role=table.

role=gridcell if the ancestor table element is exposed as a role=grid or treegrid.

No corresponding role if the ancestor table element is not exposed as a role=table, grid or treegrid.

No role if the ancestor table element has role=table, grid, or treegrid; otherwise any role.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

yes - issue 1125
  • test 1 - yes
    - issue 38
  • test 2 - yes
  • test 3 - yes
  • test 4 - yes
  • test 5 - yes
th

role=columnheader, rowheader or cell if the ancestor table element is exposed as a role=table.

role=columnheader, rowheader or gridcell if the ancestor table element is exposed as a role=grid or treegrid.

No corresponding role if the ancestor table element is not exposed as a role=table, grid or treegrid.

No role if the ancestor table element has role=table, grid, or treegrid; otherwise any role.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

  • test 1 - yes
    - issue 38
  • test 2 - yes
  • test 3 - yes
  • test 4 - yes
  • test 5 - yes
tr role=row

No role if the ancestor table element has role=table, grid, or treegrid; otherwise any role.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

  • test 1 - yes
    - issue 38
  • test 2 - yes
  • test 3 - yes
  • test 4 - yes
  • test 5 - yes
track No corresponding role No role or aria-* attributes track yes yes yes
u No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

u yes yes yes
ul role=list

Roles: directory, group, listbox, menu, menubar, none, presentation, radiogroup, tablist, toolbar or tree.

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

ul yes yes yes
var No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

var yes yes yes
video No corresponding role

Role: application

Global aria-* attributes and any aria-* attributes applicable to the application role.

video yes yes yes
wbr No corresponding role

Any role

Global aria-* attributes and any aria-* attributes applicable to the allowed roles.

NOTE: these rules will be updated in the next version of ARIA in HTML
wbr yes yes yes
Rules of ARIA attribute usage by HTML feature
HTML feature

Implicit ARIA semantics

HTML feature and aria-* attribute author guidance Test Case Implemented in W3C Validator Implemented in ARC Toolkit Implemented in IBM Accessibility Checker
Any element where the checked attribute is allowed aria-checked="true"

Use the checked attribute on any element that is allowed the checked attribute in HTML.

Authors SHOULD NOT use the aria-checked attribute on any element where the checkedness of the element can be in opposition to the current value of the aria-checked attribute.

Authors MAY use the aria-checked attribute on any other element with a WAI-ARIA role which allows the attribute.

checked (2 tests) yes
- issue 1122
yes
- issue 28
not yet implemented
- issue 347
Any element where the disabled attribute is allowed, including option disabled and optgroup disabled aria-disabled="true"

Use the disabled attribute on any element that is allowed the disabled attribute in HTML.

Authors MAY use the aria-disabled attribute on any element that is allowed the disabled attribute in HTML, or any element with a WAI-ARIA role which allows the aria-disabled attribute.

Authors SHOULD NOT use aria-disabled="true" on any element which also has a disabled attribute.

Authors MUST NOT use aria-disabled="false" on any element which also has a disabled attribute.

disabled (3 tests) yes
- issue 1106
yes
- issue 20
partial implementation:
passes tests 1 & 3 (of 3)
- issue 348
Any element with a hidden attribute aria-hidden="true"

Authors MAY use the aria-hidden attribute on any HTML element that allows global aria-* attributes, with the following exceptions:

Authors SHOULD NOT use the aria-hidden="true" attribute on any element which also has a hidden attribute.

  • test 1 - yes - issue 1115
  • test 2 - yes
  • test 3 - yes with exception: math reported as not allowing aria-hidden - issue 1114
yes
- issue 29
  • test 1 - partial implementation. does not flag errors for input type=hidden, noscript, script, slot, template
  • test 2 - yes
  • test 3 - not implemented
issue 350 and issue 349
Any element where the placeholder attribute is allowed aria-placeholder="..."

Use the placeholder attribute on any element that is allowed the placeholder attribute in HTML.

Authors MAY use the aria-placeholder attribute on any element that is allowed the placeholder attribute in HTML, or any element with a WAI-ARIA role which allows the aria-placeholder attribute.

Authors MUST NOT use the aria-placeholder attribute on any element which also has a placeholder attribute.

placeholder (2 tests) yes
- issue 1098
yes
- issue 12
partial implementation
test 1 - throws errors for 4 of 8 inputs with aria-placeholder - issue 351.
test 2 - properly throws errors for all 8 inputs.
Any element where the max attribute is allowed: meter, progress, and input. aria-valuemax="..."

Use the max attribute on any element that is allowed the max attribute in HTML.

Authors MAY use the aria-valuemax attribute on any other element with a WAI-ARIA role which allows the attribute.

Authors SHOULD NOT use aria-valuemax on any element which allows the max attribute. Use the max attribute instead.

Authors MUST NOT use aria-valuemax on any element which also has a max attribute, even if the values of each attribute match.

aria-valuemax (2 tests) yes - issue 1119 yes
- issue 34
yes with 3 exceptions
- flags error for all but type=number, type=range and progress
- issue 359
Any element where the min attribute is allowed: meter, and input. aria-valuemin="..."

Use the min attribute on any element that is allowed the min attribute in HTML.

Authors MAY use the aria-valuemin attribute on any other element with a WAI-ARIA role which allows the attribute.

Authors SHOULD NOT use aria-valuemin on any element which allows the min attribute. Use the min attribute instead.

Authors MUST NOT use aria-valuemin on any element which also has a min attribute, even if the values of each attribute match.

aria-valuemin (2 tests) yes
- issue 1120
yes - issue 35 yes with 2 exceptions
- flags error for all but type=number, and type=range
- issue 360
Any input element which allows the readonly attribute, or form-associated custom element which allows the readonly attribute. aria-readonly="true"

Use the readonly attribute on any element that is allowed the readonly attribute in HTML.

Authors MAY use the aria-readonly attribute on any element with a WAI-ARIA role which allows the aria-readonly attribute.

Authors SHOULD NOT use the aria-readonly="true" on any element which also has a readonly attribute.

Authors MUST NOT use aria-readonly="false" on any element which also has a readonly attribute.

input[readonly] (2 tests)
Note: no test for faces readonly.
yes
sufficiently implemented
- marks all use of aria-readonly on tested inputs as not allowed.
yes
- issue 13
partially implemented
test 1 - flags input type=password, date, month, week, time as invalid use of aria-readonly - issue 352
test 2 - yes

Element with contenteditable="true"; or
Element without contenteditable attribute whose closest ancestor with a contenteditable attribute has contenteditable="true".

Note: this is equivalent to the isContentEditable IDL attribute.

aria-readonly="false" Authors MUST NOT set aria-readonly="true" on an element that has isContentEditable="true". aria-readonly test yes
- issue 1105
yes
- issue 19
not yet implemented
- issue 353
Any element where the required attribute is allowed: input, textarea, and select aria-required="true"

Use the required attribute on any element that is allowed the required attribute in HTML.

Authors MAY use the aria-required attribute on any element that is allowed the required attribute in HTML, or any element with a WAI-ARIA role which allows the aria-required attribute.

Authors SHOULD NOT use the aria-required="true" on any element which also has a required attribute.

Authors MUST NOT use aria-required="false" on any element which also has a required attribute.

required (3 tests) yes
- issue 1118
yes
- issue 33
test 1 - partial implementation - states 7 inputs that allow for required do not allow for aria-required
test 2 - no warning surfaced
test 3 - yes
- issue 361
Any element where the colspan attribute is allowed: td and th aria-colspan="..."

Use the colspan attribute on any element that is allowed the colspan attribute in HTML.

Authors SHOULD NOT use the aria-colspan attribute on any element which also has a colspan attribute.

Authors MUST NOT use aria-colspan on any element which also has a colspan attribute, and the values of each attribute do not match.

colspan (2 tests) yes
- issue 1107
yes
- issue 14
Not yet implemented:
- issue 354
Any element where the rowspan attribute is allowed: td and th aria-rowspan="..."

Use the rowspan attribute on any element that is allowed the rowspan attribute in HTML.

Authors SHOULD NOT use the aria-rowspan attribute on any element which also has a rowspan attribute.

Authors MUST NOT use aria-rowspan on any element which also has a rowspan attribute, and the values of each attribute do not match.

rowspan (2 tests) yes
- issue 1107
yes
- issue 15
Not yet implemented:
- issue 354
Case requirements for ARIA role, state and property attributes
Scenario Test Case Expectation Implemented in W3C Validator Implemented in ARC Toolkit Implemented in IBM Accessibility Checker
Non-lowercase role role casing test Error or warn that role value is not lowercased yes yes not implemented
Non-lowercase attribute token value attribute casing test Error or warn that attribute token value is not lowercased yes yes - issue 40 yes