Le specifiche originarie per le mappe immagine lato client erano su RFC1980. La versione correntemente usata è, in buona sostanza, quella dell’HTML4.01. Quest’ultima utilizza dei particolari costrutti HTML, come il tag MAP
e quello AREA
, ciascuno con i propri attributi.
In alcuni browser di uso comuni, sono presenti alcune incompatibilità:
- Alcuni non supportano una “mappa immagine esterna”, cioè essa deve trovarsi nello stesso file HTML che contiene il tag
IMG
che ad essa fa riferimento. - In alcuni casi, il browser richiede che la mappa immagine lato client preceda, nel codice HTML, il punto in cui essa viene utilizzata per la prima volta [Ma è ancora un’aspetto significativo???]
Queste limitazioni hanno, chiaramente, delle implicazioni negative:
- Nel caso in cui la stessa mappa immagine sia utilizzata da più pagine HTML (per esempio una barra di navigazione del sito), sarebbe produttivo il poter salvare l’imagemap in un file separato da referenziare come “esterno” in ciascuna delle pagine in cui deve comparire, a tutto vantaggio dell’efficienza della rete e del caching dei files della mappa immagine.
- Quando si include la mappa immagine lato client in una pagina HTML che prevede anche del contenuto testuale, sarebbe meglio se la mappa fosse situata (parlando di codice) alla fine della pagina, così che il browser possa ricevere e “montare” il testo contenuto prima della mappa. Al contrario, se l’imagemap si trova in testa al documento, il lettore dovrà attendere che venga recuperata la mappa prima di vedere la pagina che si popola degli altri elementi (magari soltanto testuali!).
Allora, viste le limitazioni che si potranno incontrare in presenza di vari browser installati, devo – anche se sono un po’ riluttante a farlo – invitarti ad utilizzare le mappe immagine in maniera da tenere nella dovuta considerazione le problematiche appena introdotte, cioè includendo la mappa lato client nello stesso file che la richiama, e posizionandola in modo che preceda la prima riga che la richiama. Potresti, in ongi caso, trovare conveniente salvare la mappa immagine separatamente ed includerla nei file che la utilizzano attraverso il meccanismo di SSI (Server Side Include); in questo caso, ricordati di controllare che ciò non porti il tuo documento al di fuori del meccanismo di cache (con Apache, usa l’opzione XBitHack Full ed imposta entrambi i bit di user-execute e di group-execute sui file HTML).
Il seguente codice HTML serve a referenziare una mappa immagine lato client:
<IMG SRC="URL-to-image" USEMAP="URL-to-csimap">
Il tag IMG
deve essere accompagnato dall’attributo ALT
, oltre che dai soliti HEIGHT
e WIDTH
. Inoltre, per migliorare l’accessibilità, sarà bene sfruttare anche TITLE
e LONGDESC
, in accordo con i principi enunciati dal WAI.
A causa delle limitazioni appena menzionate, l’URL-to-csimap (l’URL della mappa immagine lato client) dovrà avere la forma #mapname, dove mapname è il nome specificato nell’attributo NAME
del tag MAP
:
<MAP NAME="mapname">
<AREA ...>
<AREA ...>
...
</MAP>
Diversamente dalle mappe lato server, non è possibile nascondere ciò agli utenti in modalità testo utilizzando il codice ALT=""
. Piuttosto, abbi cura di usare con attenzione gli attributi ALT
dei tag AREA
della MAP
, così che i browser testuali possano ricostruire un menu in modalità testo, e fornire all’utente qualcosa di utile e significativo mediante l’attributo ALT
di IMG
.