[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


138. HTML: aspetti generali

HTML sta per HyperText Markup Language e in pratica è un formato SGML per i documenti della rete che fa uso di un DTD particolare: HTML appunto. La formattazione di un documento HTML non può mai essere valutata perfettamente in anticipo, perché dipende da diversi fattori:

Lo standard HTML è tale per cui tutti (o quasi) i programmi utilizzabili per la lettura di tali documenti sono in grado di cavarsela. Ma questo risultato minimo è ben lontano dall'esigenza di costruire qualcosa che tutti possano vedere più o meno nello stesso modo. Per questo, quando si costruisce un documento HTML, occorre pensare all'utenza a cui è destinato, in modo da decidere quali caratteristiche possono essere utilizzate e quali invece è meglio scartare per evitare inutili problemi di lettura.

L'HTML nasce all'inizio degli anni 1990, abbinato in particolare al primo navigatore: Mosaic. Da quel momento a oggi il formato HTML ha subito diversi aggiornamenti; si ricorda in particolare la versione 2.0 del 1995 e la versione 3.2 del 1997. Allo stato attuale, lo sviluppo di questo standard è condotto da W3C (World Wide Web Consortium) e in questo capitolo si fa riferimento alla versione 4.

Si potrebbe dire che l'HTML abbia ricevuto un successo iniziale superiore alle sue possibilità tecniche, cosa che ha causato una proliferazione di varianti. In pratica, chi ha realizzato i programmi di navigazione, volendo offrire effetti speciali che non potevano essere ottenuti altrimenti, ha definito nel tempo una propria estensione allo standard di partenza (e anche a quelli successivi). Questo però ha creato e crea ancora oggi una grande confusione sul modo corretto di scrivere un documento in formato HTML. Questo problema si aggrava anche di più nel momento in cui questi navigatori non sono in grado di gestire correttamente gli standard indipendenti.

Lo spirito alla base dello sviluppo dell'HTML da parte del W3C, come ente indipendente, è quello di ottenere un formato multimediale-ipertestuale completo, adatto per la lettura attraverso qualunque tipo di mezzo: dal terminale tattile braille al documento stampato. Le estensioni proprietarie di questo standard si sono rivolte principalmente all'aspetto visuale e scenografico di questo formato, trascurando le altre esigenze. Scrivere un documento «puro» in HTML è un'arte raffinata, che attualmente non è conosciuta abbastanza. In generale, maggiori sono i contenuti e le esigenze di divulgazione, minori devono essere le pretese estetiche.

La documentazione di riferimento per tutto ciò che riguarda l'HTML è quella offerta dal W3C: http://www.w3.org, in particolare http://www.w3.org/TR/.

138.1 HTML e SGML

L'HTML è un linguaggio di composizione basato sull'SGML (si veda quando descritto a partire dal capitolo 131). Come tale, un documento HTML inizia sempre con la dichiarazione del DTD; poi tutto il documento viene racchiuso nell'elemento principale di questa struttura:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
    ...
    ...
    ...
</HTML>

Purtroppo, la maggior parte dei programmi di navigazione o di composizione per il formato HTML non è in grado di comprendere tutte le regole dell'SGML, per cui occorre evitare di utilizzare alcune delle sue particolarità. In particolare bisogna evitare:

Il fatto che l'HTML sia definito da un DTD, permette di verificare la sua correttezza formale, anche se le regole stabilite nel DTD non sono sufficienti a definire la sintassi completa. Per poter verificare la correttezza formale di un documento HTML, oltre agli strumenti di convalida, cioè il pacchetto SP, occorre procurarsi il DTD e le sue estensioni riferite alle entità generali, quelle che permettono di utilizzare le macro per le lettere accentate e i simboli speciali.

Il DTD dell'HTML 4.01 e la definizione delle entità standard a cui questo fa riferimento si trovano presso http://www.w3.org/TR/html4/. Per la precisione si distinguono tre DTD alternativi, corrispondenti ai file `strict.dtd', `loose.dtd' e `frameset.dtd', assieme a tre gruppi di entità riferite a caratteri speciali, corrispondenti ai file `HTMLlat1.ent', `HTMLspecial.ent' e `HTMLsymbol.ent'. Si può realizzare un catalogo SGML per l'analisi locale di un documento del genere nel modo seguente:

OVERRIDE YES

PUBLIC "-//W3C//DTD HTML 4.01//EN"		strict.dtd
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"	loose.dtd
PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"	frameset.dtd
PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML"	HTMLlat1.ent
PUBLIC "-//W3C//ENTITIES Special//EN//HTML"	HTMLspecial.ent
PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML"	HTMLsymbol.ent

Con questo catalogo, una copia dei file che sono stati elencati prima deve trovarsi nella directory corrente. Si noti l'istruzione iniziale, `OVERRIDE YES', con la quale si vuole permettere la dichiarazione del DTD come è già stato mostrato:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

In questo modo, se è disponibile un collegamento con la rete esterna, si utilizza direttamente il DTD originale, presso `www.w3.org', mentre se questa possibilità manca, si fa riferimento ai file locali attraverso le specifiche del catalogo.

Nell'esempio seguente si utilizza il programma `nsgmls' (del pacchetto SP) supponendo in particolare che il catalogo sia contenuto nel file `catalogo'; il file da verificare viene indicato come `mio_file.html'. Il catalogo e il file da controllare si intendono collocati nella directory corrente.

cat mio_file.html | nsgmls -s -c catalogo

È il caso di ricordare che alcune distribuzione GNU/Linux, in particolare Debian, predispongono un pacchetto apposito contenente i DTD più comuni riferiti alle varie versioni dell'HTML, comprese le estensioni proprietarie, assieme alle relative entità standard. Naturalmente, il tutto è organizzato in un catalogo unico che va eventualmente ad aggiornare il catalogo di sistema (dovrebbe trattarsi del file `/etc/sgml.catalog', oppure del file `/usr/lib/sgml/catalog'). Il nome di questo pacchetto potrebbe essere `sgml-data*'.

Oltre alla verifica in base al DTD sarebbe opportuno sapere leggere il contenuto del DTD stesso. A questo proposito è da notare il fatto che nel manuale che descrive le specifiche HTML di W3C, si fa spesso riferimento alle caratteristiche degli elementi attraverso lo schema offerto dalla dichiarazione relativa nel DTD. In effetti, ciò permette di rendere molto chiara e precisa la descrizione che ne viene fatta subito dopo.

138.1.1 Attributi comuni attraverso le entità parametriche

Il DTD dell'HTML 4.01 fa un uso massiccio di entità parametriche e questo può disorientare inizialmente. In generale basta ricordare che qualunque cosa nella forma `%<nome>;' è una macro che si espande in una stringa. La dichiarazione di queste entità parametriche avviene nella parte iniziale del DTD, attraverso istruzioni del tipo:

