Ancre manquante
Silktide teste les liens qui pointent vers une partie précise de la même page - comme
#content - et signale ceux dont la cible n’existe pas. Cliquer sur un tel
lien ne produit aucun effet; la personne reste là où elle était.
<!-- Brisé : rien sur la page n'a id=\"content\" -->
<a href=\"#content\">Passer au contenu</a>
<!-- Corrigé : la cible existe -->
<a href=\"#content\">Passer au contenu</a>
...
<main id=\"content\">...</main>
Pourquoi c’est important
Les liens vers des ancres manquantes échouent silencieusement : il n’y a pas de page d’erreur, la page ne se déplace tout simplement pas. Pour les personnes voyantes, c’est déroutant; pour les utilisateurs de et les personnes qui utilisent le clavier, c’est pire, car ces liens internes sont souvent précisément les mécanismes - comme « Passer au contenu » ou une table des matières - qui rendent une longue page navigable. Une ancre brisée supprime discrètement ce raccourci.
Comment corriger
- Ajoutez la cible manquante : donnez à l’élément visé un
idcorrespondant au fragment du lien, par exemple<section id=\"pricing\">pour un lien vers#pricing. - Ou corrigez le lien si la cible existe sous un autre
id- les fragments respectent la casse, donc#Pricingne correspond pas àid=\"pricing\". - Si le lien n’existe que pour déclencher du ,
faites quand même pointer son fragment vers l’
idde l’élément réel. Le lien conserve ainsi son sens sans JavaScript; vous devrez peut-être empêcher le défilement par défaut dans votre script.
<!-- Le fragment correspond à l’élément que le script révèle -->
<a href=\"#details\" onclick=\"toggle('details')\">Afficher les détails</a>
<div id=\"details\">...</div>
Comment Silktide teste ceci
- Repérer tous les liens de la page dont la destination comprend un fragment (la partie
après
#). - Ne conserver que les liens qui pointent vers la page actuelle - soit des liens purement
#fragmentsoit des URL complètes vers la même page. Les liens vers des ancres sur d’autres pages ne sont pas testés par cette vérification. - Rechercher un élément dont l’
idcorrespond au fragment, ou une ancre héritée<a name=\"...\">avec un nom correspondant. - Signaler le lien si aucun des deux n’existe.