Toh, ancora tabelle vs. div…

Mercoledì 4 Febbraio 2009 - 08:59

di Cesare Lamanna

CSS

Chi l’avrebbe detto… All’alba dell’anno di grazia 2009, su uno dei siti più frequentati da sviluppatori web di ogni dove, si accatastano centinaia di commenti in calce ad un thread intitolato I CSS non dovrebbero essere usati per i layout (il link punta a questo articolo).

Non vi basta? Ancora decine di commenti ad un thread, sempre su Reddit, che prende spunto da un altro intervento sul tema.

L’origine di tutto? Un lungo post tutto dedicato ai troll dei CSS pronti a spararti addosso appena tiri in ballo idee come quella che le tabelle per i layout sono di gran lunga più comode ed efficaci dell’accoppiata div/CSS (accompagna il tutto lista dei primi 20 siti del rank di Alexa, con in evidenza l’uso sugli stessi di tabelle per il layout globale o di specifiche sezioni della pagina).

Difficile sintetizzare qui il contenuto di interventi così corposi e a dire il vero pieni di provocazioni molto stimolanti. Un argomento comune mi pare di poterlo individuare: nell’implementazione attuale, i CSS non sono lo strumento ideale per realizzare un layout; forse un giorno lo saranno, visto che nei CSS3 sono previsti dei moduli ad hoc, ma se si cerca una soluzione che, semplicemente, funzioni le tabelle sono ancora l’opzione migliore. Mi piace chiudere con questa citazione dal post di Rondam Ramblings:

Io credo che i computer debbano essere al servizio delle persone e non il contrario. Ciò significa che se qualcosa che è di per sé semplice diventa difficile, allora c’è qualcosa di sbagliato.

Non tutti concordano su questo punto. A un numero sorprendente di persone piacciono le cose complicate. Non ho mai capito perché, ma è un dato di fatto.[…]

Tutto ciò significa che quando voglio, diciamo, che qualcosa appaia al centro dello schermo, dovrei essere in grado di farlo semplicemente scrivendo “center” piuttosto che “margin:auto”. Se non posso dire ad un computer di centrare qualcosa scrivendo “center”, allora temo che sia il computer ad essere dalla parte sbagliata, non io.

Tags:

Categoria: CSS | Permalink

Commenti

1

beh, divido a DIV la struttura della pagina

ma poi per affiancare 4 o 5 colonne di titolo/testo che ti portano in sezioni diverse, o per dividere una serie di foto + testo di didascalia sotto che fanno da link verso altrettanti punti… una bella riga di tabella a 5 colonne e via
faccio prima ed è poi una semplice tabella (Stile e misure indicate nel css, oltretutto) piazzata a metà pagina
non succedono drammi :P

# - postato da lupu - 04 Febbraio 2009 - 09:11

2

E se dopo tutti quei commenti, questo articolo è il risultato, deduco che di CSS e di HTML tu abbia capito ben poco. E la cosa triste è che questo articolo potrebbe avere una notevole visibilità.

Fra tutti i commenti, fra tutti i commentatori, leggi attentamente quelli che i CSS e l’HTML lo sanno usare, non quelli che dicono “non sono un esperto CSS, ma dico la mia lo stesso…”

# - postato da cisco - 04 Febbraio 2009 - 09:13

3

ah, comunque questa cosa mi rassicura

talvolta mi trovavo in difficoltà psicologica perchè per fare alcune cose dovevo usare mille trucchi e mi pareva di piegare lo spazio/tempo/logica del css fino a strapparlo
(non parliamo di farla poi funzionare su IE6…)

a quanto pare per alcune cose è proprio così allora :)

# - postato da lupu - 04 Febbraio 2009 - 09:13

4

Non capisco come si possa sperare di battere l’argomentazione che le tabelle vanno usate solo per mostrare - per l’appunto - tabelle di dati.

# - postato da William Ghelfi - 04 Febbraio 2009 - 09:15

5

D’accordo al 100% con William. Inoltre vorrei ricordare che si va verso il web semantico, quindi non capisco come nel 2009 ci siano ancora discussioni del genere.

Finché gli sviluppatori continueranno ad usare tecniche vecchie, palesemente non semantiche, invece che quelle nuove, magari acerbe ma che vanno nella giusta direzione, i produttori di browser continueranno a non innovare e lo sviluppo del web rimarrà fermo.

Se poi impaginare con i CSS vi crea problemi forse è ora di cambiare lavoro.

# - postato da Elia Contini - 04 Febbraio 2009 - 09:35

6

Premetto che saranno… 3 anni che non uso una tabella per un layout? Quindi diciamo che non sono esattamente il paladino protettore delle tabelle :-)

Però faccio fatica a capire come possiate essere così testardi. Le tabelle semanticamente parlando non hanno senso se usate per il layout, ma sono senza dubbio più facili e veloci dei css (parlo di struttura, non di grafica).
Con questo non voglio dire che sia giusto usarle, ma che è assurdo stupirsi ogni volta che una persona non troppo propensa a impazzire con i css decida di usare una tabella.

La colpa non è di chi le usa, ma di quelle persone che a distanze di anni non sono ancora riuscite a fornire uno strumento semanticamente valido che sia altrettanto rock-solid.

# - postato da Giacomo - 04 Febbraio 2009 - 09:43

7

ma no probabilmente il problema non è tanto l’impaginare, quando l’abuso dove magari non servirebbe o non è adatto, usando trucchi di ogni tipo
per la struttura del sito ti lascia una comodità e una pulizia cui è difficile tornare indietro

ma se qualcuno vuole per forza fare una normale tabella con dei div… beh è più comoda una bella tabella hmtl, esiste, non è vietato usarla :)

# - postato da lupu - 04 Febbraio 2009 - 09:44

8

sono convinto che il layout debba essere sviluppato interamente in css, è questo il modo migliore di organizzare, gestire e strutturare un Layout.

c’è da dire però che per pagine interne (non di pubblico dominio), sezioni amministrative o elementi dove la suddivisione di presentazione e contenuti non è così “fondamentale” continuo a usare le tabelle (in css) perchè effettivamente risparmio tempo solo perchè ho bisogno di scrivere “meno” codice e di starci meno dietro con allineamenti / posizionamenti / sforamenti vari.. forse era questo il senso del post..

