Giorno 13: Usare link veri

La piaga dei progetti web è la presenza del link “javascript:” , un falso link che rende eseguibile un pezzo di codice Javascript quando si seleziona con un click. Nei weblog normalmente è presente per visualizzare in una nuova finestra i commenti ad un’articolo.  Perchè rappresenta un problema? Perchè l’ 11% degli utenti internet non usa Javascript per una ragione o per l’altra, inclusi molti utenti disabili, il cui browser non interpreta questo comando. Questi falsi link non funzionano nei loro browser; usate invece dei veri link.

Anche se facile da descrivere e semplice da correggere, non sottolineerò mai abbastanza l’importanza di questo suggerimento. Alcuni problemi, come non poter saltare la barra di navigazione , riducono l’usabilità a vario grado, ma almeno la pagina può essere, alla fin fine, letta. Qui invece, questo problema rende completamente inaccessibile una sezione completa del sito. Se i commenti sono nascosti dietro un link “javascript: “, è come se non esistessero.

A chi serve?

  1. A Marcus. Lynx non è compatibile con Javascript.
  2. A Michael . Links non è compatibile con Javascript.
  3. A Lillian. Anche se usa Internet Explorer, il dipartimento informatico ha stabilito una regola per tutta l’azienda che disabilita l’esecuzione di codice Javascript su tutti i siti, salvo pochi casi.
  4. A Google. Google segue i link per trovare e indicizzare nuovi contenuti, ma non può seguire i link “javascript:“, perchè non esegue codice Javascript mentre indicizza il web.

Come fare

I modelli predefiniti in Movable Type e Radio sono ora opportunamente predisposti,  così non dovete fare nulla. Guardate il sorgente della vostra home page e cercate “javascript:“. Se non lo trovate, questo suggerimento non vi serve.

Tuttavia, se il modello  Movable Type contiene un link come questo:

<a href="javascript:OpenComments(<$MTEntryID$>)">Comments (<$MTEntryCommentCount$>)</a>

Allora cambiatelo così:

<ahref="<$MTCGIPath$>mt-comments.cgi?entry_id=<$MTEntryID$>" onclick="OpenComments(<$MTEntryID$>); return false">Comments (<$MTEntryCommentCount$>)</a>

Con i browser abilitati al Javascript, funziona allo stesso modo, perchè l’attributo onclick ha la precedenza rispetto all’attributo href. Così questa nuova versione continua a chiamare la funzione OpenComments,   che apre una nuova finestra.  Tuttavia, i browser non abilitati a Javascript (e Google) ignoreranno interamente l’attributo  onclick e seguiranno il link specificato in href, che visualizza la pagina nella stessa finestra.

Se state usando il falso link javascript: per qualsiasi altro motivo, fermatevi. Semplicemente fermatevi. Non passate oltre.  Applicate la tecnica descritta al vostro codice, cosicchè i browser non abilitati a Javascript avranno sempre l’opportunità di seguire un vero link.

Approfondimenti

P.S.

Non fatemi neanche parlare dei sistemi di menu dinamici con Javascript. Vi fanno sembrare alla moda, come il fumare. Usate link veri.