ID delle intestazioni delle tabelle
Silktide controlla le tabelle che collegano le celle alle intestazioni utilizzando l'attributo headers. In queste tabelle, ogni cella d'intestazione deve avere un ID proprio, altrimenti i collegamenti non possono funzionare.
Nelle tabelle complesse, ad esempio quelle con due livelli di intestazioni o con celle che si estendono su più righe, la relazione tra una cella e le relative intestazioni non può essere determinata basandosi solo sulla posizione. risolve questo problema con l'attributo headers: ogni cella di dati elenca i valori id delle celle d'intestazione che si applicano a essa. Questo funziona solo se ogni cella d'intestazione ha effettivamente un id.
<!-- Problema: la seconda intestazione non ha un id, quindi le celle non possono farvi riferimento -->
<table>
<tr>
<th id="name">Nome</th>
<th>Punteggio</th>
</tr>
<tr>
<td headers="name">Ada</td>
<td>98</td>
</tr>
</table>
Perché è importante
Quando una tabella utilizza associazioni headers, uno legge ad alta voce le intestazioni collegate prima di ogni valore, consentendo all'ascoltatore di tenere traccia della propria posizione all'interno di una tabella complessa. Una cella d'intestazione senza un id non può essere referenziata, quindi le celle sottostanti vengono annunciate senza contesto e la tabella diventa un esercizio di supposizioni per chi non può vederla.
Come risolvere il problema
- Assegna a ogni cella d'intestazione
<th>della tabella unidunivoco. - Aggiorna l'attributo
headersdi ogni cella di dati in modo che elenchi gli ID di tutte le intestazioni che si applicano a essa, separati da spazi:
<!-- Corretto: ogni intestazione ha un id e le celle vi fanno riferimento -->
<table>
<tr>
<th id="name">Nome</th>
<th id="score">Punteggio</th>
</tr>
<tr>
<td headers="name">Ada</td>
<td headers="score">98</td>
</tr>
</table>
- In alternativa, valuta la possibilità di semplificare la tabella. Le tabelle semplici con una sola riga o colonna di intestazioni non necessitano affatto di associazioni
headers: sono sufficienti le celle<th>con attributiscope, che sono anche molto più facili da gestire.
Come esegue i test Silktide
- Individua ogni tabella in ciascuna pagina.
- Ignora le tabelle in cui nessuna cella utilizza un attributo
headers: questo controllo si applica solo alle tabelle che hanno scelto di usare associazioni esplicite tra celle e intestazioni. - Nelle tabelle rimanenti, segnala ogni cella d'intestazione
<th>priva di un attributoid.