<!ENTITY % <nome> "<stringa>">

È interessante notare l'utilizzo di entità parametriche per fare riferimento agli attributi degli elementi. Infatti, quasi tutti gli elementi dell'HTML 4.01 prevedono l'uso di attributi, per cui si è ritenuto opportuno classificarli all'interno di entità parametriche. In particolare è importante individuarne due molto importanti:

<!ENTITY % coreattrs
 "id          ID             #IMPLIED  -- document-wide unique id --
  class       CDATA          #IMPLIED  -- space-separated list of classes --
  style       %StyleSheet;   #IMPLIED  -- associated style info --
  title       %Text;         #IMPLIED  -- advisory title --"
  >

<!ENTITY % i18n
 "lang        %LanguageCode; #IMPLIED  -- language code --
  dir         (ltr|rtl)      #IMPLIED  -- direction for weak/neutral text --"
  >

Si può osservare che anche la dichiarazione di queste entità è sottoposta all'interpretazione di altre macro; queste riguardano il tipo di contenuto relativo agli attributi.

La macro `%coreattrs;' serve a individuare un gruppo di attributi disponibili nella maggior parte degli elementi:

La macro `%i18n;' serve invece a definire ciò che riguarda la localizzazione:

Gli attributi a cui si fa riferimento attraverso le macro `%coreattrs;' e `%i18n;' sono così importanti che si trova un'altra entità parametrica che le raccoglie per comodità:

