aria-prohibited-children
Los roles contenedores no deben incluir hijos con roles no permitidos
Comprueba que todo elemento incluido en el árbol de accesibilidad de un rol contenedor (list, listbox, menu, menubar, radiogroup, rowgroup, table, grid, treegrid, tablist, tree, row), ya sea por descendencia o mediante aria-owns, tenga uno de los roles permitidos para ese rol.
Ámbito de aplicación. Se aplica a elementos con un rol explícito y válido que sea uno de los roles contenedores con una entrada documentada de "required owned elements" (la misma tabla REQUIRED_OWNED_ROLES que usa aria-required-children; véase src/core/aria-helpers.js).
Resultado esperado. Todo elemento incluido en el árbol de accesibilidad del contenedor mediante descendencia o aria-owns (tras eliminar los elementos role="none"/"presentation" y cualquier envoltorio "group"/"rowgroup", ambos siempre transparentes para esta comparación según WAI-ARIA, independientemente de si "group"/"rowgroup" forma parte del propio conjunto de roles requeridos del contenedor) tiene un rol de ese mismo conjunto de roles requeridos. Ningún otro elemento es un hijo directo estructuralmente válido de un rol compuesto/contenedor, donde "permitido" son los roles requeridos del contenedor más el pequeño conjunto ALLOWED_EXTRA_OWNED_ROLES de roles que puede incluir sin que sean obligatorios (un separador entre elementos de menú, un caption en un grid). Se desciende dentro de un envoltorio sin rol para llegar a los elementos que una biblioteca de componentes entierra dentro de él, pero una vez que se encuentra uno ahí, el resto del subárbol de ese envoltorio es contenido propio del elemento y no se evalúa contra el contenedor.
Ejemplos
<ul role="menubar"><li role="menuitem">File</li><li role="menuitem">Edit</li></ul>
Ambos hijos incluidos son roles que la especificación de menubar permite.
<div role="table"><div role="row"><div role="cell">x</div></div><div role="button">Not a valid table child</div></div>
role="table" solo permite hijos row (o rowgroup); el button es un hijo incluido no permitido.