Gli sviluppatori che si occupano di progettare siti web, in particolare usabili e/o accessibili, si saranno magari posti il dubbio, soprattutto per l'eventualità di essere interdetti dagli indici di Google e di altri motori di ricerca attenti a "ripulire" la rete da pagine non aderenti alle regole della corretta ottimizzazione.
Il problema è quello del testo nascosto eventualmente presente all'interno di una pagina, una questione che potrebbe, se spinta al limite, suscitare questa paradossale domanda: un sito usabile o accessibile può essere tecnicamente non conforme al regolamento di Google?
Tutto nasce quando parti di codice vengono nascoste per permetterne la lettura a motori di ricerca, browser testuali, screen reader o dispositivi mobili, ma non ai browser comuni. Le finalità possono essere diverse:
- Per predisporre dei menu alternativi ad animazioni Flash
In questo caso si tratta di un'esigenza puramente grafica/estetica: se per un menu si opta per l'uso di Flash, al fine di ottenere un layout più accattivante, può essere utile permettere ai link di essere rilevati inserendo codice HTML alternativo, atto a sostituire i collegamenti presenti nell'swf.
- Per inserire degli strumenti dedicati all'accessibilità
Nel rendere un sito accessibile ad utenti diversamente abili, ad esempio non vedenti, o impossibilitati, anche solo temporaneamente, ad utilizzare il mouse (limitati quindi all'uso della tastiera), è pratica diffusa usare testi nascosti:
- per una mappatura alternativa delle pagine (una sorta di menu "veloce" all'inizio del codice al fine di orientare l'utente)
- per lo skip verso i contenuti del sito (saltando quindi la lettura dei menu e della testata e consentendo un accesso diretto al corpo della stessa pagina)
- per impostare delle access keys (combinazioni di tasti in grado di sostituire il classico click) che permettano la navigazione senza mouse tra le sezioni.
- Per avvalersi di servizi di statistiche di accesso
Molti servizi di statistiche per il rilevamento degli accessi offrono la possibilità di installare contatori, rilasciando codici che, inseriti nelle pagine, permettano di renderli invisibili.
- Per creare menu a tendina con CSS
Avvalendosi di pulsanti invisibili fino al passaggio del cursore, questi menu sono spesso utilissimi per contemplare più sottosezioni quando la struttura e la varietà di contenuti del progetto lo renda necessario.
Con l'avvento dei layout CSS-based questi tipi di menu vengono molto apprezzati per la versatilità (tutto il "lavoro" sull'aspetto e l'interattività è gestibile esternamente dai fogli di stile), e per la leggerezza in termini di byte rispetto alle alternative basate su altri linguaggi (Javascript, Java, ecc.).
Le tecniche per "nascondere" sono diverse, e sempre più spesso si avvalgono di proprietà dei fogli di stile, in grado di annullare la visibilità di una parte dei contenuti oppure di posizionare tale porzione al di fuori dei margini della pagina, ad esempio con questo codice, tra i più utilizzati:
.nomestile{
position: absolute;
top: -9999px; left:-9999px;
}
Altre due tecniche molto usate sono le seguenti:
.nomestile{
display:none;
}
e
.nomestile{
visibility:hidden;
}
Molto più rapide e semplici, sfruttano le proprietà display
e visibility
dei CSS, capaci di nascondere gli elementi associati alla classe, con la differenza che con visibility
tali elementi non verranno mostrati, ma occuperanno lo spazio nella pagina proprio come se fossero visibili, mentre con display
non occuperanno nessuno spazio.
In aggiunta alle tecniche precedentemente descritte, è possibile citare anche il tag <noscript>
, spesso utilizzato da contatori visite e altri oggetti dinamici, oltre che per fornire testo alternativo, ad esempio in caso di lettura da parte di browser non abilitati a Javascript:
<noscript>
Attenzione!
Per visualizzare correttamente il contenuto di questa pagina occorre avere JavaScript abilitato.
</noscript>
L'interpretazione dei motori di ricerca
Analizzate alcune tra le principali tecniche usate comunemente al fine di integrare e migliorare layout e funzionalità dei siti web tramite testi nascosti, vediamo come la questione può essere affrontata in relazione alla corretta ottimizzazione (e indicizzazione) per i motori di ricerca.
La maggioranza dei crawler (software in grado di analizzare i siti web e indicizzarli per conto dei motori di ricerca) leggono i contenuti delle pagine grossomodo come browser testuali, non interpretando le regole dettate da CSS e script, e quindi rilevando (e indicizzando) quei contenuti che vengono con tali tecniche resi invisibili.
Ora, dalla pagina delle istruzioni per i web master del più noto e utilizzato tra i motori di ricerca, Google, si legge, nelle direttive, la prima delle "norme di base":
"Evita testo o link nascosti."
Ed alla fine del paragrafo viene riportato:
"Se un sito non rispetta le nostre norme sulla qualità, potrebbe venire bloccato dall'indice"
Leggendo queste direttive la reazione istintiva potrebbe essere quella di pensare che, se i testi nascosti sono tacciati come "irregolari" dal regolamento ufficiale di Google, allora ne sia assolutamente interdetto l'utilizzo, onde evitare penalizzazioni o addirittura esclusioni dagli indici dei motori di ricerca.
L'interpretazione letterale apparirebbe quindi in netta contraddizione con molte delle tecniche precedentemente descritte e comunemente riconosciute per l'usabilità e l'accessibilità delle pagine web, e, per assurdo, con i tag utilizzati dalle pagine stesse del sito internet del World Wide Web Consortium (www.w3c.org), nel codice sorgente del quale è possibile trovare, tra le prime righe, un tag molto esplicito:
<span class="invisible">
.
Inserito in questo caso per nascondere dei pulsanti di skip a determinate pagine e contenuti del sito, l'attributo "invisibile" è legato ad un display:none
.
Nel foglio di stile in questione si trovano altre classi create appositamente per nascondere ulteriori porzioni di codice, e tecniche uguali o simili a questa sono riscontrabili nei sorgenti di molti altri siti di riferimento per l'usabilità e l'accessibilità del web, e in particolar modo nei siti che utilizzano layout CSS-based.
Tecnicamente questi siti sono suscettibili di esclusione dagli indici di Google?
La risposta credo stia nel buonsenso, e nell'obiettivo che sta dietro l'uso di tecniche del genere. È noto che, soprattutto in passato, la ripetizione sistematica di parole chiave all'interno del codice (tecnicamente definita keyword stuffing), fosse pratica ricorrente e, tra l'altro efficace, al fine di migliorare il posizionamento nei risultati dei motori di ricerca.
È evidente che nascondere testo nel corpo delle pagine per questo tipo di obiettivo sia pratica assolutamente deprecabile, e quindi giustamente assoggettabile a penalizzazioni o ban (esclusione dagli indici) da parte dei motori di ricerca.
L'uso orientato invece a migliorare l'accessibilità, o anche solo la navigabilità e l'estetica, è di gran lunga diverso, riconoscibile, oltre che da operatori "umani", anche da sistemi di controllo automatici, e quindi lontano dall'essere considerabile come tecnica di spam.
In questo senso la presenza di figure come quelle dei Quality rater introdotti nel 2004 da Google (si tratta in sostanza di operatori incaricati di analizzare, oltre che la qualità dei risultati delle ricerche e delle pagine trovate, anche la presenza di eventuali tecniche non valide) da una parte potrebbe generare preoccupazione nelle fila degli sviluppatori che lavorano con tecniche simili a quelle definite precedentemente, ma dall'altra propone un approccio non "automatico" e quindi più capace di distinguere le tecniche al servizio della navigabilità da quelle mirate esclusivamente a ottimizzare (o meglio "sovraottimizzare") le pagine.
Senza dubbio un segnale positivo e rassicurante per gli sviluppatori votati alla correttezza, oltre che utile al miglioramento del servizio reso dallo stesso motore di ricerca, sempre più abile nel produrre delle serp (search engine results page) con risultati attinenti e non falsati.
La conclusione più logica sarebbe quindi quella di continuare a produrre contenuti e soluzioni per curare l'estetica, la qualità e l'usabilità, anche avvalendosi delle tecniche fin qui analizzate, con il solo vincolo di evitare comportamenti che tendano in modo evidente e sistematico ad "ingannare" i motori di ricerca e chi ne fa uso.