Giorno 29: Rendete tutto ricercabile
Ogni sito web ha bisogno di una funzione di ricerca al suo interno. Punto.
Queste le regole per un buon motore di ricerca interno:
- Inserite il riquadro della ricerca in ogni pagina, preferibilmente “prima della piega” (visibile senza scendere con le barre di scorrimento) [NdT il termine deriva dal giornalismo, ad indicare la parte del giornale più letta, quella prima della piega, appunto].
- Per difetto cercate su tutto il sito. Se avete un’opzione per limitare la ricerca, ad esempio, ai solo articoli o ai commenti, o ad entrambi, fate in modo che per difetto la ricerca sia per “entrambi”.
- Non complicate il riquadro di ricerca con opzioni avanzate, come la logica booleana, sensibilità al maiuscolo/minuscolo, ovvero l’uso di espressioni. Prendete a riferimento il comportamento di Google (ricerca su tutte le parole, intere e non parziali, senza differenza tra maiuscolo e minuscolo, senza uso di espressioni ) e rendete tutte le opzioni visibili su una pagina separata di “ricerca avanzata”.
- Date al riquadro di ricerca un’etichetta appropriata e definite una scorciatoia di tastiera. Io consiglio
accesskey="4"
. (Nota: Nel Giorno 15, ho dato un’esempio di come assegnare unaccesskey
al vostro modulo di ricerca, e mi sono sbagliato. Per garantire la massima compatibilità tra i browser, dovreste definireaccesskey
su<label>
, e non su<input>
. Fate riferimento agli esempi qui sotto per la corretta sintassi da usare).
A chi serve?
A Jackie, Michael, Bill, Lillian, Marcus, e quasi tutti gli altri al mondo beneficeranno di un corretto inserimento della funzione di ricerca nel sito. Soprattutto in un weblog o in un sito di notizie, dove il contenuto è principalmente organizzato cronologicamente, è frustrante cercare di trovare un particolare messaggio che è già uscito dalla pagina principale e si trova da qualche parte nel sito. Pochi conoscono la sintassi di Google per la ricerca limitata ad un determinato sito “site:domainname.com”, senza dimenticare che Google indicizza i siti una volta al mese.
Meglio fornire un proprio sistema di ricerca.
Come fare
Greymatter già dispone di una funzione interna di ricerca, ma dovrete personalizzare il modello per consentire l’uso del tasto di accesso veloce al riquadro di ricerca (attributo accesskey)
. Andate su “Edit Templates”, “Miscellaneous Templates”, “Search Form Template”, e cercate questo modulo (form):
<FORM ACTION="{{cgiwebpath}}/gm-comments.cgi" METHOD=POST>
<INPUT TYPE=TEXT NAME="gmsearch" SIZE=20>
<INPUT TYPE=SUBMIT VALUE="Search">
</FORM>
Cambiatelo così::
<FORM ACTION="{{cgiwebpath}}/gm-comments.cgi" METHOD=POST>
<label for=”gmsearch” accesskey=”4″>Search for:</label>
<INPUT TYPE=TEXT
id=”gmsearch” NAME="gmsearch" SIZE=20>
<INPUT TYPE=SUBMIT VALUE="Search">
</FORM>
Per Movable Type si può utilizzare il modulo aggiuntivo MT-Search . Lo sto usando su un sito MT. L’ho provato sul mio weblog (che ha oltre 900 voci) ed era abbastanza lento, ma sembra andare meglio su siti più piccoli. Non è più sviluppato, ma funziona bene anche con l’ultima versione [NdT riferita al 2002] di Movable Type. (Nota: se usate la versione MySQL di Movable Type 2.2, dovrete apportare qualche leggera modifica a mt-search.)
Se avete un weblog con un proprio nome di dominio, potete utilizzare un servizio di ricerca esterno che indicizzi il vostro contenuto e fornisca risultati di ricerca a richiesta. Alternative popolari su questo fronte includono Atomz Express Search, [NdT utilizzato per questa edizione italiana] raccomandato da Blogger.com, e Google Free Web Search, che uso sul mio weblog. Entrambi possono essere, in qualche grado, personalizzati, e sono abbastanza veloci, anche se i loro indici non sono aggiornati ‘all’ultimo minuto’. Entrambi consentono di personalizzare l’aspetto del riquadro di ricerca; il mio modulo di ricerca con Google si presenta così (notate l’uso di <label>
e accesskey
):
<form id="searchform" method="get" action="http://www.google.com/custom">
<p id="searchlabel">
<label for=”q” accesskey=”4″>Search this site:</label></p>
<p id="searchinput"><input type="text"
id=”q” name="q" size="18" maxlength="255" value=" " /></p>
<p id="searchsubmit"><input type="submit" value="Search" />
<input type="hidden" name="cof" value="LW:116;L:http://diveintomark.org/images/eyes.jpg;LH:68;AH:left;GL:0;S:http://diveintomark.org/;AWFID:0d8ffcebe359c844;" />
<input type="hidden" name="domains" value="diveintomark.org" />
<input type="hidden" name="sitesearch" value="diveintomark.org" />
</p>
</form>
Nota: potete copiare ed incollare questo codice per il vostro weblog. Se volete usare il servizio Google Free Web Search, dovrete registrarvi e inserire il vostro codice personale nel campo cof
(nella voce ‘value’).
Approfondimenti
- Jay Allen: MT-Search, un modulo aggiuntivo per Movable Type.
- Phil Ringnalda: mt-search.cgi and MySQL. Informazioni importanti per far funzionare MT-Search con Movable Type 2.2 e MySQL.
- Atomz Express Search.
- Google Free Web Search.
- Blogger.com: How do I add a search engine to my blog?Raccomanda Atomz, ma poi indica altri qui non riportati.
- Jukka Korpela: Improving accessibility with
accesskey
in HTML forms and links. Verso la fine, spiega perchè usare il tasto ”4″ comeaccesskey
di ricerca nel vostro sito. - Jakob Nielsen: Is Navigation Useful?Gli utenti si affidano spesso alle funzioni di ricerca come loro principale strategia di consultazione.
- Jakob Nielsen: Search Usability. Ha cinque anni ma ancor oggi incredibilmente rilevante.
- PHP.net: URL HOWTO. PHP.net ha la ricerca più incredibile mai vista. Oltre alla normale casella di usano una versione personalizzata della pagina di errore 404 (che normalmente visualizza il messaggio di pagina non trovata) che ricerca intelligentemente il sito sulla base della URL introdotta. Così potete digitare sul vostro browser un indirizzo come php.net/phpinfo , e php.net vi ridirige alla pagina di riferimento della funzione phpinfo.