# - postato da antonio gioia - 04 Febbraio 2009 - 09:48

9

Concordo con Elia: professarsi webmaster, nonostante l’accrocchio di codice tipo… “tanto si vede bene ed è più semplice usare le tabelle”, non la vedo una cosa molto ortodossa. Io preferisco sbatterci un bel pò la testa ma non usare le tabelle, tranne quando obbligatorio - ma non per il layout. Forse per questi motivi abbiamo ancora tra i piedi browser tipo IE che la fanno da “padroni” con le tabelle. IE7 non è da meno. Ad IE8 preferisco non pensarci, per ora; se la mano è quella… non mi fido che possa essere standard.
Ma anche se dovessoro presentarsi con IE100, ci sarà semopre qualcuno che penserà ancora alla retrocompatibilità con vecchi browsers. Decidiamoci davvero a buttare tutti i siti fatti con le tabelle. Non se ne può più.

# - postato da Floyd - 04 Febbraio 2009 - 09:50

10

Io nei siti realizzati dopo il 2004 ho usato sempre layout semantico con XHTML+CSS.
Però devo ammettere che ci sono alcuni casi in cui le tabelle danno una flessibilità maggiore.
Chi spara li suo assoluto che “le tabelle servono solo per visualizzare tabelle di dati” secondo me sbaglia di grosso, tant’è che queste rimangono ancora la cosa + simile alle “colonne” utilizzate nei menabò tipografici. Infatti il concetto stesso di “colonna” con i div va a farsi friggere, per essere sostituito dall’indubbiamente + vasto e flessibile concetto di livelli (che con position:absolute e zindex diventano un po’ tipo photoshop). Però se faccio 2 colonne con una tabella e sotto ci voglio mettere qualcosa non ho problemi. Se le faccio con i Div, innanzitutto devo usare il clear, poi ho il problema che le due colonne, nel momento in cui contengono dati di lunghezza differente, non si allineeranno mai, rendendo impossibile l’utilizzo di background…
Ora, tutte queste cose si risolvono ed io le risolvo continuamente per seguire il trend pro Div e contro Table, ma in fondo in fondo secondo me, se la smettessimo di essere assolutisti, accetteremmo che in alcuni casi le tabelle sono molto comode e funzionali e, sopratutto, si possono anche usare in modo pulito e chiaro utilizzando al 100% i css per gli stili.

# - postato da Maurizio Natali - 04 Febbraio 2009 - 09:56

11

L’utilizzo di div e css è semplice, anzi, semplicissimo. Se… tutti i browser interpretassero il codice allo stesso modo. Purtroppo, double floating margin, peekaboo, wrong box model, etc. complicano un “pochino” la cosa. Ma, se si hanno le giuste conoscenze, si riesce, persino, a evitarle in fase di scrittura del codice. Le tabelle servono ai dati, i post stupidamente polemici a creare traffico e backlinks.

# - postato da Giuseppe Caruso - 04 Febbraio 2009 - 10:21

12

Chi odia l’uso dei css per il layout in realtà odia IE senza saperlo, questo è il motivo.

E’ importante notare che con IE8 queste proprietà saranno finalmente disponibili: sto accarezzando l’idea di emularle tramite js su IE7 e su IE6, anche se questo va contro il mio modo di lavorare…

# - postato da Riot - 04 Febbraio 2009 - 10:47

13

credo che ormai la transizione da TABLE a DIV sia completata. Smettiamo di guardarci indietro perchè gli strumenti oggi a disposizione sono di gran lunga più potenti e flessibili…

Io personalmente soffro ancora nel vedere il calendario standard di Wordpress con tutti quei TD,TH,TR… :-)

Le tabelle lasciamole fare (male) a Microsoft Word!

# - postato da Maurizio - 04 Febbraio 2009 - 11:00

14

Assioma:
I div sono uno strumento versatile e imprescindibile per sviluppare layout web e per gestire e aggiornare in modo veloce questi ultimi.

Confutazione:
Nell’abbinamento div + float, i soliti bachi di IE e una gestione meno intuitiva rispetto alle tabelle, hanno spinto molti web designer a preferire queste, generalmente per ottenere in poco tempo un layout cross-browser.

Considerazioni:
A mio parere, fintantoché il web design prende come modello il design tipografico a colonne, quello che serve al designer è un elemento versatile come i div, ma dall’intuitività delle tabelle, e che si comporti come queste. Attualmente siamo costretti a trovare escamotage grafici per dare l’idea della divisione in colonne dei nostri layout div + CSS (parlo ad esempio del background ripetuto in verticale che simula le varie celle, perché i div flottanti non si allineano in altezza): questo mi fa pensare che div e float non siano la soluzione ideale per questo tipo di layout.
Ma è il migliore tra tutte quelle che possiamo utilizzare.

Chissà, un domani che IE8 supporterà la proprietà CSS display:table, magari si apriranno alternative migliori alla creazione di pagine con contenuti in colonna create usando div.

# - postato da Idrolitina - 04 Febbraio 2009 - 11:31

15

Concordo con Idrolitina, ma in tutto questo noto anche un paradosso… se poi ci troviamo ad usare div con display:table… non facciamo quasi quasi prima ad usare le table?

ripeto che si sta’ solo discutendo sul concetto, io continuo ad usare div al momento, con tutti gli escamotage del caso per risolvere i problemi indicati da me ed idrolitina.

# - postato da Maurizio Natali - 04 Febbraio 2009 - 11:45

16

ERGO
ma perchè dobbiamo fare tutta questa fatica, sistemate questa cosa così non dobbiamo fare salti mortali per alcune cose :)

si conclude che è ovvio che la cosa nasca da problematiche di visualizzazione, come si dice sopra “odia IE senza saperlo”
anche se ora vorrei sapere chi ama IE 6 :p

# - postato da lupu - 04 Febbraio 2009 - 11:45

17

E allora perche’ visualizzare un div con “display:table”, e non usare una tabella?!

Mi trovo bene con l’uso di div e css, e lo faccio da anni, uso le tabelle solo se strettamente necessario, ma non nego di essere d’accordo con il post in diversi passi. Molte volte l’uso accanito del CSS implica solo di complicarsi la vita. Perche’ per centrare devo usare “margin:auto”?!! Sulla base di quale logica?!