<!ENTITY % attrs "%coreattrs; %i18n; %events;">

La macro `%events;' si riferisce a una serie di attributi legati a «eventi», ovvero azioni che si compiono con il mouse o con la tastiera.

Si osservi, a titolo di esempio, la dichiarazione dell'elemento `P', dove gli attributi sono tutti quelli più comuni, rappresentati dalla macro `%attrs;', ovvero dalla somma di `%coreattrs;', `%i18n;' e `%events;':

<!ELEMENT P - O (%inline;)*            -- paragraph -->
<!ATTLIST P
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

138.1.2 Classificazione fondamentale degli elementi

All'interno di un documento HTML si distinguono due gruppi di elementi fondamentali: quelli che rappresentano dei blocchi e quelli che servono a inserire qualcosa all'interno di una riga di testo normale. Questa suddivisione corrisponde a due macro: `%block;' e `%inline' rispettivamente.

Per fare un esempio, l'elemento `P' (paragrafo) è un «blocco», mentre l'elemento `EM' (enfasi) è un componente interno a una riga di testo.

Questa classificazione semplifica molto la dichiarazione degli elementi, come nel caso dell'elemento `P', già visto, il cui contenuto è semplicemente tutto ciò che va inserito nelle righe di testo:

<!ELEMENT P - O (%inline;)*            -- paragraph -->

Alcuni elementi di un documento HTML sono ambigui, nel senso che possono contenere sia blocchi che testo. Questa ambiguità viene dichiarata attraverso la macro `%flow;' che rappresenta la scelta alternativa tra un blocco o una riga di testo:

<!ENTITY % flow "%block; | %inline;">

A titolo di esempio si osservi la dichiarazione dell'elemento `LI' che rappresenta la voce di un elenco puntato o numerato:

<!ELEMENT LI - O (%flow;)*             -- list item -->

138.2 Stili

Le estensioni proprietarie dell'HTML hanno portato questo linguaggio di composizione a una proliferazione di dialetti, a causa dell'esigenza di trasferire anche le informazioni sull'aspetto finale della composizione, che in origine non erano state prese in considerazione. L'HTML 4.* standard cerca di porre rimedio a questa carenza, con l'uso di una serie di attributi che però non sono disponibili nella versione «ristretta», ciò proprio a indicare che si tratta di estensioni sconsigliate.

La soluzione migliore per risolvere il problema sembra essere l'abbinamento di uno stile, che può essere dichiarato all'interno del file HTML stesso, attraverso l'elemento `STYLE', attraverso l'attributo `STYLE', oppure in un file esterno, richiamandolo con l'elemento `LINK' (verrà mostrato tra poco).

L'HTML non presuppone il formato in cui può essere realizzato lo stile. È comune l'uso di stili in formato CSS (Cascading Style Sheet) e per farvi riferimento si indica il tipo `text/css'.

Per il momento, non viene spiegato in che modo si scrivono le direttive in un foglio di stile CSS. Intuitivamente, il lettore può comprendere che la direttiva seguente serve a colorare in blu il contenuto degli elementi H1:

H1 { color: blue }

Inoltre, la direttiva seguente serve per fare in modo che il contenuto dell'elemento `P' abbia carattere di 12 punti di colore rosso:

P { font-size: 12pt; color: red }

Si osservi che la stessa cosa avrebbe potuto essere scritta nel modo seguente:

P {
    font-size:	12pt;
    color:	red;
}

Per definire questi stili all'interno di un documento HTML, senza fare uso di un file esterno, si potrebbe agire nel modo seguente, attraverso l'uso dell'elemento `STYLE':

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
    <TITLE>Esempio</TITLE>
    <STYLE TYPE="text/css">
	H1 { color blue }
	P {
	    font-size:	12pt;
	    color:	red;
	}
    </STYLE>
