HTMLHTML 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 la versione di riferimento è la 4. |
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:
il programma utilizzato per visualizzare il documento;
la risoluzione utilizzata;
i tipi di carattere a disposizione;
la profondità di colori disponibili.
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.
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.
L'HTML è un linguaggio di composizione basato sull'SGML. 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 caratteristiche.
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 W3C.
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 class CDATA style %StyleSheet; title %Text; > <!ENTITY % i18n "lang %LanguageCode; dir (ltr|rtl) >
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:
id permette di attribuire una stringa di riconoscimento all'elemento, in modo da potervi fare riferimento;
class permette di abbinare all'elemento una classe, definita attraverso un nome, in modo da potergli attribuire uno stile particolare;
stile permette di definire l'abbinamento con uno stile;
title permette di attribuire un «titolo» all'elemento, cosa che si traduce in pratica in modo differente a seconda del contesto (ovvero, a seconda dell'elemento a cui si applica).
La macro %i18n; serve invece a definire ciò che riguarda la localizzazione:
lang permette di indicare una sigla, secondo lo standard ISO 639 e anche secondo altri standard, per attribuire all'elemento il linguaggio relativo;
dir permette di stabilire il flusso del testo nel risultato finale, dove la parola chiave ltr si riferisce a uno scorrimento da sinistra a destra (Left to right) e la parola chiave rtl indica uno scorrimento opposto, da destra a sinistra (Right to left).
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.
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.
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 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
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.
È 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.