Pipocou na web [e eu vi aqui] um artigo de Ron Garret com o título "Why CSS should not be used for layout" [Por que CSS não deve ser usado para layout]. Você já pode imaginar a reação da galera doida querendo comer o homem vivo. O que Ron alega é que o CSS não cumpre um bom papel quando você quer construir um layout que simplesmente funcione em qualquer browser sem demandar horas de testes e tweaks no código para que tudo funcione como desejado, sendo que fazer o mesmo com tabelas é super simples, rápido e indolor [leia o artigo para ter a idéia completa].
E quem pode dizer o contrário? Os exemplos de Ron são bem categóricos e quase nos convencem de que tabela é o melhor caminho para se criar um layout. Muitas pessoas vieram apontar o site CSS Zen Garden como exemplo máximo de que CSS é a resposta para layouts, mas Ron teve um bom argumento para rebater: Fica fácil criar layouts para sites onde o conteúdo é fixo e você não tem que se preocupar com o que pode acontecer se as coisas saírem de controle. Tables win again.
Ron também diz que, assim como o significado das palavras pode mudar pelo uso, o significado das tags também muda, de forma que, por mais que a tag "table" deva ser usada para dados tabulares, seu uso extensivo em layouts mudou seu significado. Faz sentido, mas pra mim existe um problema aí. Nós nunca poderemos tirar vantagem dos padrões se eles não forem seguidos. Se as pessoas começarem a colocar parágrafos dentro da tag "address", criar um motor de busca de endereços será muito mais difícil. O Google faz uso extensivo da catalogação de termos através da utilização de tags "dd", "dt" e "dl" (é só usar o "define: css" para ver isto em ação), ou seja, não é legal usar esses elementos para criar formulários mais bonitos, eles servem para definições! O fato é que as coisas vão ficar mais fáceis se não utilizarmos padrões, e usar CSS é uma forma de manter estes padrões disponíveis.
Agora, existe o outro lado da história. Os fãs mais aficionados de CSS devem prestar atenção porque nem sempre tudo numa marcação é estritamente semântico. No próprio CSS Zen Garden existem algumas tags extras e vazias para propósitos puramente visuais. Qual o significado delas? Se é puramente visual, estamos deturpando a tag div assim como a tag table é deturpada. Aliás, a tag "span", de acordo com a w3school serve apenas para modificações visuais, e então temos coisas como “<h1><span>Meu header</span></h1>”, o que não é exatamente semântico, mas é necessário que eu quiser fazer um "image replacement" no meu header.
Ah! Mas existe uma nova técnica ótima de image replacement onde eu não preciso da tag "span". Basta definir o "text-indent" do elemento para algo como "-9999px" no seu CSS e pronto! Todos sabem que esta é uma gambiarra, assim como é o uso de tabelas! Afinal, desde quando "text-indent" foi feito para sumir com um texto? Este não é o "propósito semântico" da propriedade. Poderia existir uma nova propriedade chamada "text-visibility" que seria semanticamente correta neste caso.
Eu acredito que sempre iremos esbarrar em algum problema semântico, querendo ou não. Mas não podemos ser extremistas, nem de um lado, nem do outro. O que devemos fazer é trabalhar para que a web seja um lugar melhor. Que a indexação de conteúdo seja feita corretamente. Que organizar e encontrar aquilo que se procura seja simples. E embora o CSS tenha suas limitações, elas servem para nos ensinar que a web é uma plataforma diferente da mídia impressa ou da televisão e deve possuir sua própria linguagem visual e forma de organização. Como já dizia McLuhan "o meio é a mensagem".
Tags: css, semântica, tabelasComentários /comments
-
Postado em February 21, 2009 às 2:18 am[...] Precisamos mesmo de uma web semântica? por Cor Cinza [...]
-
neyRicardo escreveu:Postado em March 11, 2009 às 11:11 amCaracoles! você que é o cara do designUp!!
Meu, achei fantástico o teu trabalho! E esse lance de ser designer gráfico e programador! Vai contra o que td mundo fala por aí que não dá pra ser bom em tudo!
Parabéns pelo teu trabalho!
Eber
Acho que o ponto onde todos falham é encarar a web como visual. Ela é informativa (e dá primazia ao textual).
Elementos visuais sempre devem ter seus equivalentes textuais (seja uma img ou object).
A acessibilidade é extremamente afetada ao construir-se sites com formatação baseada em tabelas. Pegue um JAWS e teste num site tabelado para entenderes o que quero dizer.
A questão não seria de extremismo, pois existe apenas uma maneira convencionada e tecnologicamente legítima de construção de interfaces acessíveis, e não é uma questão de interpretação, mas de aplicação de regras e padrões, e atualmente no Brasil, lei (EMAG)