# - postato da Emiliano - 04 Febbraio 2009 - 12:02

18

ribadisco: finché i web developer usano vecchie tecniche per avere vita facile i produttori di browser non si muoveranno.

la carta stampata è un media, il web un altro. I due media sono completamente differenti. Chi ancora pensa che un sito web debba essere simile ad una edizione cartacea, mi dispiace dirlo, ma non ha capito granché.

usabilità e accessibilità: non mi dilungo perché si potrebbe parlare per anni. Chi sostiene che sia più semplice usare le tabelle sa che cosa comporta per uno screenreader o altre tecnologie assistive? (OK è possibile rendere accessibile un layout a tabelle, ma è necessario un overhead informativo che potrebbe infastidire gli utenti di tali tecniologie)

aggiornarsi: esistono ottime risorse anche in italiano.

# - postato da Elia Contini - 04 Febbraio 2009 - 12:32

19

Io farei scherzosamente una parafrasi alla Yoda, che sintetizza tutto:

Tabelle per l’impaginazione, tag soup, tag obsoleti… il lato oscuro essi sono.
Il lato oscuro è più forte? No! Più rapido, più facile, più seducente.

http://www.youtube.com/watch?v=RBcfU0Wj0Jc

Insomma, indubbiamente usare le tabelle per l’impaginazione è più facile e veloce (e non nascondo di averlo fatto anch’io). Ma è sbagliato. Punto.
Perchè? Perchè complicarsi la vita? Leggete un paio di Recommendation W3C e lì troverete tutte le risposte ai vostri dubbi. Certo, se tutti i browser supportassero correttamente gli standard non staremmo qui a cantarcela e suonarcela su queste cose. Ma niente è mai facile.

E allora perche’ visualizzare un div con “display:table”, e non usare una tabella?!

La risposta è nella domanda stessa: VISUALIZZARE i dati come una tabella non significa che questi dati SIANO una tabella. Quando create un layout a tre colonne, poi fate la somma dei totali? Ordinate le colonne come se foste davanti ad un foglio di calcolo di Excel? NO. Quindi quello che avete davanti non è una tabella e quindi non è semanticamente corretto demarcarlo col tag table.

Separate sempre il contenuto (struttura, semantica) dalla presentazione (formattazione, CSS), per non cadere nel lato oscuro!
^______________^

Sui motivi che ci portano a ragionare sempre per tabelle (anche se sarebbe più corretto parlare di “gabbie”), c’è l’eredità della grafica editoriale per la stampa (visto che all’inizio era l’unica disciplina affine e perchè di fatto le pagine web sono metafore di impaginati stampati su carta) e lo spopolare di editor WYSIWYG come Dreamweaver che ci hanno abituato ad abusare del codice HTML inscatolando tutto dentro alle td senza sapere il perchè.

# - postato da Cheope - 04 Febbraio 2009 - 12:49

20

Basta! Devi farvi una confessione: io amo le tabelle perchè sono femmine ed odio i css perchè sono maschi!

# - postato da Egidio - 04 Febbraio 2009 - 12:54

21

Se il tipo pensa che una miriade di celle delle quali a volte non si capisce dove iniziano e dove finiscono, siano meglio dei div+css, francamente mi viene il dubbio che questo signore abbia mai scritto mezza riga di codice…
Personalmente non faccio piu’ siti con le tabelle dal 2003, e quando ne vedo uno rabbrividisco, ma non perche’ sono un estremo purista del codice, ma perche’ per fare la stessa cosa, con le tabelle sono almeno il triplo del codice.
Le tabelle le uso solo per tabulare i dati, ovvero quello per cui sono nate.

# - postato da Alessio Michelini - 04 Febbraio 2009 - 13:26

22

@cisco (commento 2): non so se ti riferivi a me quando dici:

E se dopo tutti quei commenti, questo articolo è il risultato, deduco che di CSS e di HTML tu abbia capito ben poco. E la cosa triste è che questo articolo potrebbe avere una notevole visibilità.

Se no ti riferivi a me, scusa; nel caso contrario mi sembra opportuno qualche chiarimento.

Tra il 2002 e il 2003, non oggi che è tutto così scontato, ho scritto per HTML.it prima una Guida CSS di base e poi una a XHTML in cui, tra l’altro, ci sono considerazioni come queste:

Gli standard: separati ma integrati. Prima si faceva tutto con HTML. Layout, stile, contenuto. Lavorare con gli standard significa invece usare un linguaggio per lo scopo per cui è stato concepito. La forza sta nell’integrazione dei singoli elementi.[…]

Cambiare mentalità. Separare il contenuto dalla presentazione e dalla logica di programmazione. Non è uno slogan vuoto. Significa progetti più gestibili. Informazioni più facili da ritrovare. Siti più accessibili e trasportabili su altri sistemi.[…]

Il passaggio ad XHTML può essere visto come un ritorno alle origini. HTML è nato come linguaggio per definire la struttura di un documento. Non ha nulla a che vedere con la presentazione. Eppure, è stato stiracchiato da tutte le parti, costretto a svolgere compiti per cui non è stato creato. Il caso delle tabelle è quello macroscopico. Sono nate per la presentazione di dati tabulari. Sono state impiegate come l’unico mezzo per costruire il layout della pagina.[…]

Nella guida XHTML c’è persino una lezione intitolata Tabelle addio

Nel 2004 abbiamo poi fatto uscire la guida ai layout con i CSS di Alessandro Fulciniti, il quale ha poi per 5 anni riempito un’intera sezione con articoli che vanno tutti nella direzione di diffondere l’idea che i layout si fanno con i CSS.

Sempre Alessandro ha ad un certo punto creato Layout Gala, una collezione di layout CSS che è stata salutata con elogi da gente come Eric Meyer e Dave Shea (basta cercare su Google).

Insomma, credo, personalmente e come editor di HTML.it che quelle iniziative ha curato e stimolato, di avere tutte le carte in regola su questo punto. E credo anche di potermi permettere di uscire con un post come quello di oggi, che, mi pare lampante, non contiene nessun invito a fare alcunché se non a discutere.

# - postato da Cesare Lamanna - 04 Febbraio 2009 - 13:38

23

