Manglende anker
Silktide tester links, der peger på en bestemt del af den samme side – såsom
#content – og rapporterer dem, hvis mål ikke findes. Når man klikker på et
sådant link, sker der stille og roligt ingenting, og brugeren bliver stående,
hvor vedkommende var.
<!-- Defekt: intet på siden har id="content" -->
<a href="#content">Spring til indhold</a>
<!-- Rettet: målet findes -->
<a href="#content">Spring til indhold</a>
...
<main id="content">...</main>
Hvorfor det er vigtigt
Links til manglende ankere fejler uden varsel: Der er ingen fejlside, siden flytter sig bare ikke. For seende brugere er dette forvirrende; for brugere af og tastaturbrugere er det værre, fordi disse links på siden ofte er selve de mekanismer – såsom "spring til indhold" eller en indholdsfortegnelse – der gør det muligt at navigere på en lang side. Et defekt anker fjerner stille og roligt den genvej.
Sådan retter du det
- Tilføj det manglende mål: Giv det tilsigtede element et
id, der matcher linkets fragment, for eksempel<section id="pricing">for et link til#pricing. - Eller ret linket, hvis målet findes under et andet
id– fragmenter skelner mellem store og små bogstaver, så#Pricingmatcher ikkeid="pricing". - Hvis linket kun findes for at udløse , skal
dets fragment stadig pege på det rigtige elements
id. Linket bevarer så sin betydning uden JavaScript; du kan være nødt til at forhindre standardrulningen i dit script.
<!-- Fragmentet matcher det element, som scriptet viser -->
<a href="#details" onclick="toggle('details')">Vis detaljer</a>
<div id="details">...</div>
Sådan tester Silktide dette
- Find alle links på siden, hvis destination indeholder et fragment (delen
efter
#). - Behold kun links, der peger på den aktuelle side – enten rene
#fragment-links eller fulde URL'er til den samme side. Links til ankere på andre sider testes ikke af dette tjek. - Se efter et element, hvis
idmatcher fragmentet, eller et ældre<a name="...">-anker med et matchende navn. - Markér linket, hvis ingen af delene findes.