nested-interactive-controls-absent
Les contrôles interactifs ne doivent pas être imbriqués
Vérifie qu’un contrôle interactif (lien, bouton, contrôle de formulaire ou rôle de widget ARIA) ne contient pas un autre contrôle interactif.
Applicabilité. S’applique aux éléments de l’ensemble des contrôles interactifs (a[href] natif, button, input (non masqué), select, textarea ; ou un rôle de widget ARIA explicite : button, link, checkbox, radio, switch, tab, textbox, combobox, listbox, menuitem, menuitemcheckbox, menuitemradio, option, slider, spinbutton, searchbox, treeitem, tiré du premier jeton de l’attribut role désignant un rôle connu, sans tenir compte de la casse, donc role="foo button" et role="BUTTON" comptent et role="none button" non). Le conteneur est applicable qu’il soit lui-même focalisable ou non ; la focalisabilité sert uniquement à déterminer si un descendant imbrique un contrôle interactif. Un élément personnalisé auquel ses ElementInternals donnent l’un de ces rôles de widget (this.attachInternals().role), sans attribut role qui en nomme un autre, compte comme un élément natif doté de ce rôle.
Attendu. L’élément ne contient pas, comme descendant, un autre contrôle interactif utilisable (par exemple un <button> qui englobe un <select>, ou un lien qui contient une case à cocher). Les contrôles interactifs imbriqués ne sont ni annoncés ni utilisables de façon fiable avec les technologies d’assistance : l’activation du contrôle externe et celle du contrôle interne deviennent ambiguës, et certaines technologies d’assistance n’exposent que l’un des deux.
Ce que rapporte un constat.
nestedElements: les contrôles imbriqués dans celui-ci, un nom de balise par contrôle.
Ces champs de data.details aident à lire et à reproduire un constat. À part reasonCode et les quelques champs que la page Schéma de sortie donne comme stables, ils ne constituent pas un contrat stable : un champ peut être renommé ou supprimé dans une version mineure, ne vous appuyez donc pas dessus.
Exemples
<button>Click me</button>
Aucun contrôle interactif imbriqué.
<button><input type="checkbox"> Accept</button>
Un <button> contient un <input type="checkbox"> imbriqué, un autre contrôle focalisable.