Ancora mancante
Silktide verifica i link che puntano a una parte specifica della stessa pagina, ad esempio
#content, e segnala quelli il cui obiettivo non esiste. Facendo clic su un link di questo
tipo non succede nulla e l'utente rimane dov'era.
<!-- Non funzionante: nella pagina non c'è nulla con id="content" -->
<a href="#content">Vai al contenuto</a>
<!-- Corretto: l'obiettivo esiste -->
<a href="#content">Vai al contenuto</a>
...
<main id="content">...</main>
Perché è importante
I link alle ancore mancanti falliscono senza segnalazioni: non viene visualizzata alcuna pagina di errore, semplicemente la pagina non cambia. Per gli utenti vedenti questo è confuso; per gli utenti di e per chi usa la tastiera è peggio, perché questi link interni alla pagina sono spesso proprio i meccanismi — come "vai al contenuto" o un indice — che rendono navigabile una pagina lunga. Un'ancora non funzionante elimina silenziosamente questa scorciatoia.
Come risolvere il problema
- Aggiungi l'obiettivo mancante: assegna all'elemento desiderato un
idche corrisponda al frammento del link, ad esempio<section id="pricing">per un link a#pricing. - Oppure correggi il link se l'obiettivo esiste con un
iddiverso: i frammenti distinguono tra maiuscole e minuscole, quindi#Pricingnon corrisponde aid="pricing". - Se il link esiste solo per attivare ,
continua a fare puntare il suo frammento all'
iddell'elemento reale. In questo modo il link mantiene il suo significato anche senza JavaScript; potrebbe essere necessario impedire lo scorrimento predefinito nello script.
<!-- Il frammento corrisponde all'elemento mostrato dallo script -->
<a href="#details" onclick="toggle('details')">Mostra dettagli</a>
<div id="details">...</div>
Come Silktide esegue i controlli
- Trova ogni link nella pagina la cui destinazione include un frammento (la parte dopo
#). - Mantiene solo i link che puntano alla pagina corrente: link costituiti esclusivamente
da
#fragmentoppure URL completi alla stessa pagina. I link alle ancore di altre pagine non vengono verificati da questo controllo. - Cerca un elemento il cui
idcorrisponda al frammento oppure un'ancora legacy<a name="...">con un nome corrispondente. - Segnala il link se nessuno dei due esiste.