Plassholderlenker
Silktide finner lenker som peker til #, en nettadresse som betyr «øverst på
siden». Dette er vanligvis plassholdere – lenker som ble lagt til før målet
fantes, og som aldri ble oppdatert – eller lenker som er kapret for å utløse
skript.
<!-- Plassholder som ble glemt: fører ingen nyttig steder -->
<a href="#">Les mer</a>
<!-- Lenke som misbrukes til å kjøre et skript -->
<a href="#" onclick="openMenu()">Meny</a>
Hvorfor dette er viktig
En besøkende som klikker på en #-lenke, forventer å komme et sted. I stedet
ruller siden bare til toppen, noe som oppleves som en feil. Når mønsteret brukes
til å utløse , villeder det også
hjelpemiddelteknologi: En annonserer den som
en lenke og lover navigasjon, mens den egentlig oppfører seg som en knapp – og
hvis skript ikke lastes inn, gjør den ingenting.
Disse lenkene er ofte rester: en mal som ble levert med plassholdernavigasjon, eller en «kommer snart»-lenke som ingen fulgte opp.
Slik løser du det
- Hvis lenken skulle føre et sted, angir du det faktiske målet i
href. - Hvis den utløser et skript, erstatter du den med en
<button>, som er det forventer for handlinger:
<!-- Før: en lenke som utgir seg for å være en knapp -->
<a href="#" onclick="openMenu()">Meny</a>
<!-- Etter: en ekte knapp, utformet slik du ønsker -->
<button onclick="openMenu()">Meny</button>
- Hvis lenken ikke har noen funksjon, fjerner du den eller erstatter den med vanlig tekst.
- Hvis en
#-lenke faktisk er tilsiktet – for eksempel satt inn av et rammeverk som forbedrer den på en pålitelig måte – du funnet, slik at det ikke rapporteres på nytt.
Slik tester Silktide dette
- Finn alle konvensjonelle lenker på hver side.
- Rapporter hver lenke der
hrefer nøyaktig lik#.
Lenker til navngitte posisjoner på siden, for eksempel #news, er legitime og
rapporteres ikke.
Feilsøking
Lenken fungerer fordi JavaScript håndterer den
Den fungerer for musebrukere så lenge skriptene lastes inn riktig, men den
annonseres fortsatt som en lenke til hjelpemiddelteknologi, og siden ruller
fortsatt til toppen når skriptet mislykkes. En <button> oppfører seg riktig i
alle disse tilfellene. Hvis det er upraktisk å endre markeringen, godkjenner du
funnet.
# kommer fra en komponent i et rammeverk eller CMS
Meny- og fane komponenter i enkelte rammeverk og
-temaer genererer href="#" som standard. Se i
dokumentasjonen til komponenten etter en måte å gjengi en knapp eller et faktisk
mål på i stedet.