Bonjour,
Tout d'abord, le pen : Tabs.
Donc, à partir d'une base html details/summary je crée une série d'onglets et de panneaux si l'élément parent contient la classe "tabs". Je n'ai pas encore fini l'implémentation des aria, mais c'est fonctionnel en l'état.
Avant d'aller plus loin j'ai voulu vérifier mon code avec des onglets eux-même imbriqués dans un panneau et là... j'ai un conflit avec les onglets parents :
- je n'arrive pas à cliquer sur les onglets imbriqués, sauf via la navigation au clavier,
- un clique sur un élément parent fait disparaître les panneaux des onglets enfants.
Le deuxième point montre bien que les onglets et panneaux "enfants" se comportent en réalité comme des élements "frères", d'ailleurs l'attribution des id et des aria dans le DOM le confirme. C'est sans doute un problème de spécificité d'un sélecteur sur une boucle dans le javascript, mais après plusieurs tentatives de sélections plus fines que le code actuel (avec le sélecteur CSS combinateur d'enfant ou avec l'api DOM de JavaScript) je n'ai pas réussi à régler mon problème.
Un petit regard expert serait le bienvenu...
Modifié par Olivier C (15 Apr 2022 - 12:57)
Tout d'abord, le pen : Tabs.
Donc, à partir d'une base html details/summary je crée une série d'onglets et de panneaux si l'élément parent contient la classe "tabs". Je n'ai pas encore fini l'implémentation des aria, mais c'est fonctionnel en l'état.
Avant d'aller plus loin j'ai voulu vérifier mon code avec des onglets eux-même imbriqués dans un panneau et là... j'ai un conflit avec les onglets parents :
- je n'arrive pas à cliquer sur les onglets imbriqués, sauf via la navigation au clavier,
- un clique sur un élément parent fait disparaître les panneaux des onglets enfants.
Le deuxième point montre bien que les onglets et panneaux "enfants" se comportent en réalité comme des élements "frères", d'ailleurs l'attribution des id et des aria dans le DOM le confirme. C'est sans doute un problème de spécificité d'un sélecteur sur une boucle dans le javascript, mais après plusieurs tentatives de sélections plus fines que le code actuel (avec le sélecteur CSS combinateur d'enfant ou avec l'api DOM de JavaScript) je n'ai pas réussi à régler mon problème.
Un petit regard expert serait le bienvenu...
Modifié par Olivier C (15 Apr 2022 - 12:57)