Prima di parlare dell’header dei documenti HTML è opportuno dedicare una lezione ad un elemento importante e molto spesso sottovalutato: il doctype. Il doctype è (o dovrebbe essere) la prima riga di codice di un documento HTML e serve per indicare al browser il tipo di documento di cui si tratta. Il termine doctype, infatti, è la contrazione di Document Type Declaration (DTD) e consiste in una dichiarazione, dello sviluppatore della pagina web, circa il linguaggio utilizzato, la versione di tale linguaggio, la lingua, ecc.
Segue un esempio di doctype di una pagina HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
http://www.w3.org/TR/html4/loose.dtd>
All’interno di questa linea, che come detto deve essere la prima dell’intero documento prima dell’apertura del tag <html>, sono contenute una serie di informazioni:
- !DOCTYPE – Apertura del doctype;
- HTML – Indica che il linguaggio utilizzato per il documento corrente è l’HTML;
- PUBLIC – Indica che il documento è pubblico;
- -//W3C//DTD HTML 4.01 Transitional//EN – Indica che il documento si riferisce ad una specifica del W3C, che il DTD è HTML versione 4.01 Transitional e che la lingua è l’inglese;
- http://www.w3.org/TR/html4/loose.dtd – E’ la URL alla quale è rinvenibile la specifica relativa alla DTD del documento; questa indicazione è facoltativa (e nella prassi frequentemente omessa).
E’ bene precisare alcune cose in merito al doctype:
- <!DOCTYPE> non è una tag HTML, ma si tratta di un’istruzione indirizzata al browser affinché adotti le giuste regole per il rendering del documento;
- L’indicazione del doctype NON è case-sensitive: non ci sono differenze se viene scritta in maiuscolo o in minuscolo!
Per quanto riguarda specificatamente il linguaggio HTML le DTD possibili sono tre:
HTML Strict
E’ la specifica più rigorosa del linguaggio che non ammette l’utilizzo di tag deprecati e frameset. Nel DTD Strict, inoltre, la definizione dell’aspetto degli elementi della pagina deve essere gestito mediante CSS.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
http://www.w3.org/TR/html4/strict.dtd>
HTML Transitional
E’ una specifica piuttosto permissiva che ammette l’utilizzo di tag deprecati ma non di frameset. Nel DTD Transitional, inoltre, sono ammessi tag di presentazione HTML utilizzati per definire l’aspetto degli elementi (come ad esempio bgcolor).
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
http://www.w3.org/TR/html4/loose.dtd>
HTML Frameset
E’ la DTD utilizzata per le pagine composte da frames:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
http://www.w3.org/TR/html4/frameset.dtd>
Il doctype di HTML 5
A differenza di HTML 4, HTML 5 non è un linguaggio SGML (Standard Generalized Markup Language) e, pertanto, l’indicazione del DTD non è necessaria. All’interno di una pagina basata sul markup HTML 5 sarà sufficiente inserire:
<!DOCTYPE html>
L’importanza del doctype
Molto spesso, purtroppo, l’indicazione del doctype viene omessa dagli aviluppatori di pagine web, tuttavia ciò deve essere considerato un errore in quanto tale omissione potrebbe compromettere il corretto rendering della pagina.