CORSO HTML - parte terza
MAP
<MAP> creare mappe cliccabili
Le mappe cliccabili hanno fatto il loro ingresso nel Web publishing già
da molto tempo, fin dalle primissime versione di HTML. Si tratta di elementi
molto usati dagli sviluppatori per la facilità d'utilizzo e l'evidente utilità.
Il concetto di mappa cliccabile è semplice e parte da un'altrettanto semplice
constatazione: spesso collegare un unico link ad un'intera immagine limita
il webdesigner che invece potrebbe linkare diverse pagine sfruttando il
singolo gadget grafico. Le mappe cliccabili rimuovono questo limite e consentono,
all'interno di una singola immagine, di creare differenti aree di ritaglio,
ognuna delle quali con un link diverso. Il concetto fondamentale sul quale
si reggono le mappe cliccabili è quelle delle coordinate, che uniche possono
indicare al browser punti precisi dell'immagine. Esistono due tipi di mappe,
ma prima di passare alla loro esposizione è bene precisare che l'uso di
estensioni GIF o JPG è ininfluente e non crea alcuna incompatibilità.
Mappe dal lato server (ISMAP)
Affinchè queste mappe funzionino è necessario che sul tuo server siano presenti
le estensioni CGI necessarie. Si tratta di programmi gratuitamente scaricabili
in Rete e raccolti da CGIpoint.it.
Le ISMAP, questo il termine tecnico che indica questo genere di mappe, individuano
le coordinate dell'immagine attraverso un file esterno. Gli URL creati dalle
ISMAP è seguito dal valore delle coordinate x e y, separate da una virgola
e precedute da un punto interrogativo. Ecco un esempio:
http://www.html.it/cgi-bin/menu.map?25,55
Questo URL indica che nel punto x=25 e y=55 il link è quello stabilito all'interno
della ISMAP.
Mappe dal lato client (USEMAP)
Le mappe da lato server non sono molte diffuse soprattutto per la possibilità
di ottenere un risultato del tutto simile con una procedura da lato client.
Stiamo introducendo le USEMAP, cioè le mappe che vengono interpretate senza
alcun intervento da parte del server. La sintassi corretta che HTML indica
per inserire USEMAP in un documento è la seguente:
<IMG SRC="img/home/menu.gif" WIDTH=609 HEIGHT=87 BORDER=0 usemap="#menu">
Dove la prima parte del codice richiama evidentemente l'immagine e ne stabilisce
la grandezza; mentre #menu indica il nome del file (con estensione .map)
che contiene le informazioni relative alle coordinate. In altre parole le
USEMAP non fanno altro che richimare un file esterno che per ogni link dell'immagine
indica un relativo URL. Quello che segue è il contenuto di un file con estensione
.map (editabile molto semplicemente anche con blocco notes di Win95).
Per comprendere meglio il funzionamento di una USEMAP prendiamo in considerazione
un'immagine e simuliano che la nostra esigenza sia quella di creare tre
differenti link d'immagine per ognuno dei tre elementi grafici: la bicicletta,
il mouse e i pompieri. Se usassimo un normale ancoraggio d'immagine avremmo
un unico link per tutti gli elementi grafici. Usando un USEMAP, al contrario,
è possibile creare tre differenti aree di link per ognuna delle immagini.
Il codice così generato viene inserito all'interno dello stesso documento:
<map name="06a">
<area shape="poly" alt="Questo è un mouse" coords="181,27,172,14,163,10,150,14,136,23,136,34,128,40,123,32,112,
31,115,42,121,52,132,54,139,49,146,38,150,33,152,48,148,64,153,80, 161,82,172,82,180,76,183,53,181,34,181,24,181,25"
href="mouse.htm" title="Questo è un mouse">
<area shape="rect" alt="Camion dei pompieri" coords="207,7,279,82"
href="pompieri.htm" title="Camion dei pompieri">
<area shape="default" nohref>
</map>
Il codice è contenuto all'interno dei tag MAP, che chiudono e aprono la
sintassi. Le tre aree di ritaglio sono generate da altrettanti campi AREA.
Esistono tre differenti modi per ritagliare un'immagine:
poly: ritaglia immagini frastagliate attraverso linee rette
rect: ritaglia aree quadrate o rettagolari di 4 lati
circle: ritaglia aree circolari
Nel nostro esempio sono presenti aree di ritaglio poly e rect.
I commenti alle singole aree di ritaglio sono generati dai campi title e
alt e fanno in modo che il browser visualizzi testo descrittivo per ogni
singola area di link.
Creato il codice è necessario inserire all'interno dell'immagine un riferimento
allo stesso.
<img src="06a.gif" width=300 height=100 border=0 alt=""
usemap="#06a">
La dicitura usemap="#06a" richiama il codice impostato in precedenza
ed assegna alle immagini le aree di ritaglio.
Creare delle aree di ritaglio non è affatto semplice se non si dispone di
un programma adatto allo scopo che eviti un calcolo manuale. La gran parte
degli editor HTML presenti sul mercato prevede generatori automatici di
mappe, ed ai file di help di ognuno di essi rimandiamo per un approfondimento
ulteriore. Esistono anche programmi esclusivamente dedicati alla creazione
di USEMAP, tra questi consigliamo Mapedit: di piccole dimensioni (poco meno
di 300kb di file d'installazione) e facile utilizzo. E' un programma shareware
in prova per un periodo di 30 giorni e può essere gratuitamente scaricato
.
LE APPLET
A differenza di Javascript, le applet Java sono dei veri e propri programmi
residenti su server, con una propria sintassi contenuta all'interno
di file con estensione ".class", che viene poi richiamata da codice
HTML inserito nella pagina. Quindi il file class e' indipendente
dalla pagina HTML e senza di esso (o essi, visto che molte applet
si compongono di piu' file class) l'applet non funzionerebbe e il browser
(Netscape o MSIE) darebbe in risposta un messaggio simile a questo:
"load: class xxxx not found"
Ovviamente le "xxxx" stanno per il nome del file class che il
codice HTML ha richiamato ma che in realta' non e' presente nel percorso
indicato.
Al contrario, se il file e' presente dove indicato all'interno del codice
HTML della pagina, l'applet verra' caricata, generando gli effetti desiderati.
La presenza dei file .class richiama, poi, un ulteriore differenza con Javascript.
Una delle caratteristiche di quest'ultimo, infatti, e' quella di essere
facilmente modificabile; un editor HTML o addirittura blocco notes di Win95-98
sono sufficienti a modificare o rivedere completamente qualsiasi script.
Al contrario, per modificare un file .class e' necessario un compilatore
Java e una conoscenza approfondita del linguaggio di Sun. Due elementi
che il 99% degli utenti non possiedono e che precludono, nei fatti, qualsiasi
modifica dell'applet.
Gli unici parametri modificabili sono, quindi, ancora una volta quelli inseriti
all'interno del file HTML che richiama l'applet.
Le applet contenute in HTML.it sono singolarmente scaricabili in file zippati.
Al termine di ogni esempio pratico, infatti, e' presente un link che recita:
"Scarica l'applet in formato zip"
Cliccando su questo link si apre una piccola finestra di conferma per il
download del file indicato.
Dal momento in cui il file zip e' presente sull'hard disk e' necessario
seguire alcune semplici operazioni:
1. decomprimere il contenuto del file all'interno di una directory (o cartella).
Solitamente questi file contengono uno o piu' file .class, una o piu' immagini
e un unico file HTML. 2. visualizza il file HTML di cui al punto precedente
con il tuo browser (Netscape o MSIE) per osservarne il corretto funzionamento.
3. apri il file HTML con un editor ovvero,
4. A questo punto ti troverai di fronte al codice HTML del documento. Non
considerare l'intestazione e tutto il resto, ma poni attenzione soltanto
al codice compreso tra:
<!-- ------- INIZIO CODICE DELL'APPLET DA COPIARE ------- -->
<!-- ------- FINE CODICE DELL'APPLET DA COPIARE ------- -->
Se eventualmente mancasse questo commento, allora fai riferimento al codice
compreso tra:
<APPLET>
</APPLET>
Evidenzia con il mouse tutto il codice e serviti del copia/incolla per trasferirlo
su un'altra pagina.
5. Apri con un editor (o con blocco note) il documento HTML sul quale vuoi
che venga inserita l'applet e incolla nel punto che desideri il codice copiato.
Anche in questo caso serviti del copia/incolla. Fatto questo salva le modifiche
al documento.
6. Copia i file .class e le eventuali immagini dalla directory (o cartella)
dove hai decompresso il file scaricato da HTML.it (punto 1.), e trasferiscili
nella directory del file che hai modificato al punto 5.
Attenzione: non e' necessario che copi in questa cartella anche il file
HTML, ma soltanto i file class e le eventuali immagini.
7. Se vuoi richiamare i file class da una directory diversa da quella in
cui e' depositato il file HTML, devi impostare il parametro Codebase, come
segue:
<APPLET CODE="XXXXX.class" CODEBASE="http://www.nomesito.com/java">
Ovviamente a "XXXXX.class" va sostituito il nome del file class,
e a "http://www.nomesito.com/java" il percorso per raggiungere
lo stesso.
Iil supporto del Java deve essere abilitato nei browser, altrimenti vedrai
solo un messaggio che dice che il browser non supporta il java.
Gli errori piu' comuni
A) NOMI LUNGHI DI FILE SPEZZATI E CAMBIAMENTO DI MAIUSCOLE/MINUSCOLE:
B) Dimensione sbagliata di immagini o applet. Le immagini normalmente DEVONO
essere di dimensioni stabilite (ad esempio 64*64, 128*128 ecc.). Inoltre,
è bene non allargare le applet troppo, e immagini più larghe di 600 pixels
non saranno visibili pienamente a chi usa un modo video in 640x480.
VERSIONI DI HTML
HTML dal 1989 regge ininterrottamente le
sorti del Web.
L'HTML ha avuto, ed ha, uno sviluppo impetuoso e per molti versi simile
a quello di internet. Uno sviluppo che si è cercato di regolare per la prima
volta nel novembre del 1995, con la definizione da parte dell'Internet Engineering
Task Force (IETF) dell'HTML 2.0. Questa prima versione
ufficiale nacque già sorpassata dallo sviluppo di questo linguaggio, tanto
da non tenere in conto le tabelle, che i browser presenti sul mercato avevano
già adottato da tempo.
Nel marzo del 1995 il W3C (World Wide Web Consortium)
iniziò a lavorare su una versione 3.0 destinata
ad apportare numerose e fondamentali modifiche alla versione precedente.
Ma il W3C si trovò ad operare mentre Microsoft e Netscape rilasciavano versioni
dei rispettivi browser contenenti nuovi tags i quali, in ultima analisi,
rendevano impossibile la definizione di uno standard. Così il W3C abbandonò
la stesura della versione 3.0 per passare direttamente alla 3.2. Il risultato,
a dire il vero, non fu certo dei più esaltanti. Le maggiori novità della
versione 3.2 sono state: le tabelle, i font colorati, gli applet java, i
tag superscript e subscript e le Client Side Image. Come si vede, tutti
elementi da tempo supportati dai browser e adottati dai webmaster per la
creazione di siti internet.
Ripercorrendo la storia dell'HTML, quindi, è di tutta evidenza il gap tra
ciò che le "istituzioni ufficiali" stabiliscono come standard,
e ciò che in realtà avviene nel web. Questa situazione è imputabile, da
un lato alle strategie commerciali dei due grandi concorrenti (MS e Netscape),
dall'altro alla genetica "frenesia" della rete. Questa sorta di
"doppia velocità" non ha finora permesso la definizione di uno
standard per l'HTML. Non è infrequente che i due browser principali adottino,
per generare uno stesso effetto, comandi diversi ed incompatibili; a danno,
è ovvio affermarlo, dei webmaster che si trovano a fare una scelta di campo
tra uno dei due prodotti.
Il W3C si è impegnato a definire ufficialmente il nuovo standard (in fase
di studio chiamato "Cougar"), finalmente espresso nel "W3C
Proposed Recommendation".
E' nato quindi l'HTML 4.0 con propositi e prospettive diverse
dai precedenti tentativi. A differenza del passato sia Netscape che Microsoft
si sono impegnate ad implementare i lavori del W3C, e soprattutto ad accettarne
i risultati rendendo i propri browser compatibili. E' bene ricordare che
il W3C è un consorzio formato da: Adobe, Hewlett Packard, IBM, Microsoft,
Netscape, Novell, SoftQuad e Sun Microsystems.
L'HTML 4.0 segna il definitivo avvicinamento al Dynamic
HTML, ma non è certo questa l'unica importante innovazione:
Caratteri:
E' stato adottato il set di caratteri ISO/IEC:10646, che include qualsiasi
tipo di carattere in qualsiasi lingua. Ciò vuol dire che il W3C ha tenuto
conto dello sviluppo planetario del web, e che sarà possibile inserire in
una stessa pagina idiomi o caratteri di lingua differenti; che oggi genererebbero
soltanto incomprensibile testo "impazzito".
Accessibilità
HTML 4.0 tiene conto delle limitazione incontrate dai portatori di handicap,
e prevede diversi strumenti per facilitarne l'accesso a documenti iperstestuali:
distinzione tra struttura base e contenuto di un documento attraverso i
fogli di stile;
tabelle che prevedono la possibilita' di accedere ai non vedenti;
form che permettono di essere selezionati attraverso tasti di scelta rapida;
mappe cliccabili che possono visualizzare testo in alternativa alle immagini;
supporto dei comandi title e lang per tutti gli elementi;
descrizioni lunghe per tabelle, immagini, frames ecc.;
supporto degli elementi ABBR e ACRONYM;
possibilita' di usare, all'interno di fogli di stile, linguaggi di comunicazione
quali tty, braille ed altri.
Object
Nell'HTML 4.0 potranno essere inseriti elementi eseguibili e multimediali,
per fare questo il marcatore OBJECT sostituirà gli attuali
IMG e APPLET. Questo marcatore omnicomprensivo permette di includere immagini,
video, suoni e programmi esecutivi nel documento, attraverso una tecnica
gerarchica per specificare varie alternative in base all'ambiente in cui
si trova ad operare il browser dell'utente.
Facendo un esempio riguardo il marcatore OBJECT e la sua caratteristica
di generare alternative, verra' di seguito riportato un codice che tenta
di visualizzare in alternativa (1) un applet che genera l'immagine animata
di una bandiera sventolante; la stessa animazione in formato Mpeg (2), ed
infine un'immagine fissa JPG della bandiera:
<OBJECT title="Una bandiera" classid="java:Flag.class"
width="300" height="200">
<OBJECT data="flag.mpeg" type application/mpeg">
<OBJECT src="flag.jpg">
<FONT SIZE=4>Una bandiera</FONT>
</OBJECT>
</OBJECT>
</OBJECT>
Fogli di stile
L'HTML è stato progettato per gestire singole pagine. Se ciò ha generato
la definizione di un linguaggio semplice e diretto, non è più aderente alle
necessità di siti spesso composti da migliaia di pagine. A questo si affianca
il problema incontrato dai grafici professionisti riguardo la difficoltà
di posizionamento all'interno del documento di immagini e testo.
A queste problematiche HTML 4.0 cerca di far fronte adottando i fogli di
stile, i quali possono essere inseriti all'interno di un documento iperstestuale
in tre modi:
attraverso un file esterno;
attraverso l'intenstazione generale di ogni singolo documento;
o, finalmente, attraverso la specifica degli attributi nel singolo TAG.
Sfruttando i fogli di stile è possibile modificare la struttura di diverse
pagine agendo su un unico file esterno che ne determina l'aspetto. I fogli
di stile sono destinati a sostituire l'abitudine, sempre più frequente,
di layout di pagina creati attraverso strumenti impropri quali le tabelle.
La marcatura HTML dovrà, quindi, tornare alla sua originaria funzione di
definizione della struttura logica del documento, lasciando ai fogli di
stile la gestione del layout di pagina.
I fogli di stile non necessariamente debbono essere HTML. Alcuni linguaggi
specializzati come il CSS (Cascading Style Sheets) permettono di riunire
direttive di stile provenienti da fonti diverse, facendo prevalere le une
alle altre in base alle scelte del webmaster.
Tabelle
Il modello definitivo di tabelle dell'HTML 4.0 riprende la prima stesura
dell'HTML+. Il modello precedente è stato esteso rispondendo a requisiti
di controllo nella presentazione dati, richiesti dalle nuove necessità della
rete.
HTML 4.0 permette un notevole controllo sulle tabelle (basate su RFC1942),
che sono esclusivamente orientate alla presentazione dati, e non, come avviene
attualmente, alla definizione del layout di pagina.
E' stato introdotto, tra le altre cose, il nuovo elemento COLGROUP
che permette di creare gruppi di colonne, specificandone allianeamento
e larghezza.
Nello specifico, riprendendo quanto ufficialmente riportato nel W3C Proposed
Recommendation, le più importanti innovazione alle tabelle sono:
possibilità di allineamento per caratteri indicati come "." e
":" (per esempio, sarà possibile allineare una colonna di numeri
sul punto decimale);
introduzione di maggior flessibilà;
possibilità di ottenere tabelle scorrevoli con testate fisse, più un supporto
adeguato per le tabelle interrotte durante le pagine di stampa;
semplificare le tabelle importate per adeguarsi al modello SGML CALS. L'ultima
stesura fa sì che l'attributo sia compatibile con le ultime versioni dei
più popolari browsers;
è stato introdotto un nuovo elemento che permette di ragruppare una serie
di colonne con larghezza e proprietà di allineamento differenti da uno o
più elementi, e rules="basic" è stato sostituito da rules="groups".
FORM
Sono stati introdotti nuovi attributi destinati a risolvere le lacune dell'HTML
3.2:
l'attributo accesskey provede di specificare un accesso
diretto tramite tastiera ai campi del formulario;
con readonly, un attributo supplementare, i webmaster possono
vietare i cambiamenti ai campi del form;
l'elemento LABEL aggiunge un'etichetta con un particolare
form di controllo.
L'elemento FIELDSET raggruppa campi in relazione fra di
loro e, in associazione con l'elemento LEGEND, può essere
usato per nominare il gruppo. Entrambi questi nuovi elementi, permettono
una migliore interpretazione e interazione;
una nuova serie di attributi onchange-INPUT, in associazione con il supporto
per i linguaggi script, permette ai form dei providers di verificare i dati
inseriti dall'utente;
l'elemento INPUT ha un nuovo attributo accept che permette
agli autori di specificare una lista di media o tipi di struttura per l'input;
il nuovo elemento BUTTON può essere usato per arricchire
i forms in modo diverso oltre ai classici "submit" e "reset".
Scripting
HTML 4.0 prevede la possibilità di associare script ai form, in modo da
generare una maggior interattività con l'utente, senza per questo doversi
servire di complesse applicazioni java.
Stampa
HTML 4.0 permette di stampare pagine web senza per questo ottenere una pura
e semplice riproduzione della pagina, tout court. Il programmatore HTML
4.0 ha la possibilità di definire ciò che verrà stampato, e come verrà stampato,
quando l'utente farà click sul pulsante "Stampa" del proprio browser.
I nuovi elementi dell'HTML 4.0 sono:
Q, INS, DEL, ACRONYM, LEGEND, COLGROUP, BUTTON, e FIELDSET
Gli elementi disapprovati:
ISINDEX, APPLET, CENTER, FONT, BASEFONT, STRIKE, S, U, DIR, e MENU
Gli elementi ritenuti obsoleti:
XMP, PLAINTEXT, and LISTING
al posto dei quali va usato esclusivamente il comando PRE
In ultima analisi, secondo chi scrive, HTML 4.0 risponde pienamente alle
esigenze attuali della rete, anche grazie all'impegno e alla buona volontà
dimostrata dai partecipanti al W3C.
Attualmente HTML 4.0 rappresenta un valido punto di riferimento per i webmaster
che, a differenza del passato, possono ora riferirsi ad uno standard avanzato
e non anacronistico.