L'HTML e i browser
L'HTML è il linguaggio mediante il quale è possibile indicare come i vari elementi vanno disposti in una
pagina Web. Un documento HTML, infatti, non è altro che un file di testo con delle indicazioni sulla
formattazione del testo quali: colore delle scritte, posizione delle immagini all'interno della pagina, come far
scorrere il testo, etc.
Il Browser è il software necessario ad interpretare le istruzioni presenti in un documento HTML al fine di
riprodurre la impostazione grafica prevista dall’autore in fase di stesura della pagina. Esso svolge, dunque,
almeno due compiti principali:
•
Richiede i documenti HTML ad un computer remoto (il server Web) mediante protocollo HTTP
•
Interpreta i documenti scritti in HTML, e formatta la pagina di conseguenza
I browser moderni offrono, in realtà, altre funzionalità avanzate quali l’interpretazione di contenuti dinamici
multimediali - con l’ausilio di appositi plug-in -, la possibilità di utilizzare protocolli diversi dall’HTTP (ad
esempio l’HTTPS, pensato per la sicurezza della comunicazione, ottenuta come sempre crittografando i
contenuti), ed altre funzionalità legate alla rete Internet.
La visualizzazione di un file HTML da parte del browser prende il nome di rendering della pagina. Il motore
di rendering è dunque quella sezione del browser che si occupa di mostrare sul video la pagina. HTML è
l'acronimo di Hypertext Markup Language ("Linguaggio di contrassegno per gli Ipertesti") e non è un
linguaggio di programmazione, bensì un linguaggio di contrassegno (o 'di marcatura'). Un linguaggio di
programmazione, infatti, è pensato per fornire al computer un elenco di istruzioni da eseguire e quindi per
realizzare programmi applicativi per computer. Un linguaggio di descrizione della pagina, invece, indica
all’interprete del linguaggio come disporre gli elementi all'interno di una pagina. Tali indicazioni sono fornite
con l’uso di appositi marcatori, detti tag. Ciò significa che l'HTML non ha meccanismi che consentono di
prendere delle decisioni ("in questa situazione fai questo, in quest'altra situazione fai quest'altro"), e non è
in grado di compiere delle iterazioni ("ripeti questa cosa, finché non succede questo"), né ha altri costrutti
propri dei linguaggi di programmazione.
L'organizzazione che si occupa di standardizzare la sintassi del linguaggio HTML (il W3C: Word Wide
Web Consortium) ha rilasciato diverse versioni di questo linguaggio (HTML 2.0, HTML 3.2, HTML 4.0). La
versione dell'HTML alla quale faremo riferimento è l'HTML 4.01.
Struttura di un tag
Abbiamo detto che all'interno di ogni pagina è presente una serie di marcatori (i TAG), a cui viene affidata la
visualizzazione e che hanno differenti nomi a seconda della loro funzione. I tag vanno inseriti tra parentesi
uncinate (<TAG>), la chiusura del tag viene indicata con uno slash: "/". Quindi: </TAG>). Il contenuto va
inserito tra l'apertura e la chiusura del tag medesimo, secondo questa forma:
<TAG attributi>contenuto</TAG>
Ecco un esempio, con una sintassi che serve a disporre un testo giustificato a destra:
<P align="right">testo</P>
dall'esempio è evidente che la struttura di un attributo è: attributo="valore"
Quindi in definitiva la struttura di un tag sarà:
<TAG attributo_1="valore1" attributo_2="valore2">contenuto</TAG>
Alcuni particolari tag non hanno né contenuto - perché ad esempio indicano la posizione di alcuni elementi
(come il tag necessario per posizionare le immagini), né conseguentemente hanno chiusura. La loro forma
sarà dunque:
<TAG attributi>
Ecco un esempio di immagine:
<IMG widht="20" height="20" SRC="miaImmagine.gif" ALT="alt">
come si vede il tag non viene chiuso. Questo tipo di tag viene detto "empty", vuoto.
Annidamento e indentazione
Una caratteristica importante del codice HTML è che i tag possono essere annidati l'uno dentro l'altro. Anzi
molto spesso è necessario farlo.
Ad esempio:
<TAG1 attributi>
contenuto 1
<TAG2>
contenuto 2
</TAG2>
</TAG1>
Potremmo quindi avere ad esempio:
<P align="right">
testo 1
<P align="left">
testo 2
</P>
</P>
L'annidamento ci permette quindi di attribuire formattazioni successive al testo che stiamo inserendo.
Come si può vedere già nell'esempio, è una buona norma utilizzare dei caratteri di tabulazione per far
rientrare il testo ogni volta che ci troviamo in presenza di un annidamento e man mano che entriamo più in
profondità nel documento. In pratica apertura e chiusura del tag si trovano allo stesso livello, mentre il
contenuto viene spostato verso destra di un tab. Questa procedura si chiama indentazione, e grazie ad
essa il codice HTML risulta più leggibile. Si confronti ad esempio:
<P align="right">testo 1<P align="left">
testo 2 </P></P>
con:
<P align="right">
testo 1
<P align="left">
testo 2
</P>
</P>
Il secondo blocco è certamente più leggibile. Ciò è tanto più vero quanto più la pagina diventa complessa.
Un’altra buona norma per mantenere il codice più leggibile è quella di inserire dei "commenti" nei punti più
significativi: si tratta di indicazioni che non verranno visualizzate dal browser. Inserire i commenti in punti
specifici del documento permette di mantenere l’orientamento anche in file molto complessi e lunghi. La
sintassi è la seguente:
<!-- questo è un commento -->
L’HTML è “case unsensitive”, cioè indipendente dal formato. Questo significa che è del tutto indifferente
scrivere i tag in maiuscolo o in minuscolo.
<P ALIGN=”RIGHT”>
2
e
<p align=”right”>
vengono interpretati allo stesso modo dal browser.
Fino a qualche tempo fa, per aumentare la leggibilità del codice, era buona norma scrivere in maiuscolo il
nome del tag (es: <P>) e in minuscolo gli attributi (es: align=”right”). Quindi:
<P align=”right”>
Tuttavia oggi, per analogia con l'XHTML (che è una recente evoluzione dell'HTML ed è “case sensitive”,
sensibile al formato) è consigliabile scrivere tutto in minuscolo.
Elementi della struttura
Identificatore di prologo
Affinché un documento sia identificato come HTML, esso deve iniziare con il prologo: !DOCTYPE
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.1 Transitional//IT">
Questo tipo di riga chiamata prologo, non è obbligatoria ed ha il solo compito di informare il
browser che si tratta di un documento HTML relativo a determinate specifiche, in mancanza di
questa dichiarazione il documento sarà identificato come rispondente alla specifica HTML 2.0;
l’importanza di tale identificatore sta dunque nella certezza di corretta interpretazione del
documento da parte dei browser.
<HTML>...</HTML>
L'elemento <HTML> identifica un documento che contiene elementi HTML; esso dovrebbe
seguire l'identificatore di prologo e circondare tutto il testo restante, inclusi tutti gli altri
elementi o tag.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
la parte restante del documento
</html>
Un documento HTML è normalmente diviso in due sezioni:
Contiene informazioni che riguardano il modo in cui il
documento deve essere letto e interpretato. Questo è
Testa (<head>) il luogo dove inserire, ad esempio, i meta-tag (alcuni
sono ad esclusivo beneficio dei motori di ricerca), gli
script JavaScript o VbScript, i fogli di stile, etc.
Corpo (<body>)
Qui è racchiuso il contenuto vero e proprio del
documento
3
<HEAD>...</HEAD>
L'elemento <HEAD> viene utilizzato per fornire informazioni sul documento. In questa sezione
trovano posto tutti quei tag che impartiscono direttive ai browser quali: titolo, Meta comandi,
richiami ai fogli di stile, script. Notare che tutto ciò che si trova all'interno della struttura head
non sarà visualizzato, ma interpretato dal browser; quindi si tratta di una zona destinata ad
uso esclusivo dei soli comandi che impartiscono direttive ben specifiche.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
elementi di informazione
quali:
<BASE>
<LINK>
<META>
<STYLE>
<TITLE>
<SCRIPT>
</head>
la parte restante del documento
</html>
Per ora facciamo riferimento soltanto a due tag che devono essere presenti in questa sezione:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
indica al browser che deve caricare il set di caratteri occidentale (e non - ad esempio - il set di caratteri
giapponese).
<title>Nome del sito</title>
Il title è il titolo della pagina e compare in alto sulla barra del browser. È bene compilarlo da subito, onde
evitare poi di avere pagine senza titolo. La struttura di una pagina sarà dunque la seguente:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//IT">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ESEMPIO PAGINA HTML</title>
</head>
<body>
<!-- Scriveremo qui -->
Qui il nostro contenuto
</body>
</html>
I vari tag che esamineremo andranno scritti all'interno del body, quando non sia indicato diversamente.
4
<BODY>...</BODY>
L'elemento <BODY> contiene la pagina vera e propria, o almeno ciò che si vedrà a video.
Quindi il testo, le immagini e tutti gli elementi che forniscono il controllo e la formattazione
della pagina stessa. I possibili attributi sono : Background, Bgcolors, Bgproperties, Link, Vlink,
Alink, Text, Topmargin, Bottommargin, Leftmargin, Rightmargin
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<Title> la mia prima pagina web </Title>
</head>
<body>
BACKGROUND
BGPROPERTIES
BGCOLOR
LINK
VLINK
Molti gli attributi associabili
ALINK
a questo tag:
TEXT
TOPMARGIN
BOTTOMMARGIN
LEFTMARGIN
RIGHTMARGIN
la parte restante del documento
</body>
</html>
BACKGROUND
Permette di adoperare un'immagine come sfondo della pagina, immagine che dovrà essere di tipo
.gif .jpg o .png. Indipendentemente dalle dimensioni verrà usata a riempimento di tutta la finestra
del browser, qualunque sia la sua dimensione e risoluzione del video:
<body background="nome_immagine.gif">
E' possibile richiamare l'immagine anche da altro sito, specificandone l'indirizzo completo
(URL)
<body background="http://www.indirizzo.it/nome_immagine.gif">
BGPROPERTIES
L'immagine adoperata a riempimento può essere tenuta ferma durante lo spostamento verticale
(scrolling) sulla pagina, dando l'impressione di scivolare con le immagini e i testi sullo sfondo. Tale
operazione è possibile soltanto con alcuni browser.
<body background="nome_immagine.gif" bgproperties="fixed">
5
BGCOLOR
Si adopera questo attributo per colorare lo sfondo della pagina di una tinta unita; il colore può
essere espresso sia col nome inglese che usando la notazione esadecimale.
<body bgcolor="green">
Oppure
<body bgcolor="#006600">
La notazione esadecimale è da preferirsi, in quanto permette con estrema semplicità di poter
scegliere fra una tavolozza di ben 16 milioni di colori.
Ecco una tabella con la notazione di alcuni colori (molti di essi sono disponibili anche nelle varianti
"dark" e "light", ad esempio: "darkblue", "lightblue"):
colore
parola chiave
notazione esadecimale
arancione
orange
#FFA500
blu
blue
#0000FF
bianco
white
#FFFFFF
giallo
yellow
#FFFF00
grigio
gray
#808080
marrone
brown
#A52A2A
nero
black
#000000
rosso
red
#FF0000
verde
green
#008000
viola
violet
#EE82EE
LINK
Si adopera questo attributo per decidere il colore di tutti i links facenti parte della pagina; può essere
espresso sia col nome inglese che col relativo codice esadecimale.
<body link="green">
oppure
<body link="#006600">
Per default questo colore è blu (blue) #0000ff
6
I link testuali possono avere diversi stati:
Status
Codifica in HTML
4.01
Descrizione
Collegamento
normale
link
Normalmente il link quando si
trova "a riposo" viene
evidenziato in qualche maniera
all’interno della pagina HTML, in
modo che sia facile per l’utente
individuarlo. Nell’HTML
tradizionale il link è sempre
sottolineato. Di default i link
sono blu (#0000FF).
Collegamento
visitato
visited
Un link è visitato, quando l’URL
della pagina compare nella
cronologia dell’utente. Di
default i link visitati sono di
color violetto (più esattamente:
#800080).
Collegamento
attivo
active
Il collegamento è attivo nel
momento in cui il link è stato
cliccato e sta avvenendo il
passaggio da una pagina
all’altra.
Non si tratta di una
caratteristica particolarmente
utile oggi, ma quando i modem
avevano una velocità molto
inferiore a quella odierna,
vedere un link "attivo" era
comunque un’indicazione sul
fatto che qualcosa stava
avvenendo.
Con Internet Explorer è
possibile vedere anche una
linea tratteggiata attorno al
collegamento attivo.
Un ulteriore condizione in cui un
link si rivela "attivo" è quando
si utilizza il tasto destro del
mouse su di lui. Insomma un
link è attivo quando "ha il
focus".
Collegamento al
passaggio del
mouse
non presente
7
VLINK
Si adopera questo attributo per decidere il colore di tutti i links, dopo che questi sono stati visitati,
può essere espresso sia col nome inglese che col relativo codice esadecimale.
<body vlink="green">
oppure
<body vlink="#006600">
Per default questo colore è porpora (purple) #800080
ALINK
Si adopera questo attributo per decidere il colore di tutti i links attivi, colore che verrà assunto dal
link nel momento del click su di esso; può essere espresso sia col nome inglese che col relativo
codice esadecimale.
<body alink="green">
Oppure
<body alink="#006600">
Per default questo colore è rosso (red) #ff0000
TEXT
Si adopera questo attributo per decidere il colore di tutto il testo nella pagina, può essere espresso
sia col nome inglese che col relativo codice esadecimale.
<body text="green">
oppure
<body text="#006600">
E’ bene porre attenzione alla combinazione tra questo colore e quello dello sfondo, per non
incorrere in scelte che rendano il testo poco leggibile.
MARGINI
Topmargin, Bottommargin, Leftmargin, Rightmargin sono i quattro attributi per definire la distanza
in pixel rispettivamente da: margine superiore, margine inferiore, margine sinistro e margine destro.
Un margine uguale a zero farà si che il testo inizi praticamente sul bordo della finestra del browser.
<body topmargin="30">
<body bottommargin="30">
<body leftmargin="30">
<body rightmargin="30">
8
ESEMPIO
Riassumendo, questa potrebbe essere una definizione del corpo (body), di una pagina che
abbia una immagine come sfondo che resti fissa durante le operazioni di spostamento
(scrolling), con un testo di colore nero, i links di colore rosso, i links visitati di colore verde, il
tutto con una distanza dai quattro margini di 50 pixel.
<body background="nome_immagine.gif" bgproperties="fixed" text="black" link="red"
vlink="green" topmargin="50" bottommargin="50" leftmargin="50" rightmargin="50" >
Elementi di formattazione
<BASEFONT>
Specifica le dimensioni del font (carattere) di base su cui si basano poi tutte le relative
modifiche di <FONT SIZE=+..> Il valore di default è 3 e può essere compreso tra 1 e 7.
Questo Tag è in via di estinzione visto che con i nuovi browser e i relativi fogli di style si ha la
sempre più la tendenza a non adoperare più il tag <FONT><BASEFONT SIZE=4>
Si possono inserire anche altri due attributi
FACE specifica il tipo di font
COLOR specifica il colore che potrebbe essere espresso oltre che col nome in inglese anche
con il codice numerico esadecimale.
<BASEFONT SIZE="4" FACE="arial" COLOR="green">
E’ sconsigliabile usarlo, preferendo invece l’utilizzo dei fogli di stile introdotti dalla versione 4
dell’HTML.
<BR>
L'elemento <BR> specifica che una nuova riga deve iniziare in un determinato punto, un
ritorno a capo forzato; più <br> consecutivi equivalgono a più righe saltate.
<BR>
Con l'aggiunta di immagini flottanti, allineate a destra o sinistra con il testo che le contorna,
è possibile aggiungere l'attributo CLEAR con i seguenti risultati:
9
CLEAR=left : Spezza la riga e si sposta verticalmente verso il basso fino ad avere un
margine sinistro libero.
CLEAR=right : Stessa cosa ma con margine libero destro.
CLEAR=ALL : Si sposta verso il basso fino a quando entrambi i margini non siano liberi da
immagini.
<BR clear=all>
<CENTER>...</CENTER>
Tutto ciò che si trova fra gli elementi center /center sarà centrato rispetto ai margini destro e
sinistro della finestra del browser. Questo Tag è in disuso da quando elementi quali <DIV>
offrono maggiore flessibilità; si ottengono analoghi risultati anche assegnando l'attributo
align=center ai vari tags di formattazione.
<CENTER>
Questo testo è centrato sulla finestra di visualizzazione
</CENTER>
<COMMENT>...</COMMENT>
Consente di lasciare un testo di commento all'interno del listato HTML senza che questo possa
influire o essere visualizzato dal browser. Lo stesso risultato si ottiene anche con i tags <!-- ...
-->
<COMMENT>
Questo testo non serve a niente è semplicemente un commento, un qualcosa da ricordare
dovendo visionare il listato.
</COMMENT>
<!-Questo testo non serve a niente è semplicemente un commento, un qualcosa da ricordare
dovendo visionare il listato.
-->
10
I principali tag-contenitori da utilizzare per "racchiudere" il testo sono:
Nome tag
Visualizzazione
codice
<h1>titolo 1 </h1>
<h2>titolo 2 </h2>
titolo 1
<h3>titolo 3 </h3>
titolo 2
<h4>titolo 4 </h4>
titolo 3
<h5>titolo 5 </h5>
<h6>titolo 6 </h6>
titolo 5
paragrafo 1
paragrafo 2
Esempio:
<p>paragrafo 1</p>
<p>paragrafo 2</p>
<div>Blocco di testo</div>
"H" sta per
"heading", cioè
titolo: le grandezze
previste sono sei.
Dall’<h1>, che è il
più importante, si
va via via
degradando fino
all’ <h6>.
titolo 4
titolo 6
<p>paragrafo </p>
Descrizione
Il tag <hx> (sia
esso h1 o h6)
risulta formattato
in grassetto e
lascia una riga
vuota prima e dopo
di sé. Si tratta
dunque di un
elemento di blocco.
Il paragrafo è
l’unità di base
entro cui
suddividere un
testo. Il tag <P>
lascia una riga
vuota prima della
sua apertura e
dopo la sua
chiusura.
blocco 1
blocco 2
Il blocco di testo va
a capo, ma - a
differenza del
paragrafo – non
lascia spazi prima e
dopo la sua
apertura.
contenitore 1
contenitore 2
contenitore 3
Lo span è un
contenitore
generico che può
essere annidato
(ad esempio)
all’interno dei DIV.
Esempio:
<div>blocco 1</div>
<div>blocco 2</div>
<span>contenitore</span>
Esempio:
<span>contenitore
Si tratta di un
11
1</span>
<span>contenitore
2</span>
<span>contenitore
3</span>
elemento inline,
che cioè non va a
capo e continua
sulla stessa linea
del tag che lo
include.
Le differenze tra <P>, <DIV> e <SPAN> sono quindi che:
•
•
•
<P> lascia spazio prima e dopo la propria chiusura
<DIV> non lascia spazio prima e dopo la propria chiusura, ma - essendo un elemento di blocco - va
a capo
<SPAN> -essendo un elemento inline - non va a capo
Per quel che riguarda il tag heading (<h1>, …, <h6>) è da notare che la grandezza del carattere varia a
seconda delle impostazioni che l’utente ha sul proprio computer.
<FONT>...</FONT>
L'elemento <FONT> definisce le dimensioni, il colore e il tipo di carattere adoperato per la
scrittura di testo. Il Tag <font> ha dimensione di base (default) del carattere uguale a 3, si
veda a questo proposito anche <BASEFONT>. Font da solo non ha ragione di esistere, al suo
interno si deve sempre inserire almeno un attributo.
<FONT attributo="specifica">
Testo che avrà tutti gli attributi specificati nel tag font
</FONT>
FACE=nome [,nome] [,nome] L'attributo FACE imposta il carattere utilizzato e questo deve
trovarsi già installato nel computer dell'utente. E' possibile specificare quale carattere
adoperare dando anche delle eventuali alternative separandole da virgole. Se il font scelto non
fosse presente sulla macchina del visitatore si tenterà di visualizzare il secondo font, poi il
terzo, e se nessuno dei tre fosse presente il browser adopererà il suo, quello di default. Meglio,
dunque, evitare fonts particolari o meglio poco comuni per ridurre le probabilità che il testo sia
visualizzato diversamente rispetto alle intenzioni del web-designer.
<FONT FACE="Comic Sans MS">Testo con font Comic Sans MS
COLOR=#rrggbb oppure COLOR= nome in inglese del colore
<FONT COLOR="red">Testo con font di colore rosso
12
SIZE=n oppure SIZE=+n o anche SIZE=-n dove n è un numero compreso fra 1 e 7,
mentre i vari + o - si riferiscono al numero che per default è 3 a meno di qualche variazione
specificata con BASEFONT
<FONT SIZE="-1">Testo con font di dimensione -1 rispetto a quella di default.
Gli attributi possono essere adoperati contemporaneamente
<FONT FACE="Comic Sans MS" COLOR="red" SIZE="-1">
Testo con font Comic di colore rosso ed una dimensione -1
</FONT>
<HR>
L'elemento <HR> Horizontal Rules, altro non è che una linea orizzontale divisoria. Per default
questa linea è ombreggiata e in rilievo. Si possono modificare i vari attributi.
<HR> questo sotto il risultato
attributi di formattazione
quali:
<ALIGN>
<COLOR>
<NOSHADE>
<SIZE>
<WIDTH>
<HR ALIGN=left | right | center>Dove left right center sono allineamento a sinistra, a
destra o centrato
Adoperiamo una linea ridotta del 50% per meglio rendere l'idea
<HR ALIGN="left">
<HR ALIGN="right">
<HR ALIGN="center">
<HR COLOR=nome | #rrggbb>Dove nome è il nome in inglese di uno dei colori possibili,
mentre #rrggbb è il codice numerico esadecimale del colore scelto. L'attributo color è
supportato dai soli browser IE.
<HR COLOR="red">
<HR NOSHADE>Nessuna ombreggiatura.
13
<HR NOSHADE>
<HR SIZE=numero>Dove numero è espresso in pixel e si riferisce allo spessore della
barra.
una riga di spessore 5 pixel
<HR SIZE="50">
<HR WIDTH=numero | percentuale>Senza alcuna specifica la linea orizzontale occupa
tutta la largezza della pagina. Con questo attributo si possono specificare con esattezza la sua
ampiezza, dove numero sono i pixel. Percentuale invece è relativa alla larghezza della
finestra del browser.
una riga di lunhezza 150 pixel
<HR WIDTH="150">
Si possono anche combinare i vari attributi; di seguito è riportato un esempio per ottenere
una riga che sia di colore blu, spessore 3 pixel, che occupi il 70% della finestra alla quale è
destinata e che non sia ombreggiata (la percentuale di ampiezza è relativa alla cornice che la
ospita):
<HR width="70%" color="#0000ff" size="3" noshade>
<P>...</P>
L'elemento <P> specifica un paragrafo di testo, ha come attributo ALIGN che permette di
allineare il testo in quattro possibili modi: CENTER, LEFT, RIGHT, JUSTIFY, rispettivamente
per: Centrato, a sinistra, a destra, giustificato.
<P align="left">Questo paragrafo è allineato a sinistra.</P>
Questo paragrafo è allineato a sinistra.
<P align="right">Questo paragrafo invece è allineato a
destra.</P>
Questo paragrafo invece è allineato a destra.
<P align="center">Questo paragrafo è allineato al centro.</P>
Questo paragrafo è allineato al centro.
<P align="justify">Questo paragrafo è allineato al centro con
giustificazione.</P>
Questo paragrafo invece è allineato al centro con giustificazione,
ovvero con allineamento sia a destra che a sinistra; per fare
14
questo il comando aggiunge in automatico degli spazi fra le
parole.
<B>...</B>
L'elemento <B> specifica un blocco di testo da mostrare in grassetto (bold). Risultato simile si
ottiene anche con <STRONG>...</STRONG>
<U>...</U>
L'elemento <U> specifica un blocco di testo da mostrare sottolineato (underline).
<I>...</I>
L'elemento <I> specifica un blocco di testo da mostrare in corsivo (italic). Risultato simile si
ottiene anche con <EM>...</EM>
Gli elementi possono essere fra loro nidificati, combinando i vari attributi, per esempio è
possibile scrivere “parola” in modo marcato, inclinato e sottolineato:
Questa <U><I><B> Parola </B></I></U> è sottolineata, in grassetto e in corsivo.
Questa parola Parola è sottolineata, in grassetto e in corsivo.
<PRE>...</PRE>
L'elemento <PRE> specifica un blocco di testo preformattato, cioè a larghezza e spaziatura
fissa. Attenzione, talmente fissa che non torna neppure a capo se non con il comando <br>.
<PREQuesto è un testo preformattato che manterrà una certa spaziatura indipendentemente
dai vari parametri di pagina </PRE>
Questo è un testo preformattato che manterrà una certa spaziatura
indipendentemente dai vari parametri di pagina
15
Ancore o Links
Le ancore
Una pagina senza ancore (link) non è un ipertesto. La forza delle pagine web è proprio
quella di agganciare ed essere a loro volta agganciate alle altre pagine rendendo tutta la rete
un unico documento. L’effetto di un click su un link potrebbe essere semplicemente un cambio
pagina o l'inizio dello scaricamento di un file, o l'apertura del programma predefinito di posta
elettronica per l'invio mail. Tutte queste azioni sono gestite dal tag ancora <A> di sicuro uno
dei tags più importanti di HTML.
<A>...</A>
L'elemento <A> necessita di uno dei due attributi possibili, e cioè NAME o HREF, da solo infatti
non serve a nulla. Vediamo questi due attributi:
NAME
L'attributo NAME serve per creare una specie di etichetta, questa viene collocata nel punto
esatto in cui è stata creata, sarà poi possibile richiamarla con l'elemento <A> seguito
dall'attributo HREF. In questo modo anziché richiamare una pagina richiameremo quel punto
preciso dove si trova l'etichetta. Con NAME si crea un punto nel documento e con
HREF="#nome" si raggiunge quel punto, praticamente un collegamento ipertestuale che
anziché richiamare una nuova pagina richiama un punto della pagina corrente.
Vediamo un esempio:
<A name="inizio"></A>
Così facendo si crea un'etichetta con nome inizio
L'etichetta risulterà essere completamente trasparente alla pagina web, non si vedrà nulla a
video. Fatto questo non resta che richiamarla da qualsiasi altra parte del documento o da
qualsiasi altra pagina web, il link sposterà la visualizzazione in questo punto preciso.
HREF
L'attributo HREF (Hypertext REFerence) all'interno dell'elemento <A> trasforma in un
collegamento ipertestuale il testo o l'immagine che segue fino alla chiusura dell'elemento con
</A>.
Generalmente il testo o la cornice dell'immagine diventa di colore blu sottolineato salvo diverse
impostazioni volute all'interno dell'elemento <body>. Vediamo quali sono le diverse forme per
questo attributo:
Questo simbolo # (pound o cancelletto) seguito dal nome che è stato assegnato con
l'attributo NAME permette di saltare nel punto esatto in cui l'etichetta è stata posizionata.
Vediamo un esempio pratico:
16
<A HREF=”#inizio"> Vai a inizio pagina </A>
http:// questo tipo di ancora è senza dubbio la più adoperata serve per richiamare altre
pagine. E' sufficiente specificare l'intero percorso. Vediamo un esempio pratico:
<A HREF="http://www.design.unifi.it/prova"> Sito Internet del Corso di Laurea in Disegno
Industriale</A>
mailto: questo tipo di ancora serve per inviare un’email; oltre al destinatario è possibile
impostare anche il subject della mail. Questo collegamento richiama il programma client di
posta predefinito. Vediamo un esempio pratico:
<A HREF="mailto:[email protected]?subject=Richiesta informazioni"> Contatta un referente
del Corso di Laurea </A>
Queste le principali altre forme ammesse dall'attributo HREF:
<A HREF="pagina.htm">Realizza un collegamento ad una pagina che si trova nella stessa
dir
<A HREF="http://..."> Realizza un collegamento ad una pagina che si trova in un server
web
<A HREF="ftp://..."> Realizza un collegamento di tipo FTP
<A HREF="gopher://..."> Realizza un collegamento ad un server gopher
<A HREF="mailto:..."> Realizza un collegamento al client di posta elettronica
<A HREF="news:..."> Realizza un collegamento a NewsGroup Usenet
17
Immagini
Le immagini Cosa sarebbe una pagina Web senza immagini? Gran parte dell’enorme
successo riscosso dal Web a danno delle precedenti tecniche a carattere unicamente testuale
(es. Gopher) deriva proprio dalla semplicità di gestione dei contenuti grafici offerta da tale
tecnologia. I formati di immagine supportati dal WWW sono variano a seconda del browser
adottato. I formati GIF (max 256 colori, molto indicato per grafici e disegni) e JPEG (milioni di
colori, alta compressione delle immagini con qualità fotorealistica; adottato oggi anche dalla
quasi totalità delle fotocamere in commercio), sono quelli riconosciuti maggiormente. Una
menzione a parte dev’essere riservata al formato PNG. Il formato PNG (Portable Network
Graphics) è un formato di file grafico nato nel lontano 1995 e diventato una raccomandazione
W3C nel 1996. È nato come una valida alternativa al formato GIF, dato che quest'ultimo a quei
tempi si presentava coperto da brevetto (ora scaduto). Il formato PNG si rivela da subito
migliore del GIF: libero, una maggiore compressione, una capacità di rappresentazione di colori
più ampia e soprattutto trasparenza variabile. Le immagini GIF hanno infatti una trasparenza
binaria (ogni singolo pixel può essere totalmente trasparente o totalmente coprente) mentre le
PNG oltre alla trasparenza binaria, supportano una trasparenza su 256 livelli almeno. Il
formato PNG si rivela competitivo anche rispetto al JPEG: infatti le PNG, come le GIF, usano
una compressione loseless, ossia senza perdita di informazione. La maggior parte dei
programmi di grafica riesce a salvare immagini PNG, con diverse opzioni. Uno degli usi ideali
delle PNG per le sue caratteristiche di compattezza, trasparenza (in inglese alpha) e correzione
cromatica (gamma) è senz'altro la grafica orientata al web. Tuttavia Internet Explorer
aggiunge il supporto parziale delle PNG solo con la versione 5.5, uscita nel 2000. Ad oggi non è
ancora in grado visualizzare correttamente in maniera nativa la trasparenza variabile. Prima di
adottare tale formato file è dunque importante tener conto di tale limitazione del browser di
gran lunga più diffuso al mondo.
<IMG...>
L'elemento <IMG> necessita di attributi, di cui uno necessariamente obbligatorio: SRC. A
differenza di molti altri elementi HTML, questo non ha bisogno di essere concluso dallo stesso
elemento preceduto dallo slash </IMG>. vediamo i possibili attributi:
ALIGN----------------------ALT
BORDER
ISMAP
LOWSRC
SRC
VSPACE
HSPACE
WIDTH
HEIGHT
USEMAP
left
right
top
texttop
middle
absmiddle
baseline
bottom
absbottom
ALIGN
L'attributo align permette di specificare l'allineamento dell'immagine rispetto alla riga di testo
18
successiva. I valori ammessi sono : left, right, top, texttop, middle, absmiddle, baseline,
bottom e absbottom. I due valori left e right fanno si che l'immagine diventi di tipo flottante,
vediamo come:
ALIGN=left Allinea l'immagine sul bordo sinistro della finestra di visualizzazione del
browser, il testo che segue circonda la parte destra dell'immagine.
Allineamento di tipo left, il
contorno immagine è stato
riempito volutamente per
meglio risaltare questo tipo
di allineamento. Provate a
variare le dimensioni della finestra del browser
per meglio capirne l'allineamento.
ALIGN=right Allinea l'immagine sul bordo destro della finestra di visualizzazione del
browser, il testo che segue circonda la parte sinistra dell'immagine.
Allineamento di tipo right il
contorno immagine è stato
riempito volutamente per
meglio risaltare questo tipo
di allineamento. Provate a
variare le dimensioni della finestra del browser
per meglio capire l'allineamento.
ALIGN=top Allinea il testo che segue l'immagine con la parte superiore dell'elemento più
alto nella riga.
ALIGN=texttop Allinea il testo che segue l'immagine con la parte superiore del testo più
alto nella riga.
ALIGN=middle Allinea la linea di base della riga corrente con la parte centrale
dell'immagine.
ALIGN=absmiddle Allinea la parte centrale della riga corrente con la parte centrale
dell'immagine.
ALIGN=baseline Allinea la parte inferiore dell'immagine con la linea di base della riga
corrente di testo.
ALIGN=bottom Allinea il testo che segue l'immagine con la parte inferiore dell'elemento
più basso nella riga di testo.
ALIGN=absbotton Allinea la parte inferiore dell'immagine con la parte inferiore della riga
di testo corrente.
Alcuni attributi sembrano gli stessi di altri, è vero, molto dipende dal tipo di browser
adoperato, dalle dimensioni della finestra e da qualche altra cosa ancora. L'importante era farsi
un'idea, ognuno di noi adopererà quello che riterrà più adatto alle proprie esigenze.
19
ALT
L'attributo alt (alternativa alla grafica), permette di specificare un testo per quei browser non
grafici. Viene di solito adoperato per descrivere l'immagine, anche a beneficio dei non vedenti
per rispettare le caratteristiche di accessibilità del sito, ma potrebbe essere adoperato per
qualsiasi altro motivo che necessiti una descrizione; il testo apparirà nel caso in cui l'immagine
non venisse caricata o quando il puntatore del mouse sarà portato sopra la stessa. La sintassi
sarà dunque: <img src=”nomefile.jpg” alt=”Questa è la descrizione dell’immagine”>
BORDER
L'attributo border permette di specificare lo spessore del bordo. Molto utile impostare
border=0 quando l'immagine fa parte di un collegamento ancora e non si vuole visualizzare il
bordino azzurro di default, tipico delle immagini facenti parte di un link.
Questo il codice:
<img src="tarta.jpg" border="3">
Si noti lo spessore del bordo dell'immagine che in questo caso è stato
impostato come spessore 3.
ISMAP
L'attributo ISMAP (is map) ovvero è una mappa, può essere adoperato in modo corretto
soltanto nel caso in cui il server HTTP ha installato un certo tipo di software. Per le immagini
mappate si adopera in realtà ormai USEMAP che funziona dal lato client (cioè sul vostro
browser).
LOWSRC
L'attributo lowsrc, non supportato da tutti i browser, permette di adoperare due immagini nello
stesso spazio, quella definita con LOWSRC sarà caricata subito, trattandosi di un'immagine a
bassa risoluzione, in alcuni casi anche in bianco e nero, servirà come intrattenimento fino a
caricamento pagina ultimato, dopodichè sarà automaticamente sostituita con l'immagine vera
e propria definita con SRC.
Questa la sintassi:
<img src="tarta.jpg" lowsrc="tartabn.jpg">
I browser che non supportano questo attributo visualizzeranno la sola
immagine dichiarata in SRC.
20
SRC
L'attributo SRC è indispensabile per l'elemento IMG. Permette di specificare il nome
dell'immagine da visualizzare se questa si trova nella stessa cartella (dir) in cui è presente la
pagina che la richiama. E' possibile specificare anche percorsi (path) fatti da cartelle (directory)
e
sottocartelle
(subdirectory)
compresi
gli
URL
completi
da
altri
siti.
Il tag IMG SRC può essere adoperato anche all'interno del tag àncora e potrà essere cliccato
come un normale link testo.
Questa la sintassi:
<img src="nome_immagine.jpg">
o anche
<img src="http://www.weblink.it/nome_immagine.jpg">
VSPACE , HSPACE
L'attributo VSPACE così come l'attributo HSPACE vengono adoperati nelle immagini flottanti,
cioè quelle immagini allineate con left e right; servono ad impostare rispettivamente degli
spazi verticali e orizzontali fra il testo e l'immagine stessa, o anche fra l'immagine e la sua
cornice.
Questa la sintassi:
<img src="tarta.jpg"
hspace="50">
spazio orizzontale di 50 pixel.
Questa la sintassi:
<img src="tarta.jpg" vspace="50">
spazio verticale di 50 pixel.
Questa la sintassi:
<img src="tarta.jpg"
hspace="50" vspace="50">
spazio orizzontale e spazio
verticale entrambi di 50 pixel.
21
WIDTH, HEIGHT
L'attributo WIDTH, così come l'attributo HEIGHT, vengono adoperati per specificare le
dimensioni orizzontale e verticale dell'immagine; se omessi il browser impiegherà più tempo
per calcolare l'area sulla quale disporre eventuale testo, per questo motivo conviene impostare
sempre questi valori, visto poi che sono noti. Si possono impostare anche valori diversi da
quelli reali nel caso in cui si volesse adattare l'immagine a certe dimensioni, compreso
un'eventuale distorsione.
Questa la sintassi:
<img src="tarta.jpg" width="114"
height="75">
ho impostato le dimensioni orizzontali e
verticali dell'immagine.
potrei decidere di modificare l'immagine
assegnando valori diversi da quelli reali, come in
questo caso:
<img src="tarta.jpg" width="60" height="35">
ho impostato le dimensioni orizzontali a 60 px e verticali
a 45 px.
Potrei deformare l'immagine assegnando valori
sproporzionati, come in questo caso:
<img src="tarta.jpg" width="35" height="60">
ho impostato dimensioni orizzontali 50 px e
verticali 100 px.
USEMAP
L'attributo USEMAP viene adoperato per indicare che l'immagine è una mappa d'immagine sul
lato client. Cosa significa mappa di immagini? E' possibile suddividere un'immagine in diverse
aree tipo una mappa ed associare ad ognuna di queste aree la possibilità di richiamare un link
diverso. In pratica la stessa immagine usata come link è in grado di richiamare links diversi a
seconda del punto in cui viene clickata. Se l'argomento USEMAP inizia con un simbolo # si
assume che la descrizione della mappa si trovi nello stesso documento in cui si trova il tag
IMG; risulta infatti possibile avere la definizione della mappa anche su un file di testo separato.
Questo un esempio:
<img src="tarta.jpg" USEMAP="map.htm#mappa1" >
Questo codice utilizza la mappa descritta come mappa1 in map.htm, per il file di immagine
tarta.jpg
22
Le aree attive dell'immagine vengono descritte adoperando i tags MAP e AREA
<MAP>...</MAP>
L'elemento MAP descrive ciascuna delle aree dell'immagine a cui è stata assegnata una mappa,
e indica la posizione del documento da scaricare quando viene attivata l'area definita.
Questo un esempio:
<MAP NAME="nome">
<AREA [SHAPE="forma"] COORDS="x,y,..." [HREF="riferimento"] [NOHREF] >
</MAP>
dove:
nome specifica il nome della mappa in modo che USEMAP possa fare riferimento ad essa.
forma
fornisce
la
forma
dell'area
specificata
es.
RECT
per
rettangolo.
Nel caso si omettesse l'attributo SHAPE viene assunto SHAPE="RECT" per default; altre forme
possibili sono CIRCLE e POLY. L'attributo COORDS fornisce le coordinate della forma utilizzando
1 pixel dell'immagine come unità. Per un rettangolo le coordinate vengono fornite - sinistro,
alto, destro, basso. Se per esempio si volesse specificare l'intera area di una immagine 100 x
100 pixel le coordinate saranno:"0,0,99,99"
HREF richiama il link ad esso associato NOHREF indica che eventuali clic in questa zona non
richiameranno alcun link.
<AREA>
L'elemento AREA specifica le diverse aree, nel caso in cui due aree si intersecano quella che
appare per prima nella definizione avrà prevalenza.
Vediamo un esempio per riassumere il tutto:
<MAP NAME="tartaruga">
<AREA SHAPE="RECT" COORDS="32,39,78,63" HREF="interno.htm">
<AREA SHAPE="RECT"COORDS="13,2,99,37" HREF="guscio.htm">
</MAP>
<img src="tarta.jpg" USEMAP="tartaruga">
Esistono, ovviamente, moltissimi programmi in grado di generare automaticamente mappe
da un'immagine. Esistono anche editors HTML in grado di generare automaticamente codice
per mappe cliccabili, sarà sufficiente tracciare le aree da cliccare, esattamente come si fa
quando si adopera un programma di grafica.
23
4. Le linee guida sull'accessibilità dei contenuti Web (WCAG 1.0).
Le WCAG 1.0 sono organizzate in 14 linee guida. In appendice al documento, le check list
identificano concretamente quali controlli sono associati a ciascun livello di priorità. È importante
che chiunque sia interessato alla realizzazione di contenuti Web accessibili consulti le linee guida,
nell'originale o tradotte, e la check list associata. Unicamente con un fine illustrativo, e anche per
convincere il lettore del fatto che si tratta per lo più di misure di buon senso, elenchiamo i temi
affrontati da ciascuna linea guida.
1.
Fornire alternative equivalenti al contenuto visivo e acustico. Per esempio, se in una pagina
è presente un'immagine, è importante che il suo contenuto venga descritto anche per mezzo di
un testo scritto, in modo che, per esempio, un cieco possa comunque capire di cosa si tratta.
Tecnicamente, questo può essere fatto, ad esempio, utilizzando l'elemento ALT di HTML.
2.
Non fare affidamento unicamente sul colore. È opportuno evitare che un'informazione
rilevante sia espressa da un colore o dal contrasto tra colori. Se così non è, l'informazione non
è accessibile né da chi ha problemi a percepire i colori, né da chi accede al contenuto per
mezzo di un terminale non a colori.
3.
Utilizzare le annotazioni (markup) di HTML e i fogli di stile e farlo in maniera appropriata.
L'idea di fondo è che è opportuno tenere distinte le informazioni di una pagina dal modo in cui
queste vengono presentate graficamente, sia evitando di usare i markup di HTML in modo
improprio per ottenere una certa presentazione grafica, sia utilizzando i fogli di stile. In questo
modo si minimizzano i problemi che possono incontrare diversi tipi di software specializzati
utilizzati per accedere ai contenuti del Web da parte di portatori di vari tipi di disabilità. Più
avanti noteremo che la separazione del contenuto informativo del Web dalla sua presentazione
grafica svolge un ruolo anche all'interno della generale visione del W3C dell'architettura del
Web.
4.
Chiarire attraverso il markup l'utilizzo della lingua. Un cambio di lingua - per esempio,
dall'italiano all'inglese - all'interno di una pagina deve essere indicato in modo opportuno, per
evitare, per esempio, che i sintetizzatori vocali utilizzati dai ciechi incontrino problemi di
interpretazione.
5.
Creare tabelle che si "trasformano elegantemente". Le tabelle costituiscono spesso un
problema per i lettori di schermo. Per questo, è importante che siano utilizzate solo quando
servono realmente, e in modo da facilitare la lettura sequenziale dell'informazione che
contengono.
6.
Assicurarsi che le pagine che utilizzano nuove tecnologie si "trasformino elegantemente".
Nell'utilizzo delle tecnologie si incontra spesso un problema di "compatibilità all'indietro". Nel
caso specifico, chi utilizza nuove tecnologie per creare contenuti Web dovrebbe accertarsi che,
per esempio, versioni più vecchie dei browser siano in grado di rappresentare in modo
opportuno i contenuti che creano.
7.
Permettere agli utenti il controllo dei contenuti dipendenti dal tempo. Elementi dinamici,
come frasi lampeggianti, o a scorrimento, possono creare problemi di vario genere agli utenti.
È importante che, laddove questi elementi sono presenti, l'utente abbia la possibilità di
arrestarne il movimento e/o il cambiamento.
8.
Assicurare l'accessibilità diretta agli utilizzatori di interfacce 'embedded'. In sostanza, si
tratta di accertarsi che l'intero insieme di interfacce utenti (incluso, per esempio, gli script e gli
applet) per l'accesso a un certo contenuto Web sia accessibile.
9.
Progettare all'insegna dell'indipendenza dallo strumento di input. Significa permettere
all'utente di accedere al contenuto per mezzo di una varietà di strumenti di input - per
esempio, sia il mouse che la tastiera. In questo modo, si aumenta la probabilità che un disabile
abbia a disposizione uno strumento di input per lui adeguato.
10.
Usare soluzioni ad interim. Ancora una volta, si tratta di un problema di compatibilità tra
tecnologie. Sino a quando gli user agent non avranno incluse determinate caratteristiche di
accessibilità, è importante che i contenuti ne tengano conto, evitando elementi che solo in
futuro si presenterebbero come adeguatamente accessibili.
11.
Usare le tecnologie del W3C. Queste sono sviluppate tenendo in considerazione esplicita le
loro caratteristiche di accessibilità, e anche per questo motivo devono essere privilegiate.
12.
Fornire informazioni di contesto e di orientamento. Per facilitare l'orientamento all'interno di
contenuti Web, soprattutto da parte di persone con problemi cognitivi, è importante che le
informazioni siano dotate di riferimenti chiari e espliciti, per mezzo di titoli, etichette, eccetera.
13.
Fornire chiari meccanismi di navigazione. Parimenti, la navigazione di un ipertesto deve
essere favorita, per mezzo, ad esempio, di un utilizzo appropriato dei collegamenti ipertestuali
e di una chiara struttura di menù.
24
14.
Garantire documenti chiari e semplici. La semplicità è importante anche nel linguaggio, ed è
particolarmente apprezzata, oltre che da chi ha problemi cognitivi, da chi non conosce
perfettamente la lingua in cui è scritto un testo.
Se questi sono i temi affrontati dalle linee guida WCAG 1.0, la checklist ad essa associata precisa i
punti per la valutazione dell'accessibilità dei contenuti Web, distinguendo tra tre diversi livelli di
priorità (primo, secondo, e terzo), a cui corrispondono tre livelli di aderenza alle linee guida rispettivamente, dal più debole al più forte, "A", doppia "A" e tripla "A". Per esempio, tra le azioni di
"priorità 1" vi è "fornire un elemento testuale equivalente a ogni elemento non testuale" (per
esempio, descrivere a parole ogni figura). Si tratta di una priorità essenziale, dato che, nel caso si
tratti di informazione visuale, aiuta i ciechi perché il testo può essere letto da un sintetizzatore
vocale, o per mezzo di una barra braille; nel caso si tratti di informazione audio, permette l'accesso
a chi ha problemi di udito; aiuta inoltre la generalità degli utenti. Tra le azioni di "priorità 2", quindi
meno importanti delle precedenti, vi è: "usa i fogli di stile per determinare la presentazione grafica
della pagina. Tra le azioni di "priorità 3", quelle relativamente meno importanti, vi è: "identifica il
linguaggio principale con cui è scritto un documento".
25
Scarica

Dispense del corso di Telematica – C: Parte IV