Tra tutti i commenti mi sembra che solo Elia Contini abbia capito il senso del non usare tabelle per il layout…
Un sito Web è fatto per gli altri, non per se stessi… e nella parola “altri” è compreso ogni categoria di utente, anche chi ha qualche difficoltà a navigare il Web: perchè dobbiamo porre ulteriori ostacoli?
Se proprio si vuol utilizzare le tabelle per il layout occorre almeno farlo bene.
http://webaim.org/techniques/t.....ables/

# - postato da Carlo Poggi - 04 Febbraio 2009 - 14:19

24

@Alessio Michelini
Miriade di celle?
Per la maggior parte dei layout basterebbe 1 tabella sola con 3 righe e 2/3 colonne. Header, corpo (diviso in 2 o 3) e footer. Con una sola tabella (che e’ tutto tranne che illeggibile) hai ottenuto un layout a 2/3 colonne che funziona su qualsiasi browser, non hai perso tempo e puoi ancora usare la potenza dei css per creare la grafica.

Ripeto, non uso le tabelle, ma son d’accordo con chi dice che i css facciano schifo per la struttura (sebbene li usi)

# - postato da Giacomo - 04 Febbraio 2009 - 16:07

25

Mi trovo d’accordo con Rondam.
Sono un sostenitore del codice semantico, ma hanno fatto ben poco per fornire strumenti semplici ed efficaci per gestire il layout.

# - postato da Slam - 04 Febbraio 2009 - 16:58

26

@ Giacomo

[…] son d’accordo con chi dice che i css facciano schifo per la struttura […]

Usi i CSS per la struttura? Hai cambiato le specifiche del W3C?

Non so se ridere o piangere. Forse sono stato troppo ottimista dando per scontato che chi commentava avesse ben chiara la distinzione tra struttura e presentazione. Chi ha dei dubbi o proprio non sa di cosa si parla forse è meglio che legga attentamente il commento di Cheope e poi segua i link nel commento di Cesare Lamanna.

In più è necessaria una visita al sito del W3C.

# - postato da Elia Contini - 04 Febbraio 2009 - 17:02

27

@Elia Contini
Stavo usando il termine struttura in uno dei significati che la lingua ITALIANA comprende (dal demauro): “3 complesso degli elementi di una costruzione, di un impianto, di un veicolo, di un’imbarcazione, ecc., aventi funzioni di sostegno e di collegamento: s. di una casa, di una nave, s. principale, s. metallica di un ponte; estens., modo in cui tali elementi sono disposti e collegati
4a complesso o costruzione costituiti da più elementi.

E giusto per completezza, il termine layout (che l’autore dell’articolo da cui è partito il tutto utilizza) viene proprio tradotto come disposizione o struttura.

Mi chiedo come sia possibile che una persona con un’immensa conoscenza di css e html non sia riuscita a capire in quale senso usavo quel termine (soprattutto considerando che ho usato il termine layout per tutto il commento e anche un bambino di due anni avrebbe capito di cosa stavo parlando).

Sbruffone.

# - postato da Giacomo - 04 Febbraio 2009 - 17:31

28

Ma qui stiamo parlando di un argomento ben preciso con una sua terminologia ben precisa, dove ogni temine indica una determita cosa senza possibilità di errore. L’informatica è matematica!

Già dalle elementari insegnano che quando si parla di un particolare argomento con una sua terminologia, quella terminologia deve essere utilizzata e rispettata.

# - postato da Elia Contini - 04 Febbraio 2009 - 17:42

29

@Elia Contini
Se un termine non-propriamente-tecnico è contestualizzato (e se permetti lo era, visto che il mio commento trattava chiaramente di layout) non vedo il problema. Inoltre credo, sottolineo il credo, che struttura sia la traduzione più appropriata per il termine layout. Da WordReference: layout (graphic design: process of making layouts) grafica: struttura, layout.
(Mi scuso per il commento “scontroso” di prima, ma odio quando vengo insultato senza motivo)

# - postato da Giacomo - 04 Febbraio 2009 - 17:57

30

assolutamente d’accordo con il testo citato

non sono un troll e non sono nemmeno un servo del w3c e dei guru dei css,
sono solo un operaio del web al servizio dei miei utenti, qualsiasi browser essi intendano utilizzare, compreso internet explorer 6

abbiamo delle specifiche e dei codici sempre più burocratici e meno rispondenti alle esigenze di utenti e programmatori
solo una defenestrazione del w3c ci potrà salvare, prima occorre abbattere la muraglia degli integralisti puritani

# - postato da Mik - 04 Febbraio 2009 - 18:01

31

Non era mia intenzione insultarti.

Giusto per chiarirci: nel caso specifico di XHTML e CSS quando si parla di struttura ci si riferisce sempre alla marcatura semantica dei dati contenuti nella pagina, mentre quando si parla di layout grafico (impaginazione, penso sia la traduzione più corretta in questo contesto, ma la cosa è opinabile) ci si riferisce sempre alla presentazione di tali dati.

So di essere veramente pignolo e rompi palle :-D. In verità ho sfruttato la tua inesattezza per fare il punto della situazione. ;-)

In ogni caso, e questo mi preme sottolinearlo, esistono delle categorie di utenti che hanno esigenze particolari ed una marcatura sematica associata all’uso dei CSS permette loro di fruire il web in modo proficuo.

# - postato da Elia Contini - 04 Febbraio 2009 - 18:33

32

Sinceramente non me ne importa molto dei disabili.
Certo è terribile il fatto che delle persone non possano fruire di determinati contenuti, però a volte si devono fronteggiare dei costi alti e potrebbe non valerne la pena, in un’ottica meramente economica.

Ma con xhtml+css, appropiatamente usati, anche i disabili possono usufruire dei contenuti di una pagina web, e questa è una cosa meravigliosa perché i costi di produzione non aumentano e ci sono una miriade di altri vantaggi.

I motori di ricerca trattano meglio il sito, aggiornare/cambiare grafica e contenuti è facilissimo!, così come aggiungere pagine eadattare il contenuto a nuovi dispositivi.

Chi ancora non è passato al table-less secondo me lo ha fatto solo per ignoranza verso il concetto di divisione tra semantica/presentazione, ma è facile da capire, o perché non vuole imparare xhtml+css, ma potrebbe per quanto incapace possa sentirsi,
o perché non riesce a proiettare un progetto in un lungo arco di tempo, dunque non riesce a vedere l’uso delle tabelle come uno svantaggio, ma lo è.

