[webaccessibile] headers o scope?

Michele Diodati michele a diodati.org
Lun 7 Giu 2004 19:17:35 CEST


Maurizio B.:
Lo scopo? Mantenere una relazione tra le celle e le loro 
intestazioni. 

Michele D.:
Certo, lo scopo è mettere in relazione tra loro le celle e le intestazioni. Immaginate cosa significhi sentire dal sintetizzatore la lettura di una serie di cinque intestazioni (p.es.: codice articolo, nome, categoria, prezzo senza iva e prezzo con IVA) e dover poi ricostruire a memoria, dopo la lettura magari di sette o otto righe di tabella, ciascuna voce ascoltata a quale colonna di intestazione si riferisca. E' un delirio. Una tecnologia assistiva ben fatta dovrebbe ripetere il nome di ciascuna intestazione correlata ad una cella di dati, prima di leggere il contenuto della cella medesima: ecco a cosa serve collegare tra loro le celle con headers/id o scope. Poiché un simile sistema può portare ad un'enorme ridondanza di informazioni, è stato aggiunto l'attributo 'abbr', che ha funzione opposta a quella dell'elemento ABBR: deve fornire la forma contratta di una voce d'intestazione (p.es. "prof" invece di "professore"), in luogo della forma estesa di un'abbreviazione, come fa invece l'omonimo elemento.

Maurizio B.:
Bastavano a mio avviso th e scope, perché di fatto id e 
headers sono solo un modo più analitico (e dispendioso) di definire 
delle relazioni. Però devo dire che mi sono ricordato di un esempio in 
cui forse con th e scope non si riusciva davvero a stabilire la 
relazione della cella con le intestazioni, ma è su un libro e mo' me la 
devo cercare, mi sa che passo almeno a mercoledì... ;-)

Quindi forse non bastavano, e han fatto bene a metterle entrambe.

Michele D.:
L'unica situazione sensata in cui l'uso di 'scope' potrebbe essere inadeguato è quella in cui in una stessa colonna o in una stessa riga siano presenti più voci d'intestazione, separate tra loro da celle di dati che si riferiscono solo ad una o più delle intestazioni presenti in quella colonna (o riga), *ma non a tutte*, come nell'esempio "Categorizzare le celle", presente alla fine del capitolo sulle tabelle nelle specifiche HTML 4.01 (http://www.diodati.org/w3c/html401/struct/tables.html#h-11.4.2 , in cui viene presentato anche l'attributo axis).

Così come è descritto nelle specifiche, 'scope' vale per l'intera estensione della riga o della colonna, mentre 'headers' e 'id' sono da usare in situazioni in cui le celle d'intestazione sono distribuite nella tabella in maniera "irregolare", qualsiasi cosa ciò voglia dire ("L'attributo headers è necessario in generale quando le intestazioni sono posizionate irregolarmente rispetto ai dati ai quali si riferiscono").

Poiché non ha senso mettere l'intestazione al centro di una cella o di una riga e pretendere che si riferisca anche alle celle che la precedono in alto o a sinistra, mi sembra che l'unica condizione di irregolarità possibile sia quella che ho descritto sopra (due o più intestazioni per riga/colonna + celle di dati collegate solo ad alcune delle intestazioni presenti sulla stessa riga/colonna), e che è trattata nell'esempio citato dalle specifiche HTML 4.

Ciao,
Michele


Maggiori informazioni sulla lista webaccessibile