Prima di lasciare definitivamente le tabelle, proviamo a rispondere ad un quesito apparentemente teorico, ma ricco invece di importanti conseguenze pratiche: è possibile distinguere in modo assoluto una tabella di dati ("data table") da una tabella d'impaginazione ("layout table")? Esiste cioè qualche tratto caratteristico che appartiene solo ad un tipo e non all'altro? Se vogliamo rispettare la raccomandazione delle WCAG 1.0 che ci consiglia di evitare per quanto possibile l'uso delle tabelle d'impaginazione, dobbiamo pur essere in grado di distinguere tra i due tipi con una certa sicurezza! Su quali tratti ci baseremo per operare tale distinzione?
Purtroppo la risposta a questa domanda non è affatto semplice o banale. Infatti i due tipi di tabella possono utilizzare gli stessi elementi e attributi HTML (ecco tra l'altro il motivo per cui i validatori automatici non sono in grado di determinare a quale tipo appartenga una tabella). La distinzione va effettuata a livello di contenuto, di significati.
Una prima cosa che possiamo notare è che una tabella di dati somiglia molto ad una tipica tabella di database. Esistono cioè delle relazioni orizzontali e verticali tra i contenuti delle celle: non possiamo spostare il contenuto di una cella ad un'altra colonna o ad un'altra riga senza alterare quei rapporti.
Consideriamo per esempio la tabella dei corsi di lezione, già analizzata in precedenza. Prendiamone solo una parte:
Nome del corso |
Insegnante |
Descrizione |
Codice |
Tassa |
Dopo la Guerra Civile |
Dr. John Wroughton |
Il corso esaminerà i turbolenti anni in Inghilterra dopo il 1646. 6 incontri settimanali, a partire da Lunedì 13 Ottobre. |
H27 |
£32 |
Introduzione all'Inghilterra degli Anglo-Sassoni |
Mark Cottle |
Corso di un solo giorno, introduttivo alla ricostruzione della società anglo-sassone nel Primo Medioevo. Sabato 18 Ottobre. |
H28 |
£18 |
Se invertiamo il contenuto di cella "Mark Cottle" con il contenuto di cella "Dr. John Wroughton", alteriamo irreparabilmente i dati. Ci troveremo infatti Mark Cottle come insegnante del corso sulle conseguenze della Guerra Civile e il dr. Wroughton come insegnante del corso sull'Inghilterra degli Anglo-Sassoni. Analogo disastro succede se invertiamo "Mark Cottle" con "Introduzione all'Inghilterra degli Anglo-Sassoni": ci ritroveremo con il nome del professore al posto del nome del corso e viceversa. Insomma, per una simile tabella vale la seguente regola: non si può spostare il contenuto di una cella
senza alterare le relazioni orizzontali e/o verticali tra i dati. Possiamo essere dunque sufficientemente sicuri che abbiamo a che fare in questo caso con una tabella di dati.
Consideriamo ora la tabella seguente, che rappresenta una versione schematica e ridotta (priva di tabelle annidate) della tabella principale esterna che si trova in tabforma.htm.
cella n.1 Testata (nome del sito, ecc.) |
||
Cella n.2 Voce di menu n.01 Voce di menu n.02 Voce di menu n.03 Voce di menu n.04 Voce di menu n.05 Voce di menu n.06 Voce di menu n.07 Voce di menu n.08 Voce di menu n.09 Voce di menu n.10 |
Cella n.3 occhiello sommario: testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo testo leggi il seguito |
Cella n.4 Gruppo n.1 collegamento n.01 collegamento n.02 collegamento n.03 collegamento n.04 |
cella n.5 Pie' di pagina (diritti d'autore ed altre informazioni) |
Non considerando l'effetto sull'aspetto grafico della pagina in cui si trova la tabella, nulla ci vieterebbe, per esempio, di invertire il contenuto della cella n.2 (il menu di navigazione) con il contenuto della cella n.1 (la testata del sito), oppure il contenuto della cella n.4 (i link ad altri siti) con il contenuto della cella n.5 (il pie' di pagina). L'insieme delle informazioni veicolate dalla tabella conserverebbe il proprio significato, anche dopo aver scambiato di posizione le varie celle. Ciò perché in una simile tabella non vi sono relazioni semantiche orizzontali e verticali tra le celle: il menu di navigazione è indipendente dalla testata, i link ad altri siti sono indipendenti dal pie' di pagina, l'articolo nella cella n.3 è indipendente da tutto il resto. Una simile tabella è usata unicamente allo scopo di disporre sulla pagina in certe posizioni precise i singoli contenuti. Possiamo essere sufficientemente sicuri, pertanto, di avere a che fare in questo caso con una tabella d'impaginazione.