Ovviamente ci potrebbero essere delle eccezioni alla regola, ma in linea di massima è così: il web è fornire dei contenuti, presentarli per bene in modo che siano ben assimilati dall’utente, non far vedere come siamo bravi con photoshop; e per raggiungere questo scopo divisione tra semantica e presentazione è la cosa migliore da fare.

# - postato da Dario - 04 Febbraio 2009 - 19:33

33

@ Dario

Se proprio vogliamo parlare in termini economici si tratta, solo in Italia, di tagliare fuori circa 3 milioni di persone (http://www.asphi.it/DisabilitaOggi/DisabiliItalia.htm) ovvero 3 milioni di potenziali clienti.

Poi scusa, se già progetti pensando al futuro usando bene XHTML e CSS non capisco quale sia il costo di sviluppare un sito accessibile. A quali costi ti riferisci? All’esperto di accessibilità?

In futuro, i disabili visivi, aumenteranno: noi diventeremo vecchi e la vista, per esempio, non sarà quella che abbiamo ora. Quindi i principali fruitori dell’accessibilità saremo noi.

Penso che il costo effettivo, se di costi vogliamo parlare, sia semplicemente il tempo che un codificatore XHTML e CSS deve dedicare allo studio delle linee guida. E comunque mi pare sia un costo una tantum.

# - postato da Elia Contini - 04 Febbraio 2009 - 19:56

34

Il senso dell’apertura del mio messaggio è che ci sono dei casi (non sul web, ma su altri media o nella realtà) in cui aiutare il disabile è, purtroppo, antieconomico, ma non è assolutamente il caso del web.

Sul web far fruire i contenuti ai disabili non solo è facile, ma non è un costo solo un guadagno, visto che la divisione tra semantica e presentazione porta valanghe di vantaggi che poi si riflettono positivamente in maniera economica.

Tra l’altro il sito diviene quasi del tutto automaticamente accessibile quando è ben strutturato, con semantica e presentazione ben divisi.

# - postato da Dario - 04 Febbraio 2009 - 20:11

35

Credo che vi siate spinti troppo oltre con i commenti.
Quoto pienamente solo Cheope.
Se non capiamo l’importanza della semantica e delle raccomandazioni allora ci improvvisiamo soltanto, non siamo professionisti. L’articolo oggetto del post è una semplice, e anche gretta direi, provocazione.Non voglio tornare indietro di 5 anni e se hack e workaround mi impegnano un giorno in più di lavoro, ben venga, lo vedo come un ottimo investimento.
Le tabelle? Si usano per presentare dei dati. Punto.

# - postato da WebFusion - 04 Febbraio 2009 - 21:24

36

Se non capiamo l’importanza della semantica e delle raccomandazioni allora ci improvvisiamo soltanto, non siamo professionisti.

Ecco questa è una cosa su cui sono pienamente in disaccordo. Trovo l’idea semantica=professionisti assolutamente ridicola. Personalmente, se devo basarmi sul codice, valuto un professinista serio chi è in grado di padroneggiare i fogli di stile al meglio, creando layout complessi con poche righe e che funzionino bene.

La semantica la vedo come una cosa… attualmente inutile. Il motivo per cui cerco di scrivere il codice semanticamente corretto e usando meno tag possibili… è puramente per sfida personale. Non mi sognerei mai di venderla al cliente come un valore aggiunto, perchè siamo seri, il web semantico è ancora un utopia e i vantaggi sono praticamente inesistenti.

# - postato da Giacomo - 04 Febbraio 2009 - 22:36

37

@Giacomo
Io sono più ottimista.
Certo, in questi ultimi anni da strenua standardista mi rendo conto che qualche passo avanti per evitare l’overloading di informazioni ed il buzz è stato fatto, ma da direzioni diverse da quelle che mi aspettavo. Oggi la semantica del web non sta nel codice semantico correttamente strutturato, nè nelle norme W3C, nè nel supporto dei browser, ma nelle connessioni fra le persone e nei contenuti condivisi dei social networks, dei blog, catalogati minuziosamente tramite tag. Insomma nel web di oggi la semantica viene realizzata ad un livello più alto (nel senso più ISO-OSI del termine) del livello codice: timide tecniche di implementazione come i microformats si affacciano altrettanto timidamente nelle pagine web; XML e RDF si usano solo in alcuni back-office di applicazion enterprise, fermandosi ben prima di arrivare ai browser, ai navigatori.
In parte l’evoluzione c’è già stata: l’aumento esponenziale di informazioni ha reso necessario un metodo condiviso di catalogarle, per non “perderle” nei meandri del web.
Il passo successivo è quello di estendere la semantica verso il basso, verso le macchine, in modo che possano essere in grado un giorno di “capire” il significato dei contenuti, e offrire in base a questo servizi più efficaci, ricerche più accurate nonostante il crescente marasma di informazioni.
Quindi IMHO il motivo principale di scrivere codice semantico non può essere solo la sfida personale o qualche virtuosismo tecnico. Il motivo dovrebbe essere molto più semplice e nobile: continuare l’evoluzione naturale del web. Perchè se non cominciamo noi (professionisti o meno, comunque consapevoli della situazione) a gettarne le basi, più andremo avanti più il web semantico sarà sempre più un’utopia.
Io credo nel futuro del web semantico e credo nella bontà dei suoi propositi tanto da sostenerlo a spada tratta anche oggi che è poco diffuso e che per questo può sembrare inutile.
Sarò una idealista… ma ci credo.

# - postato da Cheope - 05 Febbraio 2009 - 00:49

38

Penso che alcune delle critiche che questi articoli portano ai CSS siano corrette e doverose.

Meglio: concordo con l’idea che quella della REALE separazione fra struttura (XHTML) e presentazione (CSS) sia ancora OGGI una favola… O una mezza realtà…

Opinabile può essere la soluzione o la conclusione che si vuole indicare…. Come ad esempio abbandonare i CSS e tornare alle tabelle…
Ma alcuni dei problemi indicati sono interessanti, reali, ricorrenti e, purtroppo, non ancora adeguatamente irrisolti.

# - postato da Andrea Zilio - 05 Febbraio 2009 - 01:59

39

@Cheope
E’ proprio questo il punto… io non la considero assolutamente un’evoluzione naturale, la vedo più come una forzatura. L’uso dei CSS è stata un’evoluzione naturale perchè, posizionamento degli elementi a parte, rappresentavano uno strumento molto più potenze, facile da gestire e con potenzialità enormi.
Il passaggio è stato naturale.

La semantica del codice html (non parlo di xml, microformats e formati simili… quelli hanno un’utilità e portano vantaggi reali, chi più chi meno) invece è ancora un’utopia, nel senso che esistono gli standard ma, a distanza di anni, non hanno ancora portato un solo risultato veramente rilevante.
Per questo motivo la vedo come una forzatura.

Opinioni personali, ovviamente :-)

