Questo articolo è un'introduzione ad HTML5 che evidenzia i punti di forza e le problematiche di questo standard.
Le origini
HTML5 è l’evoluzione moderna di HTML 4.01 e XHTML. Dopo il sostanziale fallimento del connubio tra XML ed HTML tentato dal 2001 al 2008, il W3C (World Wide Web Consortium) ricevette il decisivo input dal gruppo di lavoro del WHATWG che potè utilizzare i dati statistici di Google su milioni di siti web.
Quello che emerse da questa indagine a campione fu una certa ricorrenza nella nomenclatura degli attributi degli elementi e il decisivo spostamento dai siti alle web application.
XHTML e HTML 4.01 non erano in grado di gestire questo nuovo scenario in quanto la loro funzione primaria è sempre stata quella di fornire una base semantica alle pagine web senza preoccuparsi del loro funzionamento.
Gli autori invece volevano più funzionalità attraverso nuovi elementi e nuove API. Decisiva fu in tal senso la nuova tendenza nel mercato dei browser ad implementare correttamente gli standard del web (come CSS e JavaScript); volendo fissare uno spartiacque potremmo dire che la nascita di Google Chrome e l’uscita della versione 9 di Internet Explorer sono due momenti decisivi in tal senso.
La semplificazione in HTML5
Se ricordate il DOCTYPE in uso con HTML 4.01 e XHTML, ricorderete anche che era piuttosto complicato e fornito in diverse varianti (Strict, Transitional, ecc.) a seconda della DTD scelta.
La caratteristica principale di HTML5 è la semplificazione. Questo è il DOCTYPE di HTML5:
<!DOCTYPE html>
Non ci sono più varianti: se includete il DOCTYPE, il browser interpreterà il documento usando la sua modalità standard, e se lo omettete semplicemente il browser userà una modalità non standard.
La semplificazione porta anche a sottintendere quegli elementi che di solito vengono inseriti automaticamente dai browser nella costruzione dell’albero del documento: body
diventa così facoltativo.
Anche la scrittura degli attributi viene semplificata: ora checked=“checked”
e checked
sono entrambi validi:
<input type=“checkbox” checked=“checked” />
<input type=“checkbox” checked>
Dal codice di cui sopra emerge anche il fatto che HTML5 è compatibile anche con XHTML: gli elementi vuoti possono infatti essere scritti sia con lo slash finale (XHTML) che senza (HTML 4.01).
Non solo: i linguaggi similari a XHTML come SVG e MathML possono essere usati direttamente in HTML5 senza l’obbligo di servire le pagine come application/xhtml+xml
.
Questo era obbligatorio in XHTML, e per diversi anni SVG stentò a prendere piede proprio per questa limitazione.
Nuovi elementi e attributi
I nuovi elementi e attributi partono proprio dall’indagine condotta da Ian Hickson (Google) sulla nomenclatura più usata nei siti web.
I nuovi elementi rispecchiano appunto i valori degli attributi ID o class usati in passato sui div in HTML 4.01 o XHTML.
Qui di seguito trovate una lista esaustiva di tutti i nuovi elementi e attributi introdotti in HTML5.
Nuove API
Il vero punto di forza di HTML5 sta nelle sue nuove API che si relazionano con JavaScript, il linguaggio di programmazione forse più popolare e usato sul Web.
Senza dare la possibilità di uplodare e gestire file, salvare dati sul computer dell’utente senza usare i cookie, gestire la modalità offline, geolocalizzare un utente e molto altro ancora, HTML5 non avrebbe sicuramente avuto il successo che sta riscuotendo oggi.
Il prezzo da pagare è sicuramente la dipendenza totale dal supporto dei browser: questo implica anche un potenziale problema nella neutralità di questo standard.
Il punto debole di HTML5
HTML5 è neutrale rispetto ai browser che lo supportano? La sua storia sembra dimostrare che una parte del mercato dei browser (Google in testa) abbia di fatto creato questo standard e lo abbia sospinto grazie alla popolarità crescente delle proprie applicazioni.
Di conseguenza gli altri produttori si sono dovuti adeguare. Ovviamente HTML5 ha apportato enormi benefici, ma un’ombra sulla sua effettiva neutralità permane.