015 • HTML-CSS

Chiudo questa serie parlando di HTML-CSS: la materia con cui sono fatte le pagine web che progettiamo.

Tra non molto saranno due decenni che insegno Web Design. Quando iniziai avevo pochissima esperienza di insegnamento e non era ancora chiaro cosa mettere dentro questo tipo di corso. Pensai che comunque, in ogni caso, un corso di Web Design dovesse includere la creazione di un sito web reale. Si sarebbe dovuto scrivere l’HTML e il CSS, oltre che progettare il layout con il software che si usava all’epoca: Photoshop. (Se oggi vi sembra una follia usare Photoshop, vi assicuro che anche allora ci sembrava una follia.)

Da allora ogni anno, o quasi, mi chiedo se ha senso spiegare ancora l’HTML e il CSS con tutte le alternative “no-code” che ci sono. (Me lo chiedevo anche prima del vibe-coding). Ogni anno penso che forse potrei evitarlo, ma quando ci provo mi sembra sempre che manchi qualcosa. Quello che si fa in Figma (o nei tool di design che c’erano prima o ci saranno dopo) è l’idea di un sito. È la simulazione di un sito. Un po’ come una copertina progettata su InDesign è l’idea di una copertina, non la copertina.

Il web è costruito su una separazione intenzionale: l’HTML definisce cosa sono le cose, il CSS definisce come appaiono. Struttura e forma. Questa separazione è ciò che permette alle pagine di adattarsi a contesti diversi, dispositivi diversi, modalità di lettura diverse. Chi sa che quella separazione esiste progetta in maniera diversa da chi non lo sa.


Tempo fa su Wired, Tim Carmody ha scritto un articolo con un titolo provocatorio, HTML Is actually a programming language. Fight me, che in realtà è una celebrazione dell’HTML. Scrive che l’HTML è il linguaggio informatico più significativo degli ultimi 30 anni, capace di ridefinire l’informatica e di essere il punto di riferimento per molti altri linguaggi di programmazione.

Un linguaggio non è un insieme di istruzioni per un interlocutore da eseguire senza margine di interpretazione; è qualcosa di più ampio e ricco. Come il linguaggio umano, l’HTML è conversazionale. È incredibilmente abile nell’adattarsi al contesto. Può assumere forme diverse su qualsiasi macchina, da un browser desktop a uno schermo di e-reader, fino a un’app mobile o un lettore per non vedenti (purché quel dispositivo sia progettato per presentare ipertesti).

Carmody parla dell’HTML come di un linguaggio democratico e accessibile a tutti. Celebra i siti rotti, o che si possano rompere, senza compromettere il contenuto.

In una società abituata all'obsolescenza a qualsiasi livello – dove le app smettono di funzionare se non aggiorniamo il telefono o software che diventano obsoleti in pochi anni – vale la pena ricordare che l’HTML (e poi il CSS) furono concepiti da Tim Berners-Lee per durare, per essere “compatibili in avanti”. Significa che qualsiasi cosa scritta oggi funzionerà anche tra 10 anni, come funzionano ancora i siti web di 20 anni fa.

Ai miei studenti la pongo sempre in questi termini: non devi saper programmare, ma devi sapere di cosa è fatto quello che stai progettando. E scriverlo, anche solo un po’, ti costringe a un ordine. Un ordine utile anche quando non si scrive codice.

È una questione tecnica, volendo, ma anche di sguardo. Jeremy Keith, in Resilient Web Design, riprende il concetto di x‐ray perspective: la capacità di guardare oltre la superficie e riconoscere struttura e funzione.


Il corso è finito, come questo esperimento di newsletter. L’anno prossimo mi chiederò di nuovo se ha senso aggiungere la parte di HTML-CSS. Al momento mi sembra ancora utile per capire di cosa è fatto quello che stiamo progettando. Se cambio idea vi faccio sapere.