Il linguaggio XHTML si presenta allo sviluppatore di pagine Web come linguaggio di marcatura, e come tale prevede l’uso di particolari “etichette”, chiamate Tag o Elementi deputate ad identificare porzioni di documento (testo, elementi grafici, elementi multimediali…) e ad assegnare loro informazioni di tipo strutturale, semantico e presentazionale.

Ciascun tag può quindi essere visto come un mattone del linguaggio di markup e condivide con tutti gli altri mattoni una grammatica di base: un generico elemento è composto da:

  • Nome, che ne identifica il tipo e la funzionalità
  • Attributi, cioè uno o più valori associati agli elementi (facoltativo)
  • Contenuto, per esempio un paragrafo di testo (facoltativo)

In particolare, XHTML è una combinazione di HTML ed XML, nel senso che XHTML consiste di tutti gli elementi dell’HTML 4.01 combinati con la rigida sintassi caratteristica di XML; alcuni User Agent per cellulari o palmari non sono in grado di interpretare adeguatamente un linguaggio di markup scorretto, ma una pagina XHTML verrà letta correttamente da ogni device in grado di leggere XML.

L’XHTML offre così la possibilità di costruire adesso documenti validi (nel senso di “XML valid”) in grado di funzionare in tutti i browser ed anche ragionevolmente compatibili all’indietro.

Per completezza riportiamo le principali differenze tra HTML ed XHTML:

  • Gli elementi XHTML devono essere opportunamente innestati
  • I documenti XHTML devono essere well-formed
  • I nomi dei tag devono essere scritti in minuscolo
  • Tutti i tag XHTML devono essere chiusi

In questo articolo vogliamo però mettere l’accento su alcuni concetti fondamentali per la comprensione e l’applicazione pratica della filosofia che sta alla base dei linguaggi di marcatura, concetti che riguardano:

  • Contenuto: si tratta delle informazioni che il documento comunica all’utente (testo, immagini,   suono, filmati, animazioni…)
  • Struttura: è l’organizzazione logica del contenuto. Le informazioni che contiene possono essere strutturate in introduzione, capitoli, paragrafi. E’ alla base della nascita di un’applicazione di qualità, e va attentamente progettata.
  • Presentazione: è il modo in cui un documento è visualizzato all’utente, ed in cui i suoi contenuti vengono presentati su schermo, stampati, oppure letti da un sintetizzatore vocale tramite uno screen reader.

Un documento correttamente strutturato deve avere i contenuti ordinati e gerarchizzati: gli screen reader – per esempio – consentono di esplorare una pagina saltando da un titolo (h1..h6) all’altro, da un link all’altro, da un campo modulo ad un altro; inoltre altre funzioni avvertono l’utente sul tipo di Tag che sta per essere “letto” (paragrafo, lista, tabella…). Allora, soltanto la presenza di contenuti strutturati correttamente permetterà all’utente non vedente di farsi un’idea della pagina simile a quella che i vedenti riescono a ricavare dall’esame visuale; senza un’adeguata marcatura, la struttura logica rimarrà celata e sarà difficile per chi non vede comprendere la relazione tra le varie parti che compongonola pagina. Ribadiamo però che buona strutturazione dei contenuti e criteri di presentazione adeguati sono indispensabili per tutti gli utenti, basti pensare ai fogli di stile che necessitano, per la loro corretta e piena applicazione, di documenti X-HTML ben progettati e correttamente strutturati.

Strutturare un documento vuol dire marcare strutturalmente i blocchi di testo che lo compongono; alla prima lettura quest’affermazione può sembrare banale e scontata, mentre invece quello che intende comunicare agli sviluppatori è la natura stessa dell’HTML: L’HTML è un linguaggio di marcatura strutturale sin dalle origini, nato proprio con lo scopo di suddividere un contenuto – per esempio testuale – in una serie di blocchi organizzati in base a gerarchie e relazioni di appartenenza. Solamente in un secondo momento c’è stata l’esplosione dei formati proprietari che ne ha snaturato i principi. Ricordiamo che gli elementi html, head, title e body devono essere necessariamente presenti e bene annidati in ogni pagina XHTML.

I tag potenzialmente in grado di conferire struttura e gerarchia ai contenuti di una pagina XHTML sono molti. Quel che nella sostanza si registra, e che forse rappresenta anche un limite di XHTML, è che quelli più utilizzati sono relativamente pochi, e non brillano certo per elasticità:

  • h1h6   per marcare i titoli e le intestazioni
  • p per marcare i paragrafi
  • table per le tabelle di dati (ma largamente usato, spesso abusato, per impostare i layout grafici)
  • ol, ul, dl per definire le liste
  • div per marcare aree e porzioni significative di codice

XHTML 2 proverà ad offrire più elasticità, per esempio nelle intestazioni che non saranno più legate a soli 6 livelli