# - postato da Giacomo - 05 Febbraio 2009 - 10:50

40

Non mi stupisce trovare ancora discussioni sull’argomento.

A chi continua a sostenere la validità delle tabelle per il layout, pongo 2 questioni :)

1) Come la mettiamo con l’ordinamento dei contenuti quando le tabelle vengono linearizzate? La vostra pagina ha ancora senso? Molto probabilmente no, perchè avrete il contenuto di almeno una sidebar prima di tutto il resto.

2) Se per caso voleste cambiare la posizione di un elemento, ad esempio la sidebar destra con quella sinistra? Con i CSS basta poco, con le tabelle è fattibile, ma ci vuole di più.

Che poi manchino delle funzionalità ai CSS è inutile negarlo, basti vedere quello che molti attendono con i CSS3 (gestione delle colonne per dirne una). Ma da qui ad affermare che sia ancora giusto usare le tabelle ce ne passa…

# - postato da Tom - 05 Febbraio 2009 - 11:29

41

Posso ricordare che le tabelle servono solo per contenere documente e dati a dimensione fissa (=che non è variabile dinamicamente)?

Grazie…..

# - postato da Ratamusa - 05 Febbraio 2009 - 12:19

42

Si parla spesso dell’abbandono della tabelle per il layout, che i div\css sono difficili da usare. Concordo.
Però, se si deve parlare, di un sito, che sia a tutti visibile allora parlare di quello che sarebbe giusto è piu difficile.
D’accordo, rispettiamo gli standard, ma questo significherebbe, dover creare un css per ogni browser, poichè notoriamente, su 8 browser differenti (IE6, IE7, FIREFOX, IE8, SAFARI, CROHME, OPERA, e ci aggiungo anche netscape) lo stesso risultato con un sigolo css è impossibile da raggiungere. E se il sito lo devi creare da un giorno all’altro? perdi una giornata intera per scrivere 8 css differenti? Io penso di no…
Purtroppo, ancora oggi nel 2009, il modo migliore per costruire un layout che funzioni, su tutti i browser, è il metodo delle tabelle.

# - postato da pierluigi - 05 Febbraio 2009 - 14:59

43

@22
lo considero aggravante allora: mi sembra un articolo scritto solo per creare flame o, peggio,un buon modo per ottenere commenti e link.

Francamente, per qualunque esperienza uno possa avere (e nel web chi riesce a cambiare meno è chi ha iniziato prima), io guardo a quello che dice. Frasi come “…e si cerca una soluzione che, semplicemente, funzioni le tabelle sono ancora l’opzione migliore…” denotano una presa di posizione chiara, e direidiscutibile se non errata.

# - postato da Cisco - 05 Febbraio 2009 - 15:15

44

@Giacomo:
E’ un tuo punto di vista, comunque rispettabile anche se opinabile per quanto mi riguarda.

Non volevo dire che la semantica debba essere un valore aggiunto per il cliente e quindi economicamente rilevante, parlavo solo di responsabilità etica, se mi concedi il termine.
Se accettiamo l’idea che il web semantico porterà notevoli vantaggi in futuro allora non possiamo ignorare questo fattore. E’ anche un gesto di responsabilità verso chi va ad analizzare il tuo codice e può trarne degli insegnamenti.Sappiamo tutti che nel nostro settore l’esperienza si fa sul campo e alzi la mano chi non ha imparato qualcosa di importante guardando il lavoro di qualche guru.

Se poi non ci interessa il fattore “etico” e non crediamo nel web semantico ma puntiamo solo alla produttività, allora cerchiamo la strada più breve e non standard e ce ne assumiamo la responsabilità…ma questo è un altro discorso.