</HEAD>
<BODY>
    ...
    ...
    ...
</BODY>
</HTML>

Si comprende che il testo contenuto nell'elemento `STYLE' non deve interferire con l'HTML e quindi non può contenere simboli che possano risultare ambigui. Questo problema riguarda naturalmente il linguaggio con cui è realizzato lo stile; nel caso del formato CSS non dovrebbe porsi alcun problema. Tuttavia, qualche programma utilizzato per la navigazione, potrebbe non riconoscere l'elemento `STYLE', arrivando a riprodurre il testo che rappresenta in realtà lo stile. Per evitare questo problema si può circoscrivere la cosa all'interno di un commento SGML:

<STYLE TYPE="text/css">
    <!--
	H1 { color blue }
	P {
    	    font-size:	12pt
    	    color:	red
	}
    -->
</STYLE>

Volendo agire direttamente in un elemento singolo, si può utilizzare l'attributo `STYLE', ma in tal caso si possono usare esclusivamente direttive CSS. Nel caso di un elemento `P' isolato che deve avere un carattere di 12 punti ed essere colorato in rosso, lo si può dichiarare nel modo seguente:

<P STYLE="font-size: 12pt; color: red">Attenzione!</P>

Probabilmente, il modo più elegante di abbinare uno stile a un documento HTML è quello di aggiungere un file esterno. Nell'esempio seguente si include lo stile corrispondente al file `stile.css':

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
    <TITLE>Esempio</TITLE>
    <LINK REL="stylesheet" TYPE="text/css" HREF="stile.css">
    ...
</HEAD>
...
</HTML>

È chiaro che dipende dal programma di navigazione la capacità o meno di conformarsi allo stile. In generale, lo standard CSS sembra essere quello che ha più probabilità di affermarsi.

138.3 Struttura di un documento HTML

