L’XHTML (acronimo di eXtensible HyperText Markup Language) è un linguaggio di markup che associa alcune proprietà dell’XML con le caratteristiche dell’HTML: un file XHTML è un pagina HTML scritta in conformità con lo standard XML.
Il linguaggio prevede un uso più restrittivo dei tag HTML; solo la struttura della pagina è scritta in XHTML, mentre il layout è imposto dai fogli di stile a cascata (CSS, Cascading Style Sheets).
L’XHTML è nato ufficialmente il 26 gennaio 2000 come standard W3C, e può essere definito tecnicamente una riformulazione dell’HTML 4.01 come applicazione dell’XML 1.0, una sorta di transizione tra questi due linguaggi.
L’XHTML è il successore diretto e la versione più aggiornata dell’HTML. La necessità di un linguaggio dotato di una sintassi meglio definita rispetto a quella dell’HTML cominciò ad essere avvertita quando si diffuse l’uso di inviare pagine web ai nuovi dispositivi apparsi sul mercato diversi dai tradizionali computer, come ad esempio piccoli apparecchi portatili, dotati di risorse hardware e software non sufficienti ad interpretare il linguaggio HTML. Va tenuto presente che più generica è la sintassi di un linguaggio di programmazione, più difficile risulta realizzare dispositivi in grado di interpretarlo correttamente. Una specifica Document Type Definition (DTD) definisce l’insieme di regole mediante le quali un dato documento può essere renderizzato (cioè rappresentato correttamente) dall’XHTML.
La maggior parte dei browser attualmente più diffusi è già in grado di renderizzare correttamente i documenti XHTML. Ma anche i browser più vecchi sono solitamente in grado di interpretare i documenti XHTML, poiché questo linguaggio è in buona parte un sottoinsieme dell’HTML. Lo stesso vale anche in senso inverso: quasi tutti i browser compatibili con l’XHTML renderizzano correttamente i documenti HTML. Secondo un’opinione diffusa, questo alto grado di compatibilità sta rallentando il passaggio da HTML a XHTML. Per sfruttare appieno le potenzialità dell’XHTML è necessario usarlo in abbinamento ai fogli di stile, in modo da scrivere un codice per pagine web in cui la presentazione è separata dalla struttura dei dati.
L’XHTML Transitional (vedi oltre) si distingue dall’HTML principalmente perché è più compatibile con le specifiche dell’XML. La differenza più importante è che tutti i tag devono essere ben strutturati, cioè obbedire ad una serie di regole che ne assicurino la coerenza reciproca. Inoltre i tag devono essere sempre scritti in lettere minuscole, convenzione in contrasto con l’abitudine invalsa a partire dalla versione 2.0 di HTML, quando la maggior parte dei programmatori preferiva le maiuscole. Nell’XHTML tutti gli attributi (compresi quelli numerici) devono essere scritti fra virgolette, cosa facoltativa in SGML e HTML, in cui le virgolette possono essere omesse se il contenuto è una stringa alfanumerica o comprende alcuni altri caratteri speciali riservati. Tutti gli elementi del linguaggio devono inoltre essere terminati, compresi quelli vuoti (ad esempio img e br). Per eseguire la terminazione in modo implicito si può aggiungere una "/" di chiusura al tag di apertura.Per ulteriori dettagli si rinvia alle specifiche W3C XHTML.
Un documento XHTML che risponde alle specifiche è definito documento valido ovvero well formed. Teoricamente, tutti i browser dovrebbero essere conformi agli standard W3C, e quindi essere in grado di renderizzare i documenti su qualsiasi piattaforma. La validazione (cioè il controllo sintattico) dei documenti XHTML non assicura tuttavia al 100% la compatibilità con tutti i browser, ma è comunque fortemente consigliata. Uno strumento per controllare la validità dei documenti è disponibile presso il Markup Validation Service del W3C.
I tipi più comuni di DTD, e le relative sintassi dichiarative, sono:
XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Alcuni degli errori più comuni che i programmatori commettono scrivendo codice XHTML sono:
- Elementi privi di terminatore (come sopra detto l’XHTML è molto più restrittivo dell’HTML sotto questo aspetto).
- Omissione del testo da visualizzare in alternativa ad un’immagine (da usare mediante l’attributo alt, in modo da consentire la compatibilità con dispositivi il cui display non supporta immagini).
- Inserire testi direttamente nel corpo del documento.
- Annidare blocchi di codice all’interno di elementi inline.
- Dimenticare le virgolette per delimitare gli attributi.
- Annidare gli elementi in modo non valido.
- Usare in modo scorretto entità varie (ad esempio & anziché &).
- Usare le maiuscole per i nomi dei tag e/o degli attributi.
Questo non è, ovviamente, un elenco esauriente degli errori, ma solo un’indicazione di quelli che i programmatori commettono più frequentemente. Quando una pagina è validata utilizzando il servizio di validazione del W3C, il validatore restituisce una piccola icona che può essere inserita nel documento per comprovarne la conformità allo standard. Il W3C fornisce lo stesso servizio anche per i fogli di stile CSS e per i documenti HTML.
Sotto potete scaricare l’editor che utilizzo per i miei lavori.