Saknat ankare
Silktide testar länkar som pekar på en specifik del av samma sida – till exempel
#content – och rapporterar de länkar vars mål inte finns. När man klickar på en
sådan länk händer ingenting, och användaren blir kvar där den var.
<!-- Trasigt: inget på sidan har id="content" -->
<a href="#content">Hoppa till innehållet</a>
<!-- Åtgärdat: målet finns -->
<a href="#content">Hoppa till innehållet</a>
...
<main id="content">...</main>
Varför det här är viktigt
Länkar till saknade ankare misslyckas tyst: det visas ingen felsida, utan sidan flyttas helt enkelt inte. För seende användare är detta förvirrande; för och tangentbordsanvändare är det ännu värre, eftertersom länkar inom sidan ofta är just de mekanismer – som ”hoppa till innehållet” eller en innehållsförteckning – som gör en lång sida navigerbar. Ett trasigt ankare tar tyst bort den genvägen.
Så här åtgärdar du det
- Lägg till det saknade målet: ge det avsedda elementet ett
idsom matchar länkens fragment, till exempel<section id="pricing">för en länk till#pricing. - Eller korrigera länken om målet finns under ett annat
id– fragment är skiftlägeskänsliga, så#Pricingmatchar inteid="pricing". - Om länken bara finns för att utlösa , ska
fragmentet fortfarande peka på det verkliga elementets
id. Länken behåller då sin betydelse utan JavaScript; du kan behöva förhindra den automatiska rullningen i skriptet.
<!-- Fragmentet matchar elementet som skriptet visar -->
<a href="#details" onclick="toggle('details')">Visa detaljer</a>
<div id="details">...</div>
Så här testar Silktide detta
- Hitta alla länkar på sidan vars destination innehåller ett fragment (delen
efter
#). - Behåll endast länkar som pekar på den aktuella sidan – antingen länkar som
enbart består av
#fragmenteller fullständiga URL:er till samma sida. Länkar till ankare på andra sidor testas inte av denna kontroll. - Leta efter ett element vars
idmatchar fragmentet, eller ett äldre<a name="...">-ankare med ett matchande namn. - Flagga länken om inget av dessa finns.