0Pricing
HTML Academy · Lezione

Accessibilità delle tabelle: scope, summary e caption

Aggiungere didascalie e attributi scope per supportare gli screen reader

Accessibilità delle tabelle: scope, summary e caption è una lezione HTML Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento HTML Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso HTML Academy include 4 lezioni in totale.

Perché l'accessibilità delle tabelle è importante

Gli utenti dei lettori di schermo navigano nelle tabelle di dati cella per cella: hanno bisogno del contesto dell'intestazione per ogni cella di dati che leggono.

  • Senza un markup corretto, i lettori di schermo leggono solo valori grezzi, senza il contesto della colonna o della riga
  • Le tabelle accessibili rendono i dati comprensibili a tutti

L'elemento caption

<caption> fornisce un titolo visibile per la tabella:

<table>
  <caption>Q4 2024 Product Sales by Region</caption>
  <thead>...</thead>
  <tbody>...</tbody>
</table>
<!-- caption is the first child of table -->
<!-- Screen readers announce it when entering the table -->
<!-- Helps all users understand the table's purpose at a glance -->

Stile di caption

Modifichi lo stile e la posizione di caption con i CSS:

caption {
  caption-side: bottom;  /* or top (default) */
  font-style: italic;
  font-size: 0.875rem;
  color: #666;
  text-align: left;
  padding: 0.5rem 0;
}

L'attributo scope su th

L'attributo scope indica ai lettori di schermo a quali celle si applica un'intestazione:

<thead>
  <tr>
    <th scope="col">Name</th>      <!-- header for a column -->
    <th scope="col">Score</th>
    <th scope="col">Grade</th>
  </tr>
</thead>
<tbody>
  <tr>
    <th scope="row">Alice</th>    <!-- header for a row -->
    <td>95</td>
    <td>A</td>
  </tr>
</tbody>

Valori di scope

Valori dell'attributo scope:

  • col — l'intestazione si applica alle celle della stessa colonna
  • row — l'intestazione si applica alle celle della stessa riga
  • colgroup — l'intestazione si applica alle celle di un gruppo di colonne
  • rowgroup — l'intestazione si applica alle celle di un gruppo di righe (tbody/thead)

scope per intestazioni complesse

Le intestazioni estese utilizzano scope colgroup o rowgroup:

<thead>
  <tr>
    <th rowspan="2" scope="col">Name</th>
    <th colspan="2" scope="colgroup">2024</th>   <!-- colgroup -->
  </tr>
  <tr>
    <th scope="col">Q1</th>
    <th scope="col">Q2</th>
  </tr>
</thead>

L'attributo headers su td

Per le tabelle molto complesse, utilizzi headers per collegare esplicitamente le celle alle relative intestazioni:

<thead>
  <tr>
    <th id="hname">Name</th>
    <th id="hq1">Q1</th>
    <th id="hq2">Q2</th>
  </tr>
</thead>
<tbody>
  <tr>
    <th id="ralice" headers="hname">Alice</th>
    <td headers="hq1 ralice">95</td>
    <td headers="hq2 ralice">88</td>
  </tr>
</tbody>

Quando usare scope e quando headers

Linee guida:

  • Tabelle semplici con intestazioni su una sola riga → utilizzi scope="col" e scope="row"
  • Intestazioni complesse ed estese → utilizzi l'attributo headers con riferimenti agli ID
  • WCAG 1.3.1 richiede che le intestazioni delle tabelle siano associate programmaticamente alle celle di dati corrispondenti

aria-label su table

Quando non è opportuno visualizzare caption, utilizzi aria-label:

<!-- caption with visually-hidden class -->
<table aria-label="Q4 2024 Product Sales by Region">
  ...
</table>
<!-- Or use aria-labelledby to reference a heading -->
<h2 id="table-title">Sales Data</h2>
<table aria-labelledby="table-title">...</table>

Verificare l'accessibilità delle tabelle

Come verificare che la tabella sia accessibile:

  • Utilizzi il pannello Tables del lettore di schermo (VoiceOver, NVDA)
  • Installi l'estensione del browser axe DevTools
  • Esegua la CLI pa11y sull'URL della pagina
  • Il W3C Markup Validator rileva l'assenza di caption

Attributo summary (deprecato)

L'attributo summary veniva utilizzato dai lettori di schermo per le tabelle complesse, ma ora è deprecato in HTML5:

<!-- Old HTML 4.01 — do not use: -->
<table summary="This table shows quarterly sales...">

<!-- Modern HTML5 replacement: -->
<table>
  <caption>This table shows quarterly sales...</caption>
</table>
<!-- Or: aria-describedby to a paragraph -->

Checklist per tabelle accessibili

Checklist di accessibilità per le tabelle di dati:

  • Utilizzi <caption> per assegnare un'etichetta alla tabella
  • Utilizzi <th> per tutte le celle di intestazione
  • Aggiunga scope a tutti gli elementi <th>
  • Utilizzi <thead>, <tbody>, <tfoot> per la struttura
  • Per le tabelle complesse, utilizzi id + headers

Verifica rapida

Quale valore di scope deve utilizzare per un th che funge da intestazione di un'intera colonna?

Riepilogo: accessibilità delle tabelle

Concetti essenziali delle tabelle accessibili:

  • <caption> — titolo visibile della tabella, annunciato dai lettori di schermo
  • scope="col" — intestazione di colonna
  • scope="row" — intestazione di riga
  • scope="colgroup/rowgroup" — intestazioni estese
  • id + headers — per intestazioni complesse a più livelli
  • Esegua test con axe, pa11y o VoiceOver

Domande Frequenti

La lezione «Accessibilità delle tabelle: scope, summary e caption» è gratuita?

Sì — il testo completo di «Accessibilità delle tabelle: scope, summary e caption» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso HTML Academy, passa a CoddyKit PRO. Il corso HTML Academy include 4 lezioni in totale.

Cosa imparerò in «Accessibilità delle tabelle: scope, summary e caption»?

Aggiungere didascalie e attributi scope per supportare gli screen reader Eserciti HTML Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare HTML Academy?

Non è richiesta alcuna esperienza precedente. HTML Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Accessibilità delle tabelle: scope, summary e caption»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione HTML Academy?

Sì. Ogni lezione HTML Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. table, tr, td e th
  2. Struttura di thead, tbody e tfoot
  3. colspan e rowspan per unire celle
  4. Accessibilità delle tabelle: scope, summary e caption
← Torna a HTML Academy