Struttura semantica della pagina
La maggior parte delle pagine ha più o meno la stessa forma: un'intestazione, un menu, il contenuto principale e un piè di pagina. L'HTML ha un elemento per ciascuno, e gli screen reader permettono di saltare direttamente a ognuno.
Dalla zuppa di div ai punti di riferimento
Per anni le pagine sono state costruite con elementi <div> con nomi di classe come header o menu. Un <div> è un contenitore generico senza alcun significato, quindi il nome della classe era l'unico indizio, e lo vedeva solo chi leggeva il codice. Oggi l'HTML ha elementi che dicono che cos'è ogni regione. Browser, motori di ricerca e tecnologie assistive li capiscono, e chi usa uno screen reader può aprire un elenco di queste regioni, chiamate punti di riferimento (landmark), e saltare a quella che vuole, così come chi vede dà un'occhiata all'impaginazione.
Le regioni principali
<header>: contenuto introduttivo, di solito il nome o il logo del sito e spesso il menu principale. Anche un articolo può avere un suo header.<nav>: un blocco di link di navigazione principali, come il menu del sito o un indice. Non tutti i gruppi di link ne hanno bisogno.<main>: il contenuto specifico di questa pagina. Usa esattamente un<main>visibile per pagina, e non metterlo dentro header, nav, aside o footer.<article>: un pezzo autonomo che avrebbe senso anche da solo, come un post di un blog, una notizia o la scheda di un prodotto.<section>: una parte tematica di una pagina o di un articolo, di norma con un suo titolo.<aside>: contenuto legato al contenuto principale ma separato da esso, come una barra laterale, un riquadro di glossario o dei link correlati.<footer>: informazioni di chiusura come l'autore, il copyright e i link di contatto.
Questi elementi descrivono il significato, non la posizione. Un <nav> non deve per forza stare in cima, e un <aside> non deve per forza stare a destra; su un telefono l'aside di solito finisce sotto il contenuto principale. Le posizioni vengono dal CSS. Scegli l'elemento chiedendoti che cos'è il contenuto, così come hai scelto i livelli dei titoli in base alla struttura e non alla grandezza.
article o section?
La domanda da porsi è se il pezzo avrebbe senso da solo altrove, per esempio in un lettore di notizie o condiviso come link. Se sì, è un <article>. Se ha senso solo come parte di qualcosa di più grande, come la parte Ingredienti di una ricetta, è una <section>. Entrambi di norma iniziano con un titolo. Gli articoli possono contenere sezioni, e una sezione può contenere articoli, come una sezione Ultimi post che contiene diverse schede di post.
div e span hanno ancora un ruolo
Quando nessun elemento è adatto, usa <div> per un blocco e <span> per poche parole dentro una riga. Sono utili come agganci per il CSS, per esempio un <div class="cards"> che dispone delle schede in una griglia. La regola è cercare prima un elemento con un significato e ripiegare su uno generico solo quando niente descrive il contenuto. Una pagina fatta solo di div funziona, ma nasconde la sua struttura a chiunque non guardi il codice.
Un test rapido: apri la pagina con il CSS disattivato, oppure leggi la scaletta di titoli e punti di riferimento che ti mostra un'estensione del browser. Se la pagina si legge ancora in un ordine sensato, con un'intestazione, un menu, il contenuto principale e un piè di pagina chiari, la struttura fa il suo lavoro.
Prima gli elementi nativi, poi ARIA
Potresti incontrare l'attributo role, che fa parte di uno standard del W3C chiamato WAI-ARIA, scritto come <div role="navigation">. Dà a un elemento generico un significato per le tecnologie assistive. Le indicazioni del W3C sull'uso di ARIA partono da una regola semplice: se un elemento HTML nativo ha già il significato che ti serve, usa quello. <nav> è più breve, funziona ovunque e non si può dimenticare in un punto e ricordare in un altro. Lo stesso vale per i pulsanti: un vero <button> riceve il focus con Tab e si preme con Invio o Spazio senza fatica, mentre un <div> cliccabile ha bisogno di codice in più per fare lo stesso.
| header | Contenuto introduttivo: nome del sito, logo, spesso il menu |
| nav | Link di navigazione principali |
| main | Contenuto specifico di questa pagina; uno per pagina |
| article | Pezzo autonomo che ha senso da solo |
| section | Una parte tematica, di solito con un titolo |
| aside | Contenuto correlato ma separato, come una barra laterale |
| footer | Informazioni di chiusura: autore, copyright, contatti |
| punto di riferimento (landmark) | Una regione della pagina a cui chi usa uno screen reader può saltare |
- Quanti elementi main visibili dovrebbe avere una pagina?
- Un post di un blog che si potrebbe condividere da solo è
- article
- section
- aside
- La parte Ingredienti di un articolo con una ricetta è
- section
- article
- nav
- Quale elemento contiene il menu del sito?
- aside deve per forza comparire a destra?
- No, la posizione viene dal CSS
- Sì
- Solo sugli schermi larghi
- Che cosa significa un div?
- Niente; è un contenitore generico
- Una sezione di un documento
- Una griglia di impaginazione
- Quale elemento segna poche parole dentro una riga, senza significato, per lo stile?
- span
- div
- strong
- Dove dovrebbero andare il copyright e i link di contatto?
- footer
- header
- main
- In che modo i punti di riferimento aiutano chi usa uno screen reader?
- Può elencare le regioni e saltare a una di esse
- Rendono il testo più forte
- Nascondono il menu
- main può stare dentro header?
- No
- Sì
- Solo con un titolo
- header, nav, main, article, section, aside e footer danno un nome alle regioni di una pagina.
- Scegli in base al significato; il CSS decide la posizione.
- Usa div e span solo quando nessun elemento con un significato è adatto.
Fonti di questo corso (10)
- WHATWG, HTML Living Standard (html.spec.whatwg.org, checked 2026-10-17)
- MDN Web Docs, Learn web development: Structuring content with HTML, and the HTML element reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content and developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements, checked 2026-10-17)
- MDN, HTML images (alt text guidance, checked 2026-10-17)
- W3C WAI, Images tutorial and alt decision tree (w3.org/WAI/tutorials/images/decision-tree, checked 2026-10-17)
- CERN, A short history of the Web (home.cern/science/computing/the-birth-of-the-web/short-history-web/, checked 2026-10-17)
- W3C and WHATWG memorandum of understanding, 28 May 2019 (w3.org/2019/04/WHATWG-W3C-MOU.html, checked 2026-10-17)
- W3C, Using ARIA, first rule of ARIA use (w3.org/TR/using-aria/, checked 2026-10-17)
- W3C Markup Validation Service (validator.w3.org, checked 2026-10-17)
- MDN, Viewport meta element (checked 2026-10-17)
- Every code exercise was checked with a Playwright probe against a reference solution.
Consultato il: 2026-10-17