FreeToGenerate.com

81 éléments sur 139 ont déjà un rôle. Le réécrire est déconseillé.

Avez-vous vraiment besoin d'écrire ce role ?

Inutile : l'élément a déjà ce role

C'est du balisage valide, pas une erreur. La spécification qualifie de NOT RECOMMENDED le fait d'écrire le role implicite d'un élément, parce qu'il n'apporte rien et peut se désynchroniser si le balisage change ensuite.

Role implicite
button
Accepte
Seulement un ensemble précis

La spécification dit: Roles: checkbox , combobox , gridcell , link , menuitem , menuitemcheckbox , menuitemradio , option , radio , separator , slider , switch , tab , or treeitem . ( button is also allowed, but NOT RECOMMENDED .) Global aria-* attributes and any aria-* attributes applicable to the allowed roles. If the button is the first child of a select element: No role or aria-* attributes

Quels éléments vous donnent ce role

L'ont déjà, sans aucun attribut

button, input type=button, input type=image, input type=reset, input type=submit

L'acceptent si vous le demandez

a with href, area without href, img, input type=image, input type=reset, input type=submit

Ce que dit la table dans son ensemble

éléments HTML couverts
139
ont déjà un role
81
n'acceptent aucun autre role
51
ont une règle conditionnelle
10

La réponse la plus utile est généralement que vous n'avez besoin d'aucun role. 81 des 139 éléments en portent déjà un, et l'en-tête de la table elle-même précise que l'écrire dans le balisage est NOT RECOMMENDED : un élément button est déjà un bouton, un h1 est déjà un titre.

Dix éléments ont des règles qui dépendent de leur contexte, et cette page refuse de trancher à leur sujet plutôt que de deviner. td, th et tr dépendent du role de la table qui les contient ; div dépend du fait d'être enfant direct d'un dl ; figure dépend de la présence d'un figcaption.

Tous les éléments de la table

Affichage 139 / 139