Il documento HTML è contenuto tutto nell'elemento omonimo: `HTML'. Nel caso della definizione «rigorosa» (il DTD `strict.dtd') questo si scompone in due elementi fondamentali, `HEAD' e `BODY', che rappresentano rispettivamente l'intestazione e il corpo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
    <TITLE>Titolo della pagina</TITLE>
</HEAD>
<BODY>
    ...
    <!-- Corpo del documento -->
    ...
</BODY>
</HTML>

In generale, è conveniente annotare la lingua principale del documento, attraverso l'attributo `LANG' da collocare nel marcatore di apertura dell'elemento `HTML':

<HTML LANG="it">

Per la precisione, il codice che definisce il linguaggio viene indicato secondo la sintassi seguente:

<codice-principale>[-<codice-secondario>]

In pratica, la prima parte, quella che appare prima del trattino di separazione, indica la lingua, di solito attraverso il codice ISO 639, mentre la seconda parte indica l'area nazionale, secondo lo standard ISO 3166, che a sua volta può implicare delle varianti nel linguaggio. La tabella 138.3 riporta alcuni codici che rappresentano il linguaggio attraverso lo standard ISO 639.

In generale, un documento di grandi dimensioni realizzato attraverso il formato HTML, richiede la scomposizione dello stesso in più file HTML collegati tra loro da riferimenti ipertestuali. Questa, purtroppo, è una necessità a causa delle limitazioni dei programmi di navigazione.

138.3.1 Intestazione e informazioni supplementari

L'intestazione è una parte del documento HTML che serve per annotare delle informazioni generali. Deve contenere almeno il titolo all'interno dell'elemento `TITLE'. Di solito, la riproduzione di un documento HTML non fa apparire il titolo nel testo del documento, che comunque viene usato per farvi riferimento (per esempio nel segnalibro del programma utilizzato per la sua visualizzazione).

Nell'intestazione, prima o dopo il titolo, può essere conveniente collocare alcune «meta-informazioni», attraverso alcuni elementi `META'. Si tratta di un elemento vuoto, per il quale si utilizza soltanto il marcatore di apertura con l'indicazione di attributi opportuni. In particolare, si possono utilizzare gli attributi seguenti:

Come si intuisce dall'elenco degli attributi più importanti, si può distinguere tra elementi `META' che utilizzano l'attributo `NAME' e altri che usano l'attributo `HTTP-EQUIV'. Le informazioni che si definiscono attraverso elementi `META' con l'attributo `NAME' permettono di indicare informazioni che permettono di qualificare il documento, soprattutto quando questo viene trattato automaticamente da un motore di ricerca; l'attributo `HTTP-EQUIV' permette invece di intervenire a livello del protocollo HTTP (quando il documento viene ottenuto in questo modo), specificando le intestazioni HTTP relative. Si osservi l'esempio seguente:

<HEAD>
    <TITLE>Titolo della pagina</TITLE>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
    <META NAME="Description"    CONTENT="Esempio di una pagina HTML">
    <META NAME="Keywords"       CONTENT="HTML, SGML, Editoria elettronica">
    <META NAME="Author"         CONTENT="P. Pallino ppallino@dinkel.brot.dg">
    <META NAME="Classification" CONTENT="Esempio HTML">
</HEAD>

In particolare, per quanto riguarda il protocollo HTTP, ricevendo questo documento attraverso questo sistema, si otterrà anche l'intestazione HTTP seguente:

Content-Type: text/html; charset=ISO-8859-1

Si noti l'indicazione esplicita dell'insieme di caratteri: ISO 8859-1

Un altro tipo di elemento speciale può apparire all'interno dell'intestazione di un documento HTML; si tratta di `LINK'. Anche questo è un elemento vuoto e serve solo per indicare degli attributi nel marcatore di apertura. Gli attributi più importanti sono:

Trattandosi di un elemento vuoto, collocato nell'intestazione HTML, non è pensato per essere rappresentato nella composizione. Tuttavia, abbinando le parole chiave opportune all'attributo `REV', si stabiliscono una serie di collegamenti utili per ricomporre un documento più grande costituito da più pagine HTML. In pratica, si può dichiarare in modo esplicito come è articolato, in modo che il programma di navigazione o composizione sappia regolarsi. La tabella 138.1 elenca alcune delle parole chiave che possono essere assegnate all'attributo `REV'.

Nome Descrizione
Alternate Una versione alternativa dello stesso documento.
Stylesheet Foglio di stile esterno.
Start Il primo documento di una collezione.
Next Il prossimo documento di una sequenza lineare.
Prev Il documento precedente di una sequenza lineare.
Contents Un documento che funge da indice generale.
Index Un documento che funge da indice analitico.
Glossary Un documento che funge da glossario.
Copyright Un documento che contiene la dichiarazione del copyright.
Chapter Un documento che funge da capitolo in una collezione.
Section Un documento che funge da sezione in una collezione.
Subsection Un documento che funge da sottosezione in una collezione.
Appendix Un documento che funge da appendice in una collezione.
Help Un documento che funge da guida.

Tabella 138.1: Parole chiave tipiche da assegnare all'attributo `REV' dell'elemento `LINK'.

L'esempio seguente mostra parte di un'intestazione di una pagina HTML in cui sono stati usati alcuni elementi `LINK' per definire la relazione con altre pagine che compongono la stessa raccolta:

<HEAD>
    ...
    <LINK REL="Stylesheet" TYPE="text/css" HREF="stile.css">
    <LINK REL="Start" TITLE="inizio" HREF="index.html">
    <LINK REL="Contents" TITLE="indice generale" HREF="indice-generale.html">
    <LINK REL="Prev" TITLE="precedente" HREF="capitolo-6.html">
    <LINK REL="Next" TITLE="successivo" HREF="capitolo-8.html">
    <LINK REL="Index" TITLE="indice analitico" HREF="indice-analitico.html">
</HEAD>

Merita un po' di attenzione l'attributo `MEDIA' che serve a stabilire il mezzo adatto per la lettura del documento relativo. Questo attributo si usa generalmente all'interno di un elemento `LINK' che serve a indicare un foglio di stile esterno; inoltre può essere usato per lo stesso motivo all'interno di un elemento `STYLE'. In pratica, in questo modo, si stabilisce l'abbinamento tra stile e mezzo di lettura. La tabella 138.2 elenca i nomi che si possono assegnare a un attributo `MEDIA'.

Nome Descrizione
screen Schermo per lo scorrimento continuo.
tty Terminale a celle di caratteri o simile.
tv Televisione (bassa risoluzione e altre limitazioni).
projection Proiettore.
handheld Schermi portatili.
print Stampa e simili (composizione impaginata).
braille Terminale a barra braille per i non vedenti.
aural Lettore a sintesi vocale.
all Valido per tutti i tipi di dispositivo.

Tabella 138.2: Parole chiave tipiche da assegnare all'attributo `MEDIA' dell'elemento `LINK' e dell'elemento `STYLE'.

L'esempio seguente mostra in che modo si potrebbero selezionare diversi fogli di stile in base al mezzo utilizzato per la lettura del documento:

<LINK REL="Stylesheet" TYPE="text/css" MEDIA="screen" HREF="stile-schermo.css">
<LINK REL="Stylesheet" TYPE="text/css" MEDIA="tty" HREF="stile-testo.css">
<LINK REL="Stylesheet" TYPE="text/css" MEDIA="braille" HREF="stile-braille.css">

138.3.2 Corpo del documento

Il corpo di un documento HTML è delimitato dall'elemento `BODY' e il suo contenuto è ciò che alla fine viene mostrato nella composizione finale.

La composizione del corpo viene descritta nel capitolo 139.

138.4 Attributi comuni

All'inizio del capitolo si è accennato al fatto che molti elementi condividano un insieme comune di attributi. Vale la pena di descrivere brevemente alcuni di questi.

138.4.1 Linguaggio

Il linguaggio di un elemento viene definito esplicitamente attraverso l'attributo `LANG', a cui viene assegnato solitamente un codice corrispondente allo standard ISO 639. La tabella 138.3 riporta un elenco di questi codici ridotto ad alcune lingue occidentali.

Codice Lingua
fr Francese
it Italiano
ro Rumeno
es Spagnolo
ca Catalano
co Corso
pt Portoghese
da Danese
nl Olandese
en Inglese
de Tedesco
is Islandese
no Norvegese
sv Svedese
fi Finlandese

Tabella 138.3: Alcuni codici dello standard ISO 639 per la definizione della lingua attraverso un codice di due soli caratteri.

In generale può essere conveniente l'utilizzo di questo attributo nell'elemento `HTML', in modo da fissare il linguaggio di tutto il documento. Tuttavia, quando un elemento contiene un testo in un altro linguaggio, conviene annotarlo nello stesso modo.

L'effetto più evidente che potrebbe risultare dalla distinzione in base al linguaggio, è la separazione delle parole in sillabe, per creare una composizione più gradevole.

138.4.2 Codifica

L'attributo `CHARSET' permette di definire esplicitamente l'insieme di caratteri dell'elemento. Come è già stato mostrato, di solito lo si utilizza in un elemento `META' introduttivo allo scopo di definire l'intestazione HTTP relativa:

<HEAD>
    <TITLE>...</TITLE>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
    <!--...-->
</HEAD>

La tabella 138.4 elenca alcuni codici comuni per la definizione dell'insieme dei caratteri.

Codice Corrispondenza
ISO-8859-1 latin1
ISO-8859-2 latin2
ISO-8859-3 latin3
ISO-8859-4 latin4
ISO-8859-5 ciryllic
ISO-8859-6 arabic
ISO-8859-7 greek
ISO-8859-8 hebrew
ISO-8859-9 latin5

Tabella 138.4: Alcuni codici per definire l'insieme di caratteri.

138.4.3 Direzione del testo

Il testo di un documento HTML può scorrere da sinistra a destra o viceversa. Per controllare questo flusso si può utilizzare l'attributo `DIR', a cui si possono abbinare esclusivamente le parole chiave `ltr' o `rtl': Left To Right, da sinistra a destra; Right To Left, da destra a sinistra.

In generale, il flusso del testo avviene da sinistra a destra, come richiedono le lingue occidentali, per cui non è necessario usare questo attributo in condizioni «normali».

È importante notare che il testo nel sorgente di un documento HTML segue sempre il flusso normale, da sinistra a destra, ammesso che si possa definire un flusso per un file sorgente.

Non è disponibile la possibilità di ribaltare orizzontalmente i caratteri, quando il flusso del testo cambia direzione, come avviene nella scrittura geroglifica.

138.4.4 Titolo

Molti elementi dispongono di un attributo `TITLE'. Il suo scopo è quello di indicare un titolo, che viene preso in considerazione in modo differente in base al contesto. Questo attributo può essere molto utile negli elementi che comportano l'inclusione di un'immagine, dal momento che rappresenta un testo alternativo per chi non può visualizzarle. Anche un riferimento ipertestuale può avvantaggiarsi di questo attributo, perché si può visualizzare il testo corrispondente prima di raggiungere l'oggetto, in modo da avere una breve descrizione di ciò che si tratta (così da poter decidere se ne vale la pena).

<A HREF="http://www.brot.dg/foto/tizio.jpg" TITLE="Tizio in divisa">Tizio</A>

L'esempio mostra proprio il caso di un riferimento ipertestuale, ottenuto con l'elemento `A', con cui si raggiunge un file che dovrebbe mostrare l'immagine di Tizio vestito in divisa. Se il navigatore permette di conoscere il titolo del riferimento prima di doverlo raggiungere, si può evitare di prelevare il file nel caso ciò non sia interessante.

È ovvio che sta poi all'autore della pagina la scelta nello scrivere dei titoli utili o ingannevoli. Chi realizza una pagina pubblicitaria ha ovviamente degli interessi diversi da chi invece vuole realizzare un documento ordinato e facile da consultare.

138.4.5 Identificazione di un elemento

Molti elementi dispongono di un attributo `ID' che permette di attribuire loro un'etichetta con la quale poi farvi riferimento. Il modo tradizionale per realizzare dei riferimenti incrociati in HTML è l'uso dell'elemento `A', prima con l'attributo `NAME' (l'etichetta), poi con l'attributo `HREF' (il riferimento ipertestuale).

L'attributo `ID' permette di generalizzare il problema, dal momento che in tal modo gli elementi comuni hanno la possibilità di «identificarsi» in maniera univoca per qualunque scopo, non solo quello di definire un obiettivo per un riferimento.

<P ID="superparagrafo">Questo è un paragrafo nominato in modo univoco.</P>
<P ID="supermegaparagrafo">Anche questo è un altro paragrafo nominato in
modo univoco.</P>

Si deve tenere presente che i nomi utilizzati per gli attributi `ID' devono essere univoci. Questi nomi devono essere univoci anche nei confronti dell'attributo `NAME' nell'elemento `A'.

138.4.6 Classificazione degli elementi

A differenza dell'attributo `ID', l'attributo `CLASS' consente di abbinare a un gruppo di elementi una certa classe. Il meccanismo è lo stesso, con la differenza che si vogliono indicare dei raggruppamenti. Di solito, si attribuisce una classe per abbinarne le definizioni di un foglio di stile.

<SPAN CLASS="nota">la vita è fatta per essere vissuta</SPAN>

L'esempio mostra la delimitazione di una parte di testo attraverso l'elemento `SPAN', al quale viene attribuita la classe `nota'. In seguito, sarà possibile abbinare a tutti gli elementi di questa classe le stesse caratteristiche attraverso un foglio di stile. Utilizzando i fogli di stile CSS, si potrebbe applicare la regola seguente a tutti gli elementi `SPAN' della classe `nota':

SPAN.nota	{ color: green }

138.5 Riferimenti

---------------------------

Appunti Linux 2000.04.12 --- Copyright © 1997-2000 Daniele Giacomini --  daniele @ pluto.linux.it


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]