edubun
Italiano

Tabelle

L'orario di un autobus è una tabella: ogni cella ha senso solo insieme all'intestazione della sua riga e a quella della sua colonna.

Le tabelle servono per i dati

Usa una tabella quando le informazioni hanno righe e colonne: un orario, un listino prezzi, i risultati di un sondaggio. Alla fine degli anni 1990 molti siti usavano le tabelle per costruire l'impaginazione di intere pagine, con i menu in una cella e il contenuto in un'altra. Questo crea problemi reali. Gli screen reader annunciano ogni cella con la sua riga e la sua colonna, quindi una tabella di impaginazione suona come un foglio di calcolo confuso, e le impaginazioni a tabella non si adattano bene agli schermi piccoli. Oggi l'impaginazione si fa con il CSS, e le tabelle restano per i dati.

Righe, celle e intestazioni

Una tabella si costruisce riga per riga. <table> avvolge tutto, ogni <tr> (table row) è una riga, e dentro una riga ogni <td> (table data) è una cella. Le celle che etichettano una riga o una colonna usano invece <th> (table header), che i browser mostrano in grassetto e centrato per impostazione predefinita. Il numero di celle di ogni riga dovrebbe essere lo stesso, così le colonne restano allineate.

<table>
  <caption>Bread prices, October 2026</caption>
  <thead>
    <tr><th scope="col">Loaf</th><th scope="col">Weight</th><th scope="col">Price</th></tr>
  </thead>
  <tbody>
    <tr><th scope="row">Sourdough</th><td>800 g</td><td>6.50</td></tr>
    <tr><th scope="row">Rye</th><td>600 g</td><td>5.00</td></tr>
  </tbody>
</table>
Una didascalia, una riga di intestazione in thead e intestazioni di riga nella prima colonna.

Fai in modo che la tabella si spieghi da sola

Tre aggiunte trasformano una griglia di celle in una tabella che tutti possono leggere. Primo, <caption>, messo subito dopo il tag di apertura <table>, dà un titolo alla tabella; gli screen reader lo annunciano prima del contenuto, così chi ascolta sa di che cosa parla la tabella. Secondo, l'attributo scope su ogni <th> dice se etichetta una colonna (scope="col") o una riga (scope="row"). Con esso, uno screen reader può leggere Rye, Price, 5.00 invece di un semplice 5.00. Terzo, <thead>, <tbody> e <tfoot> raggruppano le righe di intestazione, le righe del corpo e le eventuali righe dei totali. Rendono chiara la struttura, aiutano il CSS a dare stile a ogni parte e permettono ai browser di ripetere l'intestazione su ogni pagina stampata di una tabella lunga.

Celle che si estendono

Una cella può estendersi su più colonne con colspan o su più righe con rowspan. In un orario settimanale, una pausa pranzo che copre tutti e cinque i giorni feriali può essere un'unica cella con colspan="5". Quando una cella si estende, la riga in cui si trova ha bisogno di meno celle: se una riga ha normalmente 6 celle e una di esse ha colspan="5", quella riga contiene solo 2 celle nell'HTML. Usa le estensioni quando rispecchiano i dati; le tabelle molto complesse sono difficili da leggere per tutti, quindi spesso è meglio dividere una tabella grande in due più semplici.

Le tabelle larghe possono essere un problema sui telefoni. Una tabella non può andare a capo come il testo, quindi una tabella con molte colonne può essere più larga dello schermo. Una soluzione comune è racchiudere la tabella in un elemento che scorre lateralmente da solo, con il CSS, così il resto della pagina non si allarga.

Tieni i dati di ogni cella il più semplici possibile: un valore per cella, le unità di misura nell'intestazione (Prezzo in euro) invece di ripeterle in ogni cella, e nessuna cella vuota usata come distanziatore. Una tabella costruita così è più facile da leggere ad alta voce, da ordinare e da incollare in un foglio di calcolo.

tableAvvolge una tabella di dati
trRiga della tabella
tdCella di dati
thCella di intestazione che etichetta una riga o una colonna
captionTitolo della tabella, primo elemento dentro table
scopeDice se un th etichetta una colonna (col) o una riga (row)
colspan / rowspanUna cella che copre più colonne o righe
  1. Quando dovresti usare una tabella?
    • Per dati organizzati in righe e colonne
    • Per l'impaginazione di un'intera pagina
    • Per qualsiasi elenco
  2. Quale elemento è una riga?
  3. Quale elemento etichetta una colonna?
    • th
    • td
    • caption
  4. Dove va caption?
    • Subito dopo il tag di apertura table
    • Alla fine della tabella
    • Prima della tabella
  5. Che cosa significa scope="row" su un th?
    • Etichetta le celle della sua riga
    • Etichetta la sua colonna
    • Si estende sulla riga
  6. Una riga ha normalmente 6 celle. Una cella ha colspan="4". Quante celle si scrivono in quella riga?
  7. Quale elemento raggruppa le righe di intestazione?
    • thead
    • tbody
    • tfoot
  8. Perché le tabelle di impaginazione sono un problema?
    • Gli screen reader le leggono come dati, e non si adattano agli schermi piccoli
    • Non sono HTML valido
    • Non possono contenere immagini
  9. Quale attributo fa coprire a una cella due righe?
    • rowspan="2"
    • colspan="2"
    • scope="2"
  10. Che cosa annuncia per prima cosa uno screen reader per una tabella con didascalia?
    • La didascalia
    • L'ultima riga
    • Niente
Punti chiave
  • Le tabelle servono per i dati: table, tr, th, td.
  • caption dà il nome alla tabella; scope collega le intestazioni alle celle; thead, tbody, tfoot raggruppano le righe.
  • colspan e rowspan uniscono le celle; tieni le tabelle semplici.
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