Insomma, cerchiamo che certe logiche di mercato non vadano ad inquinare anche il nostro settore.
In fondo basta poco: impara, applica e condividi. Nello specifico di questo post la regola la riassumerei così: impara gli standard del W3C, applicali al tuo lavoro e condividi le tue esperienze con gli altri. Tanti di noi non sarebbero qui a scrivere se altri non lo avessero fatto prima.
Rientrando in argomento, quindi, assunto che il W3C depreca l’uso delle tabelle per il layout (e le linee guida delle specifiche dell’imminente livello 3 lo dimostrano) non consiglio l’uso delle tabelle come strumento per il layout perchè infrange la regola di separazione tra contenuto e presentazione (e il progressive enhancement si va a far benedire… http://www.alistapart.com/arti.....nhancement).

# - postato da WebFusion - 05 Febbraio 2009 - 15:44

45

Vabbè Cisco, se si leggono le cose bisogna leggerle tutte e con attenzione: la frase che mi attribuisci non esprime il mio pensiero, ma la sintesi degli articoli che ho linkato:

Un argomento comune mi pare di poterlo individuare: etc etc

Credevo fosse lampante e mi pare che nessuno tra quelli passati da qui abbia avuto il tuo stesso dubbio. La prossima volta comunque cercherò di essere più chiaro.

Tra l’altro, sin dal titolo e dalle prime righe, quello che ho cercato di esprimere era proprio lo stupore per il riemergere di certe questioni.

# - postato da Cesare Lamanna - 05 Febbraio 2009 - 16:19

46

HTML5 vi dice niente?
Più se ne sente parlarne e più chi si sente frustato dai css, pian piano(le tabelle) per il layout, le tirerà fuori dai cassetti sentendosi sempre più legittimato nel farlo!

# - postato da @rchie - 05 Febbraio 2009 - 17:48

47

A me dice che quell’html 5 sarà svariati passi indietro nelle cose Web….

# - postato da Ratamusa - 05 Febbraio 2009 - 18:18

48

@WebFusion
Ti quoto in toto (che fa anche rima).

@Giacomo
Scusa, ma continuo a dissentire.
IMHO non sono gli standard in sè o chi li fa che non porta vantaggi. In realtà sono tutti quelli che non li rispettano (creatori di siti da un lato e sviluppatori di browser dall’altro) a non portare vantaggi. Infatti il vantaggio di uno standard qualsiasi, di una convenzione (dal cartello di stop rosso esagonale alle prese della corrente), è l’enorme diffusione, il fatto di essere rispettata e condivisa dal maggior numero di persone possibile. Uno standard non diffuso è sempre uno standard sulla carta, ma è sterile, serve a poco proprio perchè non se lo fila nessuno.
Non dobbiamo pensare: “non rispetto gli standard perchè tanto è fatica sprecata”, ma “rispetto gli standard per dare un senso al mio lavoro e a quello degli altri”. Proviamo ad essere più altruisti, per favore, a guardare oltre lo steccato del nostro giardino inverdito dai pezzi da 100 euro. Sicuramente ci sarà chi il giardino ce l’ha viola senza rispettare gli standard, ma suvvia, the truth is out there!

@Giacomo
(eh, sì, ti ho preso di mira! Scherzosamente, eh?! ;-)) )
I CSS un’evoluzione naturale? Verissimo! Peccato siano roba di 10 anni fa. Voglio dire… c’è anche dell’altro… L’evoluzione del web mica si ferma con i CSS, se no che evoluzione è? ;-) Anche nel 98 qualcuno pensava ai CSS come ad una forzatura e nel 2000 si domandava candidamente “perchè usare i CSS per la formattazione del testo, quando Zio Tim ci ha già dato il tag font?”. Nè più ne meno il discorso che sentiamo oggi sulle tabelle: “Perchè sbatterci con i tag div, quando abbiamo table?”. Oppure “Perchè sviluppare secondo il web semantico? Chi ce lo fa fà se tanto i soldi li prendiamo lo stesso?”
Il lato oscuro è più rapido, più facile, più seducente!
Che ci vogliano altri 10 anni per arrivare a cambiare prospettiva? Speriamo di no! Certo noi tutti si aspetta ansiosamente anche i CSS 3. Ma se solo oggi tutti i browser supportassero pienamente CSS 2.1 sarebbe un gran successone.
Sorvolo sul discorso di HTML 5, perchè supererei oltremodo il limite della pazienza di chi legge.

@Pierluigi

…scrivere 8 CSS differenti

Scusa il tono poco ortodosso ma ste cose mi fanno andare in bestia. Ma se uno fa i siti di mestiere, i soldi cosa li prende a fare?
E’ come se ad un’impresa edile commissionano un condominio di 8 piani, ma con i lavori arrivano solo fino al 6°, perchè ad arrivare all’ottavo si fa troppa fatica. Oppure arrivano all’ottavo, ma invece di usare il cemento armato, usano che so, il cartongesso o qualsiasi altra cosa perchè costa di meno… Tanto nessuno controlla…
Ma che razza di discorsi sono?
E sì che oggi, rispetto ad una volta, la situazione è migliorata e di molto… Già non litigare più con i box model proprietari di IE e Netscape è una fortuna enorme!!!

@Cisco

mi sembra un articolo scritto solo per creare flame o, peggio,un buon modo per ottenere commenti e link

Bhe, obbettivamente Cesare, visto l’ambiente, questo post è come mettere benzina sul fuoco… Altro che flames… La situazione diventa esplosiva!!!! ;-)))
Ma è bello anche avere dei confronti accesi e appassionati, no?
E soprattutto averli su Edit! :-)))

# - postato da Cheope - 06 Febbraio 2009 - 00:09

49

@ William Ghelfi

Se le tabelle sono per i dati tabellari, i CSS sono per formattare gli elementi. Chi lo dice che sono per il layout, se cerchi risposte nella semantica.

# - postato da Alex - 06 Febbraio 2009 - 09:53

50

@Cheope ti quoto in toto ( prendo in prestito la rima :-D )

Ed aggiungo:
I dispositivi mobili dove li lasciamo?
E’ più conveniente sviluppare un sito ad hoc?
O è meglio creare un semplice CSS ad hoc senza toccare il resto?

Che dite? Io scelgo la seconda, perché più semplice e veloce.

E pur vero che la sintassi dei CSS possa essere migliorata, resa più intuitiva, ma alla fine preferisco qualcosa di leggermente meno intuitivo che mi fa fare meno lavoro. Giusto per ricollegarmi alla questione che le cose semplici sono le migliori ;-)

# - postato da Elia Contini - 06 Febbraio 2009 - 10:17

51

le tabelle sono lo strumento sbagliato che manel caso specifico funziona meglio dello strumento giusto(semanticamente),

il vero problema, evidenziato dall’autore dell’articolo originale è che CSS è mal progettato e va pesantemente rivisto per chiudere questo grave gap.

controprova: se css fosse progettato e implementato correttamente, le tabelle sarebbero evidentemente inutili per i layout.

interessante anche la sociologia che si evidenzia, con gente che non ha capito la denuncia e insulta il coraggioso autore che non ignora affatto, anzi, ha molto senso critico e onestà intellettuale.

# - postato da devsmt - 06 Febbraio 2009 - 11:11

52

No no, scusa devsmt ma l’articolo non mi sembra una denuncia e neanche dettato da senso critico costruttivo. L’Autore chiude l’articolo con: “And that is why, while CSS should be used for styling, tables should be used for layout.” ignorando completamente tutto quello che si sta facendo per arrivare alle specifiche 3 (guerra dei browser permettendo) ed ammette apertamente che i CSS sono legati al contenuto…cosa che non dovrebbe succedere, che non dovrà succedere, che non succederà se tutti ci atterremmo un pò di più agli standard.

E’ vero che attualmente i CSS sono lacunosi enon permettono ancora una netta separazione tra gli strati, ma nelle due ipotesi che evidenzia all’inizio la prima mi turba:

The CSS layout primites are inadequate because they do not allow elements to be positioned relative to each other, only relative to their containers.

Non è assolutamente vero, altrimente cadrebbe tutta la teoria dei float.
Ma la cosa che non ammetto proprio di tutta la dimostrazione del suo teorema è questa:

