Manglende anker
Silktide tester lenker som peker til en bestemt del av samme side – for eksempel
#content – og rapporterer dem der målet ikke finnes. Når du klikker på en slik
lenke, skjer det ingenting, og brukeren blir værende der de var.
<!-- Brutt: ingen ting på siden har id="content" -->
<a href="#content">Gå til innholdet</a>
<!-- Rettet: målet finnes -->
<a href="#content">Gå til innholdet</a>
...
<main id="content">...</main>
Hvorfor dette er viktig
Lenker til manglende ankere feiler stille: Det vises ingen feilmelding, siden flytter seg bare ikke. For seende brukere er dette forvirrende. For og tastaturbrukere er det verre, fordi disse lenkene på siden ofte er selve mekanismen – for eksempel «gå til innholdet» eller en innholdsfortegnelse – som gjør en lang side mulig å navigere i. Et ødelagt anker fjerner denne snarveien uten at det merkes.
Slik løser du det
- Legg til det manglende målet: Gi det aktuelle elementet en
idsom samsvarer med lenkens fragment, for eksempel<section id="pricing">for en lenke til#pricing. - Eller korriger lenken hvis målet finnes under en annen
id– fragmenter skiller mellom store og små bokstaver, så#Pricingsamsvarer ikke medid="pricing". - Hvis lenken bare finnes for å utløse ,
bør fragmentet likevel peke på det faktiske elementets
id. Lenken beholder da betydningen sin uten JavaScript. Det kan hende du må forhindre standardrulling i skriptet.
<!-- Fragmentet samsvarer med elementet skriptet viser -->
<a href="#details" onclick="toggle('details')">Vis detaljer</a>
<div id="details">...</div>
Slik tester Silktide dette
- Finn alle lenker på siden der måladressen inneholder et fragment (delen etter
#). - Behold bare lenker som peker til den gjeldende siden – enten lenker som bare
består av
#fragment, eller fullstendige URL-er til samme side. Lenker til ankere på andre sider testes ikke av denne kontrollen. - Se etter et element med en
idsom samsvarer med fragmentet, eller et eldre<a name="...">-anker med et samsvarende navn. - Marker lenken hvis ingen av delene finnes.