ÉlémentRole impliciteAccepte
a with hreflinkbutton, checkbox, menuitem, menuitemcheckbox, menuitemradio, option, radio, switch, tab, treeitem
a without hrefgenericN'importe quel role
abbraucunN'importe quel role
addressgroupN'importe quel role
area with hreflinkAucun role hormis le sien
area without hrefgenericbutton, link
articlearticleapplication, document, feed, main, none, presentation, region
asidecomplementaryfeed, none, note, presentation, region, search
audioaucunapplication
autonomous custom elementaucunConditionnel
bgenericN'importe quel role
baseaucunAucun role hormis le sien
bdigenericN'importe quel role
bdogenericN'importe quel role
blockquoteblockquoteN'importe quel role
bodygenericAucun role hormis le sien
braucunnone, presentation
buttonbuttoncheckbox, combobox, gridcell, link, menuitem, menuitemcheckbox, menuitemradio, option, radio, separator, slider, switch, tab, treeitem
canvasaucunN'importe quel role
captioncaptionAucun role hormis le sien
citeaucunN'importe quel role
codecodeN'importe quel role
colaucunAucun role hormis le sien
colgroupaucunAucun role hormis le sien
datagenericN'importe quel role
datalistlistboxAucun role hormis le sien
ddaucunAucun role hormis le sien
deldeletionN'importe quel role
detailsgroupAucun role hormis le sien
dfntermN'importe quel role
dialogdialogalertdialog
divgenericConditionnel
dlaucungroup, list, none, presentation
dtaucunlistitem
ememphasisN'importe quel role
embedaucunapplication, document, img, image, none, presentation
fieldsetgroupnone, presentation, radiogroup
figcaptionaucungroup, none
figurefigureConditionnel
footeraucungroup, presentation, none
formformnone, presentation, search
form-associated custom elementaucunConditionnel
h1 to h6headingnone, presentation, tab
headaucunAucun role hormis le sien
headeraucungroup, none, presentation
hgroupgroupN'importe quel role
hrseparatornone, presentation
htmlgenericAucun role hormis le sien
igenericN'importe quel role
iframeaucunapplication, document, img, image, none, presentation
imgaucunbutton, checkbox, link, math, menuitem, menuitemcheckbox, menuitemradio, meter, option, progressbar, radio, scrollbar, separator, slider, switch, tab, treeitem
img with no accessible nameaucunConditionnel
input type=buttonbuttoncheckbox, combobox, gridcell, link, menuitem, menuitemcheckbox, menuitemradio, option, radio, separator, slider, switch, tab, treeitem
input type=checkboxcheckboxmenuitemcheckbox, option, switch
input type=coloraucunAucun role hormis le sien
input type=dateaucunAucun role hormis le sien
input type=datetime-localaucunAucun role hormis le sien
input type=email with no list attributetextboxAucun role hormis le sien
input type=fileaucunAucun role hormis le sien
input type=hiddenaucunAucun role hormis le sien
input type=imagebuttonbutton, checkbox, gridcell, link, menuitem, menuitemcheckbox, menuitemradio, option, radio, separator, slider, switch, tab, treeitem
input type=monthaucunAucun role hormis le sien
input type=numberspinbuttonAucun role hormis le sien
input type=passwordaucunAucun role hormis le sien
input type=radioradiomenuitemradio
input type=rangesliderAucun role hormis le sien
input type=resetbuttonbutton, checkbox, combobox, gridcell, link, menuitem, menuitemcheckbox, menuitemradio, option, radio, separator, slider, switch, tab, treeitem
input type=search , with no list attributesearchboxAucun role hormis le sien
input type=submitbuttonbutton, checkbox, combobox, gridcell, link, menuitem, menuitemcheckbox, menuitemradio, option, radio, separator, slider, switch, tab, treeitem
input type=tel , with no list attributetextboxAucun role hormis le sien
input type=text or with a missing or invalid type , with no list attributetextboxcombobox, searchbox, spinbutton
input type=text , search , tel , url , email , or with a missing or invalid type , with a list attributecomboboxAucun role hormis le sien
input type=timeaucunAucun role hormis le sien
input type=url with no list attributetextboxAucun role hormis le sien
input type=weekaucunAucun role hormis le sien
insinsertionN'importe quel role
kbdaucunN'importe quel role
labelaucunConditionnel
legendaucunAucun role hormis le sien
liaucunAucun role hormis le sien
linkaucunAucun role hormis le sien
mainmainAucun role hormis le sien
mapaucunAucun role hormis le sien
markaucunN'importe quel role
mathmathAucun role hormis le sien
menulistgroup, listbox, menu, menubar, none, presentation, radiogroup, tablist, toolbar, tree
metaaucunAucun role hormis le sien
metermeterAucun role hormis le sien
navnavigationmenu, menubar, none, presentation, tablist
noscriptaucunAucun role hormis le sien
objectaucunapplication, document, img, image
ollistgroup, listbox, menu, menubar, none, presentation, radiogroup, tablist, toolbar, tree
optgroupgroupAucun role hormis le sien
option element that is in a list of options or that represents a suggestion in a datalistoptionAucun role hormis le sien
outputstatusN'importe quel role
pparagraphN'importe quel role
paramaucunAucun role hormis le sien
pictureaucunAucun role hormis le sien
pregenericN'importe quel role
progressprogressbarAucun role hormis le sien
qgenericN'importe quel role
rpaucunN'importe quel role
rtaucunN'importe quel role
rubyaucunN'importe quel role
sdeletionN'importe quel role
sampgenericN'importe quel role
scriptaucunAucun role hormis le sien
searchsearchform, group, none, presentation, region
sectionregionalert, alertdialog, application, banner, complementary, contentinfo, dialog, document, feed, group, log, main, marquee, navigation, none, note, presentation, search, status, tabpanel
select (with NO multiple attribute and NO size attribute having value greater than 1 )comboboxmenu
select (with a multiple attribute or a size attribute having value greater than 1 )listboxAucun role hormis le sien
selectedcontentgenericConditionnel
slotaucunAucun role hormis le sien
smallgenericN'importe quel role
sourceaucunAucun role hormis le sien
spangenericN'importe quel role
strongstrongN'importe quel role
styleaucunAucun role hormis le sien
subsubscriptN'importe quel role
summaryaucunAucun role hormis le sien
supsuperscriptN'importe quel role
SVGgraphics-documentN'importe quel role
tabletableN'importe quel role
tbodyrowgroupN'importe quel role
tdaucunConditionnel
templateaucunAucun role hormis le sien
textareatextboxAucun role hormis le sien
tfootrowgroupN'importe quel role
thaucunConditionnel
theadrowgroupN'importe quel role
timetimeN'importe quel role
titleaucunAucun role hormis le sien
trrowConditionnel
trackaucunAucun role hormis le sien
ugenericN'importe quel role
ullistgroup, listbox, menu, menubar, none, presentation, radiogroup, tablist, toolbar, tree
varaucunN'importe quel role
videoaucunapplication
wbraucunnone, presentation

Tout provient de la table d'usage des attributs ARIA par élément HTML de la spécification ARIA in HTML, et chaque ligne porte la phrase d'origine. Rien n'est envoyé. Instantané pris le 2026-08-03

Aussi disponible en : English · Español · Português · العربية

Rôles ARIA : quel élément en a besoin et lequel en a déjà un

