Elao / accesseo

Provide accessibility and SEO insights of your page in Symfony profiler
MIT License
29 stars 3 forks source link

Broken Link : le tableau ne s'affiche pas #81

Open al2b opened 3 years ago

al2b commented 3 years ago

Section SEO : quand on veut afficher la liste des liens cassés, le tableau ne s'affiche pas après exécution du JS alors que l'élément html est bien là (mais masqué)

maximecolin commented 3 years ago

Le problème vient je pense du fait que le js qui créé les tabs n'est pas prévu pour être appelé sur du HTML chargé en asynchrone.

En effet c'est la fonction Sfjs.createTabs() qui créé les tabs depuis une liste de contenu. Les tabs ainsi créé auront un ID au format tab-A-B avec A = index du group de tabs et B = index de la tab.

Donc si t'as deux ensemble de tabs tu devrais avoir :

<div class="sf-tab">
    <ul class="tab-navigation">
        <li data-tab-id="tab-0-0">Titre 1</li>
        <li data-tab-id="tab-0-1">Titre 2</li>
        <li data-tab-id="tab-0-2">Titre 3</li>
    </ul>
    <div class="tab" id="tab-0-0">blabla<div>
    <div class="tab" id="tab-0-1">blabla<div>
    <div class="tab" id="tab-0-2">blabla<div>
</div>

...

<div class="sf-tab">
    <ul class="tab-navigation">
        <li data-tab-id="tab-1-0">Titre 1</li>
        <li data-tab-id="tab-1-1">Titre 2</li>
        <li data-tab-id="tab-1-2">Titre 3</li>
    </ul>
    <div class="tab" id="tab-1-0">blabla<div>
    <div class="tab" id="tab-1-1">blabla<div>
    <div class="tab" id="tab-1-2">blabla<div>
</div>

or lorsque tu ajoutes les tabs des links et que tu appelles cette fonction, elle ne détecte pas qu'il y a déjà un ensemble de tab au dessus et génère des ID au format tab-0-x au lieu de tab-1-x pour le second ensemble de tabs. Les ID devant être unique, c'est les premières tabs qui sont lié à leur contenu et donc les tabs ajoutées par la suite sont inactives et les contenu cachés.