Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 29 di 72
  • livello avanzato
Indice lezioni

Cos'è una Dtd e perchè occorre dichiararne una

La document type declaration, pezzo importante e utile di una pagina Web
La document type declaration, pezzo importante e utile di una pagina Web
Link copiato negli appunti

Come i lettori più attenti avranno sicuramente notato, la versione realizzata in HTML presentazionale della pagina di esempio illustrata in figura 1 utilizza la Dtd transitoria ("transitional", in inglese) di HTML 4.01, che viene invocata per mezzo della seguente dichiarazione:

<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.01 transitional//EN" "http://www.w3.org/tr/html4/loose.dtd">

Invece, la versione in cui la presentazione è affidata interamente ai CSS usa la Dtd rigorosa ("strict", in inglese) di XHTML 1.0, che viene dichiarata nel seguente modo:

<!DOCTYPE html PUBLIC "-//W3C//Dtd XHTML 1.0 Strict//EN""http://www.w3.org/tr/xhtml1/Dtd/xhtml1-strict.dtd">

Prima di spiegare perché abbiamo utilizzato due Dtd differenti (lo spiegheremo al punto successivo della guida), diamo alcune necessarie informazioni preliminari sull'argomento, che rimane piuttosto oscuro per molti lettori e, purtroppo, anche per molti sviluppatori.

Ogni pagina HTML o XHTML valida deve cominciare con un frammento di codice, che si chiama tecnicamente document type declaration, ovvero, tradotto in italiano, "dichiarazione del tipo di documento". Senza entrare nel dettaglio della sua struttura, questa dichiarazione dice al browser quale è, e dove si trova, il documento che contiene le definizioni e le regole di applicazione di tutti gli elementi e gli attributi (X)HTML utilizzati in una pagina web.

Un tale documento si chiama appunto Dtd, acronimo di document type definition, cioè, in italiano, "definizione del tipo di documento".

Tuttora moltissimi siti, anche molto importanti (per esempio - incredibile a dirsi - Yahoo!), non dichiarano all'inizio del codice la Dtd utilizzata nel documento. Innumerevoli schiere di sviluppatori, abituati da anni a creare pagine web per mezzo di programmi grafici e senza elaborare direttamente il codice, non sanno cosa sia una Dtd e perché serva dichiarare ad inizio pagina quella utilizzata.

Il motivo per cui si può continuare tranquillamente (o quasi...) ad ignorare le regole di base dei linguaggi HTML e XHTML, ottenendo che le proprie pagine web errate siano visualizzate ugualmente su tutti i principali browser grafici, dipende dal fatto che i produttori di quei browser, tra cui in prima fila la Microsoft, hanno da sempre, e fino a tempi molto recenti, seguito una politica di supporto debole verso gli standard prodotti dal W3C.

In altri termini, una larga parte del codice di programmazione dei browser è stata dedicata dalle case produttrici a compensare gli errori di HTML, e poi di XHTML, commessi dagli autori di pagine web: mentre un documento XML contenente violazioni alle regole di questo linguaggio semplicemente non viene riprodotto da nessun browser che supporti XML, al contrario un documento HTML o XHTML non valido - perché mancante della Dtd, o perché degli elementi vengono aperti e non chiusi, oppure chiusi senza essere stati aperti, o perché degli altri elementi sono intrecciati erroneamente tra loro invece che annidati - viene "normalmente" caricato da tutti i browser, che fanno anzi il massimo sforzo per interpretare ciò che l'autore aveva voluto "dire" con il suo codice errato.

Fortunatamente le ultime versioni dei principali browser grafici (Internet Explorer, Mozilla, Netscape, Opera) supportano dichiaratamente l'uso di HTML e XHTML standard. Cambiano anzi in certa misura le modalità di riproduzione della pagina, a seconda che l'autore dichiari oppure no all'inizio del documento la Dtd utilizzata. Nel secondo caso, i browser possono entrare in una modalità definita "quirk", cioè "capriccio"... Lo scopo di tale modalità è offrire allo sviluppatore una scappatoia per scrivere codice non valido "alla vecchia maniera" e vedere come la relativa pagina viene visualizzata dal browser in modalità retrocompatibile, cioè, per intenderci, in modo analogo a come la visualizzerebbe Netscape 4, il browser più bacato e insopportabilmente difettoso mai apparso nella pur breve storia di Internet. Per chi vuole approfondire l'argomento, consigliamo di leggere l'articolo "Il <!DOCTYPE> ed il <!DOCTYPE> switch nei moderni browser", scritto da Marcello Cerruti per PRO.HTML.it.

Ti consigliamo anche