listitem-parent-valid
Listeneinträge müssen in einem Listencontainer stehen
Prüft, dass <li>-Elemente in <ul>, <ol>, <menu> oder einem Element mit role="list" enthalten sind.
Anwendbarkeit. Gilt für <li>-Elemente, die ein Elternelement haben.
Erwartung. Das Elternelement ist <ul>/<ol>/<menu> ohne überschreibende Rolle (alle drei haben die implizite Rolle list) oder ein Element mit der expliziten Rolle "list", "directory" (veraltet, aber in WAI-ARIA 1.2 ein erforderliches Elternelement von listitem), "presentation" oder "none". Ein <li> außerhalb eines echten Listencontainers (z. B. als generisches Flex/Grid-Element unter einem <div>) wird assistiven Technologien nicht als Listeneintrag bereitgestellt.
Was ein Befund meldet.
reasonCode:LIST_ROLE_OVERRIDDEN, wenn das Elternelement ein <ul>, <ol> oder <menu> ist, dessen explizite Rolle list ersetzt (<ul role="tablist">), sonstLISTITEM_INVALID_PARENT. Beide ergeben fail.parentElement: der Tag-Name des Elternelements des<li>, also des Containers, in dem es statt in einer Liste steht.parentRole: beiLIST_ROLE_OVERRIDDENdie Rolle des Elternelements.parentElementist anders als der Rest vondata.detailsein stabiler Vertrag.
Diese Felder in data.details helfen, einen Befund zu lesen und zu reproduzieren. Außer reasonCode und den wenigen Feldern, die Ausgabeschema als stabil nennt, sind sie kein stabiler Vertrag: Ein Feld kann in einer Minor-Version umbenannt werden oder wegfallen, bauen Sie also nicht darauf auf.
Beispiele
<ul><li>Apple</li></ul>
<li> steht in einem <ul>.
<div><li>Date</li></div>
<li> hat keinen Vorfahren <ul>/<ol>/role="list".