Da HTML 4 ad HTML5

28 febbraio 2011

Un po’ di storia

Siete curiosi di sapere come tutto è nato? Venerdì 4 giugno 2004, in una notte buia e tempestosa, Ian Hickson annuncia la creazione del gruppo di ricerca WHAT, acronimo di Web Hypertext Application Technology in un sintetico ma ricco messaggio.

L’obiettivo del gruppo è quello di elaborare specifiche per aiutare lo sviluppo di un web più orientato alle applicazioni che ai documenti; tra i sottoscrittori di questa iniziativa si annoverano aziende del calibro di Apple, Mozilla e Opera. Questa piccolo scisma dal W3C è determinato dal disaccordo in merito alla rotta decisa dal consorzio durante un famoso convegno del 2004 dove, per un pugno di voti, prevalse la linea orientata ai documenti di XHTML2.

XHTML 2.0 considered harmful” è il titolo di un messaggio inviato alla mailing list ufficiale del W3C datato 14 gennaio 2003 che ben riassume i sentimenti contrastanti che all’epoca si respiravano in merito a queste specifiche. La principale causa di perplessità è da ricercarsi nella decisione azzardata di non mantenere la retro-compatibilità con la versione 1.1 eliminando alcuni tag e imponendo agli sviluppatori web un controllo rigoroso nella creazione delle pagine, pena lo stop del processo di parsing e la visualizzazione a schermo degli errori di interpretazione. Nei due anni successivi i gruppi XHTML2 e WHAT proseguono i lavori sulle proprie specifiche in modo indipendente e parallelo, sollevando dubbi e confusione sia da parte dei produttori di browser che degli sviluppatori web. Emblematico in tal senso è un articolo firmato da Edd Dumbill nel dicembre 2005 intitolato The future of HTML. Il 27 ottobre 2006 in un post sul proprio blog intitolato Reinventing HTML, Tim Berners-Lee annuncia la volontà di creare un nuovo gruppo di ricerca che strizzi l’occhio al WHAT e ammette alcuni sbagli commessi seguendo la filosofia XHTML2:

Some things are clearer with hindsight of several years. It is necessary to evolve HTML incrementally. The attempt to get the world to switch to XML, including quotes around attribute values and slashes in empty tags and namespaces all at once didn’t work. The large HTML-generating public did not move, largely because the browsers didn’t complain. Some large communities did shift and are enjoying the fruits of well-formed systems, but not all. It is important to maintain HTML incrementally, as well as continuing a transition to well- formed world, and developing more power in that world. Tim Berners-Lee.

Dovranno passare quasi altri due anni di competizione tra le due specifiche, questa volta entrambe interne al W3C, prima che nel luglio del 2009 lo stesso Tim sancisca di non voler riconfermare il gruppo XHTML2 per l’anno successivo preferendo di fatto la direzione intrapresa dall’HTML5. Frattanto il gruppo di ricerca, formato da una commistione di elementi del W3C e del WHAT, sotto la guida di Ian Hickson, è giunto alla 4° versione delle specifiche.

Nonostante il continuo e solerte lavoro e il grande intervallo di tempo speso nella stesura di questo documento, i passi residui necessari ad eleggere questa tecnologia al rango di ‘W3C Reccomandation’, relegandola così tra gli standard riconosciuti, sono ancora molti, al punto che si prevede di raggiungere l’agognato traguardo soltanto attorno al 2020.

Ricordiamo però che il consorzio si riferisce sempre all’intero universo inscritto nelle specifiche mentre alcune feature ritenute peculiari ed importanti, ad esempio il tag <video>, sono già implementate da tempo dalla totalità (o quasi) dei browser in commercio.

Che cos’è l’HTML5?

Domanda semplice solo all’apparenza; siamo sicuramente di fronte alla quinta revisione delle specifiche HTML ma anche di un vastissimo elenco di funzionalità che si sviluppano attorno al tema del linguaggio di markup: cerchiamo quindi di fare un po’ di ordine.

Per prima cosa è importante ricordare che, anche in virtù della storia della sua nascita, all’interno dell’HTML5 convivono in armonia due anime: la prima, che raccoglie l’eredità semantica dell’XHTML2, e la seconda che invece deriva dallo sforzo di aiutare lo sviluppo di applicazioni Web. Il risultato di questo mix di intenti è più articolato di quanto si immagini; in prima istanza si assiste ad una evoluzione del modello di markup, che non solo si amplia per accogliere nuovi elementi, ma modifica in modo sensibile anche le basi della propria sintassi e le regole per la disposizione dei contenuti sulla pagina. A questo segue un rinvigorimento delle API JavaScript che vengono estese per supportare tutte le funzionalità di cui una applicazione moderna potrebbe aver bisogno:

  • salvare informazioni sul device dell’utente;
  • accedere all’applicazione anche in assenza di una connessione Web;
  • comunicare in modo bidirezionale sia con il server sia con altre applicazioni;
  • eseguire operazioni in background;
  • pilotare flussi multimediali (video, audio);
  • editare contenuti anche complessi, come documenti di testo;
  • pilotare lo storico della navigazione;
  • usare metafore di interazione tipiche di applicazioni desktop, come il drag and drop;
  • generare grafica 2D in tempo reale;
  • generare grafica 3D in tempo reale;
  • accedere e manipolare informazioni generate in tempo reale dall’utente attraverso sensori multimediali quali microfono e webcam.

