Newsgroup: it.lavoro.professioni.webmaster
Titolo: La perfezione non esiste?

Tempo fa me ne fregavo degli standard, della grafica curata,
dell'accessibilità, della compatibilità crossbrowser. Quanto sopra era
riferito ad un livello di ragionamento alquanto primordiale. Curavo solo i
contenuti (del resto penso ad un tipo di sito in cui sono importanti quasi
solo i contenuti: non si vende niente, non si deve fare bella impressione
con gli effetti ma solo con le parole e qualche immagine esplicativa).
Poi ho deciso di fare un bel passo in avanti. E dopo un po' di ragionamento
non credo di riuscire a "levarci le gambe"...
Fonti ufficiali sconsigliano il layout tabellare (comodissimo; ma è per il
discorso dell'accessibilità, nel senso che i browser non grafici distinguono
male fra una tabella di layout ed una tabella - che so - di dati?), quindi
andiamo coi CSS, magarri livello 2 (con i # e gli id: ottimi incolonnamenti
e bordi dei box), ma solo i browser dalle versioni 6 lo supportano
discretamente. Vabbè metto un javascript che rediriga in base al sistema
operativo ed alla versione del browser (tutto il sito o singoli css). Ma
chiaramente i browser vecchissimi sene fregano dei javascript.
E poi c'è la grafica, che dovrebbe essere leggerissima e almeno al limite
della decenza.
Unica "soluzione" che mi viene: un sito per gli ultimi browser con CSS
livello 2 e senza layout tabellare, ed una versione per la preistoria, con
tabelle solo per i dati, grafica scarnissima ed HTML 3.2, con redirezione
latoserver.
Oppure continuare a fare le cose come prima, col subdolo ed insinuante
dubbio che un 15% di potenziali utenti non vedranno il mio sito.
Mah..

 male fra una tabella di layout ed una tabella - che so - di dati?)
le tabelle andrebbero utilizzate esclusivamente per la visualizzazione di
dati

 dati
'visualizzazione'? E come visualizza una tabella un dispositivo Braille?

 'visualizzazione'? E come visualizza una tabella un dispositivo Braille?
opps... parola errata... mi ha gią ripreso Diodati in altra lista :-)))

 opps... parola errata... mi ha gią ripreso Diodati in altra lista :-)))
Insomma, sei nel W3C, devi stare attento, che poi chi legge si confonde, 
e pensa che l'HTML serva per impaginare.

> distinguono male fra una tabella di layout ed una tabella - che so - di
dati?
o c'è (anche) qualche altro motivo?
Grazie infinite.
Ciao

 e pensa che l'HTML serva per impaginare.
hai ragione... mi frusto da solo :-)

 o c'č (anche) qualche altro motivo?
Non e' che le tabelle siano del tutto inaccessibili: se contengono del 
normale testo, questo e' comunque leggibile da browser di qualsiasi tipo.
Il fatto e' che la funzione degli elementi (X)HTML e' di descrivere il 
significato del testo che contengono.
Allora TABLE (e gli altri elementi relativi alle tabelle) servono a 
descrivere la struttura (intesa come relazione tra intestazioni, righe, 
celle) di una tabella di dati, e non sono adatti a descrivere la 
struttura di un documento diviso in colonne.
In pratica usando TABLE per impaginare 'confondi' le idee al browser, 
grafico o non grafico che sia.
Solo che gli utenti di browser grafici possono riconoscere le colonne 'a 
vista', dallo spazio che separa verticalmente i contenuti e da altri 
elementi visivi.
Gli utenti di browser non grafici [1] invece devono affidarsi al 
trattamento dei dati che puo' fare l'applicazione.
Questo trattamento pero', visto che pero' in HTML non esiste un modo per 
distinguere tra tabelle di impaginazione e di dati, sara' inconsistente 
tra siti diversi: lo user-agent deve 'tirare a indovinare' per 'capire' 
qual'e' lo scopo della tabella e presentarla in maniera adeguata 
all'utente.
Tra l'altro le tabelle non sono comunque lo strumento adatto per 
dividere in colonne una pagina anche nella "tipografica classica" 
(chiamiamola cosi') infatti i word processor (Word, OpenOffice) e i 
programmi di impaginazione (Xpress, InDesign, etc) mettono a 
disposizione entrambi gli strumenti (colonne e tabelle).
Per quanto riguarda l'uso dei CSS: nemmeno i fogli di stile sono stati 
(volutamente) progettati per 'incolonnare' (il supporto per le colonne 
sara' forse in un modulo CSS3).
Dico 'volutamente' perche' i CSS (livello 1 e 2) sono stati progettati 
dall'inizio _solo_ per fornire un migliore controllo su quello che i 
browser gia' facevano, cioe' controllare lo scorrimento del testo (e 
qualche elemento esterno) da un margine all'altro della pagina, 
fondamentalmente (piu' qualche aggiunta tipo i bordi, cursori, etc). Poi 
c'e' la proprieta' 'float' e il posizionamento, che permettono di creare 
alcuni effetti speciali, e simulare l'incolonnamento, ma il risultato 
non e' proprio lo stesso.
Tornando al subject: "La perfezione non esiste?".
No, non esiste. La cosa migliore che puoi fare e' conoscere e valutare 
le alternative a disposizione e poi scegliere un compromesso (float o 
tabelle) che permetta di fornire la migliore esperienza possibile agli 
utenti del tuo sito.
[1] sarebbe piu' corretto dire 'browser che non sono in grado di 
disegnare colonne', perche' esistono browser testuali che gestiscono 
tabelle (e anche frames).

 della decenza.
Guarda questo codice:
<html>
<head>
<style>
#framebody {width:100%;}
#frametop {width:100%;}
#framemain {width:100%; height:0%}
#framesx {float:left; width:150px;}
#framecontent {width:100%;}
#framedx {float:right; width:150px;}
#framebottom {width: 100px;}
</style>
<head>
<body>
<div id="framebody">
<div id="frametop">
Frame top
</div>
<div id="framemain">
<div id="framesx">
Frame left
</div>
<div id="framedx">
Frame right
</div>
<div id="framecontent">
Frame content
</div>
</div>
<div id="framebottom">
Frame bottom
</div>
</div>
</body>
</html>
Scritto in questo momento.
Provalo con versioni vecchiotte NN4 e IE4 e successive.
Non è poi così male rispettare lo standard.
Ciao, Luca

 normale testo, questo e' comunque leggibile da browser di qualsiasi tipo.
[cut]
Ottimo intervento.
Grazie del contributo.
Ciao

 Non č poi cosě male rispettare lo standard.
Notevole esempio!
Ciao

> Notevole esempio!
Era solo un esempio per rispettare lo standard senza lasciarsi prendere
dall'impaginazione delle tabelle.
Ciao