Billets publiés en mai 2008 ↓

Fil d’Ariane et sémantique

On trouve de plus en plus souvent maintenant, sur les sites que nous produisons chaque jour, le fameux fil d’Ariane. C’est une bonne chose, c’est un outil pratique à la navigation.

Comment le coder ?

Plusieurs solutions s’offrent à nous. J’en ai retenu quatre.

Liste non-ordonnée

    <ul>
        <li><a href="#lien_vers_sommaire">Sommaire</a></li>
        <li><a href="#lien_vers_rubrique">Rubrique</a></li>
        <li>Page</li>
    </ul>

Liste ordonnée

    <ol>
        <li><a href="#lien_vers_sommaire">Sommaire</a></li>
        <li><a href="#lien_vers_rubrique">Rubrique</a></li>
        <li>Page</li>
    </ol>
  1. Sommaire
  2. Rubrique
  3. Page

Imbrication de listes non-ordonnées

    <ul>
        <li>
            <a href="#lien_vers_sommaire">Sommaire</a>
            <ul>
                <li>
                    <a href="#lien_vers_rubrique">Rubrique</a>
                    <ul>
                        <li>Page</li>
                    </ul>
                </li>
            </ul>
        </li>
    </ul>

Paragraphe

    <p>
        <a href="#lien_vers_sommaire">Sommaire</a>&nbsp;&ndash;
        <a href="#lien_vers_rubrique">Rubrique</a>&nbsp;&ndash;
        Page
    </p>

SommaireRubrique – Page

Quelle version choisir ?

J’ai pendant longtemps utilisé la première version sans trop y réfléchir. C’est STPo qui m’a alerté sur ce point, prétextant qu’il n’y avait pas cette notion supplémentaire à celle introduite par la liste : la descendance.

En effet, « Rubrique » est bel et bien un enfant de « Sommaire », et cela n’est pas rendu par la liste non-ordonnée.

Il m’a d’ailleurs soufflé la dernière solution… mais là encore, aucune notion de descendance en vue. Peut-être faudrait-il remplacer le signe séparateur () par un signe porteur de sens (|, ¦, , :, @, …) ? Mais est-ce vraiment intuitif ?

Le point ci-dessus pourra d’ailleurs faire l’objet d’un prochain article si besoin.

Voir le billet qui traite de ce sujet : Fil d’Ariane et sémantique (à nouveau)

La troisième solution semble correcte d’un point de vue sémantique du code, mais elle est relativement lourde à mettre en place cependant.

La seconde solution semble l’alternative, mais je suis encore en pleine réflexion et j’hésite toujours. Il existe peut-être d’autres voies ?

Vos avis ?

Je sais que le blog est tout neuf, que personne ne passe encore par ici… Mais néanmoins, j’aimerais ouvrir la discussion et trouver quelques échos à mes questions. Alors n’hésitez pas à contribuer si vous passez par ici et que le sujet vous intéresse.