The reason this was so easy is that tables have the correct semantics for doing layout…

Allora, come ho già detto le tabelle servono per organizzare (prima che presentare) dati, e la struttura che ne consegue segue una logica di relazione tra righe e colonne senza la quale non avrebbe alcun senso presentare dei dati in forma tabellare.
La semantica delle tabelle è quindi intrinseca e definita da questa relazione.

Al contrario, chi ha mai detto che righe e colonne (se così possiamo chiamarle) di un layout debbano seguire questa logica?

P.S.: vorrei far notare che le tabelle sono quanto di più uniforme come resa cross browser e questo, a mio avviso, non è un caso. Credo sia un’eredità che la rete si porta dietro da quando nacque appunto per distribuire dati scientifici…e quindi tabellari per l’appunto.

# - postato da WebFusion - 06 Febbraio 2009 - 12:01

53

scusate…volevo concludere il P.S.: il fatto che abbiano una buona uniformità cross browser non ci autorizza ad utilizzarle in maniera inappropriata, io sono di questo avviso.

# - postato da WebFusion - 06 Febbraio 2009 - 12:07

54

Io credo che devsmt abbia colto nel segno.
Ci troviamo nella situazione assurda in cui lo strumento sbagliato è (da molti punti di vista) migliore dello strumento giusto.

@Cheope
Il tuo ragionamento non regge proprio per l’esempio che porti tu… quanti professionisti si sognerebbero oggi di fare un sito web senza usare pesantemente i fogli di stile?
Il motivo è che il fogli di stile si sono dimostrati uno strumento enormemente più potente, flessibile e gestibile di quello che c’era prima! E quindi si sono imposti, indipendentemente da ciò che gli standard dicevano.

La stessa cosa non vale per div e tabelle, perchè in questo caso si è fatto un passo avanti e due in obliguo/dietro. Ci sono ancora moltissimi studi (aihme mi viene da dire soprattutto quelli che curano progetti grandi) che utilizzano ancora le tabelle (ovviamente con i css)
Perchè? Il motivo è chiaro, la tabelle sono più semplici ed escludendo la semantica (che mi spiace dirlo ma conta come il due di denari quando la briscola è bastoni) non hanno enormi svantaggi.

In conclusione diciamo che ci sono due tipi di evoluzione. Una naturale e una guidata.
Quella naturale è quando un prodotto è talmente migliore del suo concorrente che si impone sul mercato (es. CSS).
L’evoluzione guidata è quella invece che viene imposta da qualcuno per degli obiettivi a lungo termine. In alcuni casi può coincidere (ancora una volta: css), in altri no.

Ma purtroppo lo sappiamo come va il mondo: se un prodotto non è pesantemente sponsorizzato (visione pessimistica) o non è davvero un miglioramento (visione ottimistica) farà molta fatica ad imporsi.

# - postato da Giacomo - 07 Febbraio 2009 - 02:32

55

E’ ridicolo che nel 2009 si debba ancora essere esperti di html e css, quando invece ci si dovrebbe concentrare su altri aspetti.
Gli editor puri o quasi dovrebbero essere impiegati solo per la programmazione, ma per il Layout si dovrebbero impiegare solo ambienti RAD.
Capisco conoscere css abbastanza bene e ovviamente l’html, ma è inaccettabile che si incontrino ancora problemi di questo genere per generare i layout.

# - postato da Pupazzo - 09 Febbraio 2009 - 15:45

56

Puntualizzo su alcuni punti:

1. Il peso di una pagina, ben formata, basata su css è molto minore rispetto ad una di pari contenuto table based.

2. In caso di cambio di layout per media alternativi i contenuti inline non vengono toccati.

Un uso intelligente (e consapevole) delle tecnologie CSS/HTML + AJAX + un qualsiasi linguaggio dinamico, oggi consentono di creare siti che solo qualche anno fa si potevano realizzare solo con Flash. A causa delle note differenze tra browser questo comporta un impegno notevole, se si vogliono avere progetti graficamente coerenti.

Soluzioni plugin based, tipo Flash/Flex o SilverLight, non servirebbero se riuscissero a creare un vero standard CSS / HTML. Allo stato attuale lo sviluppo di un sito in Flash/flex ovvia al problema cross browser e offre massima flessibilità, ma rimangono alcuni importanti problemi:

1. L’aspetto indicizzazione non è ancora ben chiaro.

2. Le prestazioni di un sito “tradizionale” ben realizzato sono garantite e testate in progetti concreti.
Con flex abbiamo solo in versioni embrionali e credo che ci sia un pò

Staremo a vedere…continuiamo a studiare.

# - postato da igiorgetti - 11 Febbraio 2009 - 09:27

57

[…] css oppure tabelle Ciao, a proposito di css oppure tabelle…. in tanti dicono che le tabelle sono out e che si dovrebbe usare i css, resto sempre dell’opinione che una scelta, anche se quasi nel 3000, sembra un’affronto. Comunque vi rimando a quest’articolo. Buona lettura. Toh, ancora tabelle vs. div | Edit - Il blog di HTML.it Ciao __________________ La vita un continuo apprendere e coltivare un hobby il modo migliore. […]

# - postato da css oppure tabelle - Grafici Creativi - 11 Febbraio 2009 - 10:55

58

si gira tanto in torno alle parole e invece:
Vogliamo perforza usare gli stadard? facciamo una guerra contro quei browser che nn supportano gli standard appieno (pressocchè tutti) facciamo una guerra contro chi non utilizzi nuovi browser, notoriamente piu vicini alle specifiche, poi possiamo pensare di fare una guerra, a chi utilizza ancora il metodo delle tabelle, magari per semplificarsi la vita, in un mondo di browser…

# - postato da pierluigi - 12 Febbraio 2009 - 13:46

59

[…] “Toh ancora le tabelle vs divs” , un articolo recentissimo di Edit che fa partire un flame sull’annosa questione: divertitevi!! XD […]

# - postato da Articoli e approfondimenti, sempre sulla questione tabelle e standard | Italian webdesign - 06 Marzo 2009 - 06:54

Inserisci il tuo commento:





(puoi usare i seguenti tag HTML per formattare il testo -
a href, b, i, br/, p, strong, em, ul, ol, li, blockquote, pre):

 

Anteprima del commento