Cherchez n'importe quel élément HTML et n'importe quel rôle ARIA, et voyez si vous devez l'écrire, si vous le pouvez, ou si l'élément est déjà cette chose.

Qu'est-ce qu'un rôle ARIA ?

Un rôle ARIA indique aux technologies d'assistance ce qu'est un fragment de balisage : un bouton, un repère de navigation, un titre, une boîte de dialogue. On l'écrit role="button", et cela change la façon dont un lecteur d'écran l'annonce et ce que l'utilisateur peut en faire.

WAI-ARIA définit les rôles. Une seconde spécification, ARIA in HTML, répond à la question que les gens se posent réellement — quels rôles peuvent aller sur quel élément HTML — au moyen d'une table couvrant 139 éléments. C'est cette table qui fonde cette page, et c'est elle qu'il faut lire, car les rôles ne sont pas interchangeables d'un élément à l'autre.

Le plus utile s'y remarque à peine : 81 de ces 139 éléments portent déjà un rôle sans le moindre attribut, et l'en-tête de la table précise que les écrire dans le balisage est déconseillé. Un élément button est déjà un bouton. Un h1 est déjà un titre, avec son niveau. La plupart du temps, la bonne réponse à « quel rôle mettre ici » est aucun.

Comment l'utiliser

  1. Tapez l'élément. Le seul nom de balise ; chevrons et majuscules ne gênent pas. Là où la spécification qualifie un élément, le nom nu mène à la ligne qualifiée : taper a donne la règle de a with href.
  2. Tapez le rôle que vous alliez écrire. Vous obtenez l'une de quatre réponses : l'élément l'a déjà, c'est autorisé, ce n'est pas autorisé ici, ou la règle est conditionnelle et aucune réponse tranchée n'existe.
  3. Regardez ensuite l'index inversé en dessous. Il liste les éléments qui portent déjà ce rôle sans attribut, séparément de ceux qui se contentent de l'accepter. C'est souvent la meilleure façon de régler le problème.

Redondant n'est pas synonyme de faux

Écrire role="button" sur un élément button est du balisage valide. Ce n'est pas une erreur et rien ne casse. La spécification le déconseille parce que cela n'apporte rien et peut se désynchroniser : changez l'élément plus tard et le rôle reste là, décrivant une chose qui n'existe plus. Cette page en fait un verdict à part plutôt que de le confondre avec les vraies erreurs, car dire à quelqu'un que son balisage correct est cassé est pire que se taire.

Les cas réellement interdits, eux, sont autre chose. 51 éléments n'acceptent aucun rôle en plus du leur — main, body, html, base, caption et les autres — si bien que role="navigation" sur un main n'est tout simplement pas permis. 37 autres n'acceptent qu'un ensemble précis : un a with href prend button, checkbox, menuitem, menuitemcheckbox, menuitemradio, option, radio, switch, tab ou tree, et rien d'autre. Et 41 éléments, les pages blanches comme span et abbr, acceptent n'importe quel rôle.

Restent les rôles eux-mêmes, dont la table en nomme 75. Si vous en cherchez un, l'index inversé est le raccourci : demandez quels éléments sont déjà un bouton avant de décider d'en fabriquer un avec une div.

Dix éléments sur lesquels cette page ne se prononce pas

Dix des 139 règles sont assorties d'une condition, et l'outil refuse de trancher à leur sujet plutôt que de deviner. td, th et tr dépendent du rôle de l'élément table qui les contient. div dépend du fait d'être enfant direct d'un dl. figure dépend de la présence d'un figcaption parmi ses descendants. label dépend de son association à un élément étiquetable.

Dans chacun de ces cas, la spécification se garde d'énoncer une règle inconditionnelle : un outil qui produirait un oui ou un non assuré en inventerait une. La phrase d'origine est affichée à la place, à lire à la lumière de votre balisage réel. C'est la réponse honnête, et c'est pourquoi la page montre le texte source de chaque élément et pas seulement son propre résumé.

Deux limites de plus, à dire clairement. Il s'agit uniquement de la table des éléments : ARIA in HTML en compte deux autres, l'une sur les fonctionnalités HTML, l'autre sur les descendants admis par chaque rôle, et aucune n'est couverte ici. Et la page dit ce qui est permis, non ce qui est judicieux : un rôle permis peut rester le mauvais, et aucune table ne sait si votre composant se comporte vraiment comme un onglet.

Pourquoi est-ce gratuit ?

La table voyage avec la page pour quelques kilo-octets et chaque recherche tourne dans votre propre navigateur. Rien de ce que vous tapez n'est envoyé, rien n'est journalisé, et il n'y a aucun compte à créer.

Sans inscription, sans limite, et sans filigrane sur ce que vous copiez.