Anche l’aspetto semantico a contorno del markup non è dimenticato; ecco quindi nascere le specifiche per la nuova generazione di microformati e per l’integrazione tra HTML5 e RDFa. Ma non è tutto, attorno a quello che può essere definito il nucleo autentico delle specifiche gravitano tutta una serie di altre iniziative, alcune delle quali in avanzato stato di definizione, studiate per:

  • accedere alle informazioni geografiche del device dell’utente (posizione, orientamento,…);
  • mantenere un database sul device dell’utente;
  • generare grafica 3D in tempo reale;

E non dimentichiamo che l’evoluzione dell’HTML viaggia di pari passo con quella dei CSS, che si avvicinano alla terza versione, e di altri importanti standard come SVG e MathML, e che ognuno di questi componenti è progettato nella sua versione più recente per recare e ricevere beneficio dagli altri.

Perché dovremmo passare all’HTML5?

Il panorama di Internet è cambiato molto dall’assunzione a ‘W3C Reccomandation’ della versione precedente delle specifiche, avvenuta verso la fine del 1999. In quel tempo il Web era strettamente legato al concetto di ipertesto e l’azione più comune per l’utente era la fruizione di contenuti, tipicamente in forma testuale. La mediamente bassa velocità di connessione e il limitato investimento sul media contribuivano ad una scarsa presenza di applicazioni web, più care da sviluppare ed esigenti in termini di banda.

Tutto questo era ben rappresentato da un linguaggio, HTML, principalmente orientato ad agevolare la stesura di semplici documenti testuali collegati fra loro. Negli anni successivi l’interesse intorno alla rete ha subito una brusca accelerazione e questo ha condizionato positivamente sia la diffusione che la velocità di connessione della stessa, attirando di conseguenza maggiori investimenti e ricerca. Al modello di fruizione dei contenuti si è aggiunta la possibilità per l’utente finale di divenire esso stesso creatore attraverso applicazioni web sempre più elaborate ed interessanti.

Questo nuovo livello di complessità, in termini di sviluppo, ha però dovuto scontrarsi con un set di specifiche poco inclini ad essere utilizzate per tali fini e che quindi si sono prestate al compito solo a scapito di infiniti hack e workaround. Esempi di questi ‘utilizzi non premeditati’ dell’HTML si possono trovare un po’ ovunque, famoso il caso degli attributi rel e ref che hanno assunto nel tempo valori non previsti, (eg: nofollow) anche esterni alla loro funzione naturale (eg: l’utilizzo di questi due attributi in librerie come Lightbox).

Parallelamente il percorso di crescita del web ha fatto emergere alcune strutture di contenuto ricorrenti, ben caratterizzate dal fenomeno dei blog: informazioni di testata, menu di navigazione, elenchi di articoli, testo a pie’ di pagina, ed altri. La parte dedicata al singolo articolo presenta anch’essa solitamente lo stesso set di informazioni quali autore, data di pubblicazione, titolo e corpo del messaggio. Anche in questo caso l’HTML4 non ha saputo fornire gli strumenti adatti a consentire una corretta gestione e classificazione del contenuto obbligando gli sviluppatori web a ripiegare su strutture anonime, quali <div> e <p>, arricchite di valore semantico con l’utilizzo di attributi quali class e id.

L’HTML5 nasce per risolvere questi problemi offrendo agli sviluppatori web un linguaggio pronto ad essere plasmato secondo le più recenti necessità, sia dal lato della strutturazione del contenuto che da quello dello sviluppo di vere e proprie applicazioni.

Grandi cambiamenti nell’ombra

La differenza principale tra le versioni correnti di HTML e XHTML risiede nella sintassi. Il linguaggio di markup creato da Tim Berners-Lee, e che ancora oggi popola i nostri browser, è stato studiato come applicazione del più generico SGML, Standard Generalized Markup Language; ne è la prova la dichiarazione di Document Definition Type che dovrebbe essere posta nella prima riga di una pagina Web ad indicare la grammatica, HTML per l’appunto, usata nel documento:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/ strict.dtd">

In realtà la quasi totalità dei browser ignora la definizione e interpreta il documento secondo logiche più permissive, frutto di anni di eccezioni e di esperienza accumulata su pagine malformate. L’XHTML, invece, è una versione della sintassi HTML costretta all’interno delle regole XML, a sua volta grammatica SGML: questo approccio dovrebbe implicare un maggior rigore nella pagina e l’aderenza a regole quali l’obbligo di chiusura di tutti i tag. Il parser XML inoltre dovrebbe sospendere l’interpretazione della pagina al primo errore rilevato.

L’arrivo dell’HTML5 introduce una importante novità in questo scenario, per la prima volta l’obiettivo delle specifiche è quello di definire un linguaggio ubiquo, che possa poi essere implementato su entrambe le sintassi. L’occasione è buona anche per fare un po’ di pulizia e rompere definitivamente il legame tra HTML e SGML formalizzando e traducendo in standard le regole adottate da tempo nei browser. Per indicare un documento HTML5 è nata quindi la seguente semplice istruzione:

<!DOCTYPE html>

Che si affianca a quella da utilizzare in caso si intenda scrivere una pagina XHTML5:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

E adesso?

Questa lezione aveva l’obiettivo di fornire un contesto storico e operativo ai temi dei quali questa guida tratterà in modo approfondito. Nelle prossime lezioni affronteremo in sequenza prima la parte legata al markup ed alla gestione della disposizione del contenuto e successivamente le principali API introdotte da queste specifiche. Il viaggio all’interno dell’universo dell’HTML5 è appena iniziato!

Tutte le lezioni

1 2 3 ... 51

Se vuoi aggiornamenti su Da HTML 4 ad HTML5 inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su Da HTML 4 ad HTML5

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy