For ARIA in HTML rules implemented in W3C HTML checker
last updated 08 July 2018
HTML language feature | Implicit ARIA semantics - SHOULD NOT be used |
ARIA roles, states and properties which MAY be used | Test case | Implemented in W3C Validator |
---|---|---|---|---|
a element with a href |
role=link |
Roles: DPub Roles: global |
a-href | yes |
a element without a href |
No corresponding role |
global |
a-no-href | no issue #638 marked as wontfix |
address
| No corresponding role |
global |
address | yes issue #637 - fixed |
area with a href |
role=link |
No global |
area | yes |
article |
role=article |
Roles: |
article | yes |
aside |
role=complementary |
Roles: DPub Roles: global |
aside | yes |
audio |
No corresponding role | Role: |
audio | yes |
base
| No corresponding role | No role or aria-* attributes |
base | yes |
body |
No corresponding role | No global |
not tested | |
button
| role=button |
Roles: |
button | yes - fixed Partial issue #639 |
button type="menu"
| role=button |
Roles: |
type=menu | not tested |
canvas
| No corresponding role |
global |
canvas | yes |
caption
| No corresponding role | No |
caption | yes, fixed issue #640 |
No corresponding role | No role or aria-* attributes |
col & colgroup | yes, fixed issue #645 and yes, fixed issue #646 | |
datalist
| role=listbox |
No global |
datalist | partial issue #653 |
dd
| role=definition |
No global |
dd | no issue #659 |
details
| role=group |
No global |
details | yes |
dialog |
role=dialog |
Role: global |
dialog | yes |
div
| No corresponding role |
global |
div | yes |
dl
| No corresponding role | Role: DPub Role: global |
dl | partial issue 671 |
dt
| role=term |
Role: global |
dt | partial issue 672 |
embed
| No corresponding role | Role: global |
embed | yes |
figcaption - (new)
| No corresponding role | Roles: global |
figcaption | partial issue 673 |
fieldset
| No corresponding role | Roles: global |
fieldset | no issue 674 |
figure
| role=figure - (new) |
Roles: global |
figure | yes |
footer
| If not a descendant of an article , aside , main , nav - (changed) or section element role=contentinfo , otherwise No corresponding role |
Roles: DPub Roles: global |
footer | yes |
form |
role=form |
Role: global |
form | yes |
grouping content elements not listed elsewhere:
|
No corresponding role | Any global |
yes | |
h1 to h6 element |
role=heading , with the aria-level = positive integer |
Role: DPub Role: global |
|
yes |
head
| No corresponding role | No role or aria* attributes |
||
header
| If not a descendant of an article , aside , main , nav - (changed) or section element role=banner , otherwise No corresponding role |
Roles: DPub Role: global |
header | yes |
hr
| role=separator |
Roles: DPub Role: global |
hr | yes |
html
| No corresponding role | No role or aria* attributes |
||
iframe
| No corresponding role | Role: global |
iframe | yes (note: none, presentation are allowed) |
img with alt="" |
No corresponding role | Role: No |
||
img with alt="some text" |
role=img |
Any global |
||
input type= button |
role=button |
Role: global |
||
input type= checkbox |
|
Role: global Note: the HTML |
||
input type=color |
No corresponding role | No role
|
||
input type=date |
No corresponding role | No |
||
input type=datetime |
No corresponding role | No |
||
input type=email with
no list attribute |
role=textbox |
No global |
||
input type=file |
No corresponding role | No |
||
input type= image |
role=button |
Role: global |
||
input type=month |
No corresponding role | No |
||
input type=number |
role=spinbutton |
No global |
||
input type=password |
No corresponding role - (changed) | No global |
||
input type=radio |
role=radio |
global Note: the HTML |
||
input type=range |
role=slider |
No global |
||
input type= reset |
role=button |
No global |
||
input type=search , with no list attribute |
role=searchbox - (new) |
No global |
||
input type=submit |
role=button |
No global |
||
input type=tel , with no list attribute |
role=textbox |
No global |
||
input type=text , with
no list attribute |
role=textbox |
No global |
||
input type= text , search, tel, url, or email with a list attribute |
role=combobox |
No global |
||
input type= time |
No corresponding role | No |
||
input type=url with no list attribute |
role=textbox |
No global |
||
input type=week |
No corresponding role | No |
||
No corresponding role | Any global |
|||
keygen
| No corresponding role | No |
||
label
| No corresponding role | No |
||
legend
| No corresponding role | No |
||
li element whose parent is
an ol or ul
| role=listitem |
Role: DPub Roles: global |
||
link element with a href |
role=link |
No role or aria* attributes |
||
main |
role=main |
No global |
||
map |
No corresponding role | No role or aria* attributes |
||
math |
role=math |
No global |
||
menu type = context |
role=menu |
No global |
||
menuitem type=command
| role=menuitem |
No global |
||
menuitem type=checkbox
| role=menuitemcheckbox |
No global |
||
menuitem type=radio
| role=menuitemradio |
No global |
||
meta
| No corresponding role | No role or aria* attributes |
||
meter
| No corresponding role | No |
||
nav
| role=navigation |
DPub Roles: global |
||
noscript
| No corresponding role | No role or aria* attributes |
||
object
| No corresponding role | Role: global |
||
ol
| role=list |
Role: global |
||
optgroup
| role=group |
No global |
||
option element that is in a list of options or that represents a
suggestion in a datalist
| role=option |
No global |
||
output
| role=status |
global |
||
param
| No corresponding role | No role or aria* attributes |
||
picture
| No corresponding role | No role or aria* attributes |
||
progress
| role=progressbar |
No global |
||
script
| No corresponding role | No role or aria* attributes |
||
section
| role=region if the section element has an accessible name. Otherwise, no corresponding role. |
Roles: DPub Roles: global |
||
select (with NO multiple attribute and NO size attribute having value greater than 1 ) (changed) |
role=combobox |
Role: global |
||
select (with a multiple attribute or a size attribute having value greater than 1 ) (new) |
role=listbox |
No global |
||
source
| No corresponding role | No role or aria* attributes |
||
span
| No corresponding role |
global |
||
style
| No corresponding role | No role or aria* attributes |
||
SVG
| No corresponding role | Role: global |
||
summary
| role=button |
Role: global |
||
table
| role=table - (new) |
global |
||
template
| No corresponding role | No role or aria* attributes |
||
textarea
| role=textbox |
No global |
||
role=rowgroup |
global |
|||
title
| No corresponding role | No role or aria* attributes |
||
td
|
|
global |
||
Text level semantic elements not listed elsewhere:
|
No corresponding role | Any role
global |
||
th
| role=columnheader or rowheader |
global |
||
role=row , may be explicitly declared when child of a table element with role=grid |
global |
|||
track
| No corresponding role | No role or aria* attributes |
||
ul
| role=list |
Role: global |
||
video
| No corresponding role | Role: global |
||
Element with a disabled attribute |
aria-disabled="true" |
Use the Only use the |
||
Element with a placeholder attribute -(new) |
aria-placeholder="" |
Use the Only use the |
||
Element with a required attribute |
aria-required="true" |
Use the MAY also be used for elements that have an ARIA role which allows the |
||
Element with a readonly attribute |
aria-readonly="true" |
Use the Only use the |
||
Element that is a candidate for constraint validation but that does not satisfy its constraints | aria-invalid="true" |
The |
||
Element with contenteditable attribute |
aria-readonly="false" |
Do not set aria-readonly="true" on an element that has a contenteditable attribute set. - (new) |