99,9% dos Websites Estão Obsoletos

Propaganda
capítulo um
99,9% dos Websites
Estão Obsoletos
capítulo 1
U
ma mesma doença oportuna afeta quase todos os sites da Web atualmente, desde os websites pessoais mais simples até os de milhões de
dólares de grandes empresas. Esperta e traiçoeira, ela passa despercebida por respeitar as normas do mercado. Embora os donos e administradores de sites talvez ainda não tenham notado, 99,9% de todos os websites estão obsoletos. Eles podem parecer e funcionar bem nos navegadores
principais e em áreas de trabalho. Entretanto, fora desses ambientes
tolerantes a erros, já começam a aparecer os sintomas de decadência.
Nas versões modernas do Microsoft Internet Explorer, do Opera Browser
da Opera Software, do Safari da Apple, do Chrome do Google e do Mozilla
(navegador de código aberto baseado no Gecko cujo código é o que faz
funcionar o Firefox e o Camino), layouts cuidadosamente construídos
começaram a falhar e comportamentos custosamente projetados começaram a parar de funcionar. Conforme esses navegadores principais evoluem, a performance do site continua a se deteriorar.
Em navegadores “genéricos”, leitores de tela usados por pessoas com
necessidades especiais e em muitos telefones celulares, grande parte
desses sites jamais funcionou e ainda não funciona, enquanto outros
funcionam precariamente. Dependendo de suas necessidades e verbas, os donos e desenvolvedores de sites ou ignoraram esses sites e
13
designing_with_web_std_cad_01_PB.indd 13
11/10/2010 09:04:06
14
capítulo 1 > 99,9% dos Websites Estão Obsoletos
dispositivos genéricos ou os suportam apenas detectando a presença deles e
enviando a eles marcações e códigos específicos, como fazem com os navegadores “regulares”.
A fim de entender a inutilidade desta prática ultrapassada de mercado e observar como ela aumenta o custo e a complexidade do desenvolvimento de sites
sem obter o resultado desejado, devemos analisar como os navegadores atuais e
compatíveis com padrões se diferem daqueles do passado.
Navegadores Atuais e Padrões Web
Neste livro, quando me refiro a navegadores “atuais” ou “compatíveis com padrões”, quero dizer aqueles que entendem e suportam HTML e XHTML, Folhas
de Estilo em Cascata (CSS - Cascading Style Sheets), ECMAScript (mais conhecido como “padrão JavaScript”) e o Modelo de Objetos de Documentos (DOM
– Documents Object Model). Juntos, eles são os padrões que nos permitem lidar
com as linguagens de marcação de apresentação, as de script incompatíveis e a
obsolescência contínua que elas geram.
Dentre esses navegadores estão o Firefox 3.5+ de código aberto, ganhador de
uma premiação; o Microsoft Internet Explorer 7/8 e versões maiores para Windows; o Safari 3.0/4.0+ da Apple para Macintosh OS X; o Chrome do Google;
e o Opera 9/10+ da Opera Software. (Deixei de fora o seu navegador predileto
compatível com padrões? Meu intuito aqui não é desmerecê-lo, mas se eu fosse
listar cada navegador compatível com padrões, levaria tanto tempo que este livro ficaria ultrapassado mais rápido que a dança da Macarena). Embora eu use
o termo “compatível com padrões”, lembre-se de que navegador algum é, ou
possa vir a ser, 100% compatível com padrões.
Mas essa falta de perfeição não é motivo para evitá-los. Milhões de pessoas
ainda usam o Internet Explorer 6 para Windows e seu suporte a padrões é decididamente inferior ao do IE7+, do Firefox, do Opera e do Safari. Então se alguns
de seus usuários usam o IE6 você não deve usar os padrões? Isso significa que
você deve dizer a eles para atualizarem seus navegadores ou caírem fora? É claro que não! A criação de sites usando padrões não precisa e não deve implicar
“construir apenas para os navegadores mais recentes”.
Da mesma forma, usar XHTML e CSS não implica ter que dizer aos usuários de
navegadores antigos para caírem fora. Mas é improvável que um site devidamente construído com padrões tenha a mesma apresentação, pixel por pixel,
no IE6 do que naqueles compatíveis com padrões. De fato, dependendo de seu
designing_with_web_std_cad_01_PB.indd 14
11/10/2010 09:04:06
Um Novo Código para uma Nova Função 15
método de criação, ele pode ter uma aparência totalmente diferente. Até aí tudo
bem. Na verdade, alguns designers chegaram a sugerir fornecer aos usuários
do IE6 estilos personalizados que aumentem a legibilidade, sem tentar imitar a
aparência e a impressão do site quando exibido em navegadores mais compatíveis. Leia o “Universal Internet Explorer 6 CSS” (www.forabeautifulweb.com/blog/
about/universal_internet_explorer_6_css) de Andy Clarke para mais detalhes sobre
essa abordagem.
Um Novo Código para uma Nova Função
Os navegadores atuais não são simplesmente novas versões dos anteriores. Eles
possuem diferenças consideráveis em relação a seus predecessores, e, em muitos casos, foram totalmente reconstruídos do zero. Mozilla Firefox, Camino e
navegadores relacionados baseados no Gecko não são versões novas do há muito
extinto Netscape 4. O Opera 10 não se baseia no mesmo código de suas versões
anteriores. Esses produtos foram criados com códigos novos para executarem
novas funções – isto é, para aderir da melhor forma possível aos padrões Web
discutidos aqui.
Em contrapartida, os navegadores da década de 1990 baseavam-se em tecnologias exclusivas (apenas da Microsoft, apenas da Netscape) e davam pouca atenção a padrões.
Navegadores antigos ignoravam alguns padrões completamente, mas, paradoxalmente, essa falta de suporte não trazia muitos problemas. Se os navegadores
não suportavam o padrão PNG (Portable Network Graphic), por exemplo, então os
desenvolvedores não usavam imagens PNG. Sem problema. Mas aqueles navegadores também forneciam suporte parcial e incorreto a alguns padrões. Esse
suporte desleixado e inconsistente para padrões básicos, como HTML, criou um
ambiente de publicação Web sem restrições.
Quando o apêndice de um paciente rompe, um cirurgião qualificado efetua uma
apendicectomia. Mas e se em vez disso fosse um residente bêbado que removesse metade do apêndice, sem querer perfurando alguns outros órgãos e se
esquecesse de suturar as costas do paciente? Assim era o suporte a padrões em
navegadores antigos: incompetentes, incompletos e perigosos à saúde da Web.
Se o Netscape 4 ignorava as regras CSS aplicadas ao elemento body e inseria
aleatoriamente espaços em branco a cada estrutura de elementos em sua página e o IE4 entendia o body, porém o processava mal, qual tipo de CSS era
mais seguro para se usar? Alguns desenvolvedores preferiram não usar CSS
designing_with_web_std_cad_01_PB.indd 15
11/10/2010 09:04:06
16
capítulo 1 > 99,9% dos Websites Estão Obsoletos
algum. Outros usavam folhas de estilo para compensar as falhas do IE4 e outras diferentes para compensar os erros do Netscape 4. A fim de compensar as
diferenças de fontes e widgets de desktop multiplataforma, alguns desenvolvedores também ofereciam diferentes folhas de estilo para variados sistemas
operacionais.
O CSS não era o único problema: os navegadores não usavam o mesmo HTML,
renderização de tabela ou linguagens de script usadas para adicionar interatividade à página. Não havia uma forma 100% correta de suporte para estruturar o
conteúdo de uma página, produzir seu design ou adicionar um comportamento
sofisticado a um site.
Esforçando-se para lidar com cada incompatibilidade que surgia, designers e
desenvolvedores criaram versões personalizadas (não padrão) de código e marcação para contornar as deficiências em cada navegador lançado. Era tudo o que
podíamos fazer naquela época se quiséssemos criar sites que funcionassem em
mais de um navegador ou sistema operacional. Mas hoje esse é o caminho errado a se tomar, pois todos os navegadores atuais suportam os mesmos padrões
abertos. Mesmo assim tal prática ainda existe, desnecessariamente devorando
recursos, fragmentando a Web e levando a sites que não podem ser acessados ou
utilizados.
O Problema da “Versão”
A criação de várias versões de marcação e código não padrão é a origem da contínua obsolescência que assola a maioria dos sites e seus donos. Entretanto,
embora seja cara, inútil e insustentável, essa prática ainda persiste.
Ao se depararem com navegadores que suportam padrões Web, desenvolvedores o tratam como se não suportassem. Com isso, eles criam scripts para detectar o IE6 e, então, fornecem um código voltado apenas para a Microsoft mesmo
que o IE6 suporte JavaScript padrão e o DOM.
designing_with_web_std_cad_01_PB.indd 16
11/10/2010 09:04:06
O Problema da “Versão” 17
Os Riscos da Detecção de Navegadores
Todos os navegadores possuem uma string de agente de usuário (UA): uma
string curta de texto com o nome, a versão e a plataforma do navegador, que
funciona como a impressão digital do navegador. Servidores Web frequentemente registram a UA, fornecendo valiosas informações aos donos de
websites que procuram melhor entender seus usuários. Mas muito constantemente eles usam código Javascript ou código do lado do servidor para
analisar a sintaxe da string UA de modo que possam fornecer o conteúdo
apropriado àquela plataforma ou específico àquela versão. O problema com
esse método é que não se pode depender da string UA. Dependendo das
configurações de segurança ou de rede do usuário, o navegador talvez não
passe sua UA ao servidor, ocasionando falha no script de detecção e impedindo que os usuários cheguem onde desejam.
Além disso, todos os navegadores atuais permitem ao usuário alterar a UA,
seja através de extensões instaladas pelo usuário (Firefox) ou através de um
recurso do próprio navegador (Safari e Opera). Na verdade, antes da versão
8.02, o Opera, por padrão, identificava a si mesmo como Internet Explorer
para evitar ser bloqueado pelos sites que só aceitavam o IE.
A falibilidade de detecção da UA foi ressaltada no lançamento do Opera 10,
o primeiro navegador a conseguir usar dois dígitos. Esse grande avanço foi
prejudicado com o lançamento da versão beta, na qual uma legião de scripts
mais aperfeiçoados de detecção da versão do navegador não conseguiu registrar o segundo dígito no número de versão do Opera 10, identificando-o como
“Opera 1”. O problema foi tão extenso que a Opera fez alterações para que seu
navegador fosse identificado não como “Opera 10.00”, mas “Opera 9.80” (sua
versão mais recente, dev.opera.com/articles/view/opera-ua-string-changes).
Infelizmente, essa versão do “bug do milênio” aguarda a todos os navegadores que faltam chegar à versão 10, a não ser que acabemos com a detecção do
navegador e adotemos uma abordagem mais voltada para padrões.
Com cada versão vem o aumento constante de custos e enigmas. Sites desenvolvidos para especificações de scripts próprios de navegadores já há muito extintos não funcionam nos navegadores e dispositivos atuais. O dono do site deveria
destinar mais dinheiro ao problema pedindo aos desenvolvedores que criem
uma quinta ou sexta versão do site? E se não houver verba para isso? Muitos
usuários não conseguiriam acessar o site.
designing_with_web_std_cad_01_PB.indd 17
11/10/2010 09:04:06
18
capítulo 1 > 99,9% dos Websites Estão Obsoletos
Mesmo quando adotam tecnologias de padrões Web, como XHTML e CSS, os
designers e desenvolvedores que aprendem os métodos antigos costumam não
perceber a questão. Em vez de usar padrões para evitar a necessidade de múltiplas versões, muitos desenvolvedores que usam as práticas antigas criam arquivos CSS específicos a variados navegadores e plataformas, o que quase sempre é
autodestrutivo.
1.1
Em 1999, o MSN Game Zone
(zone.msn.com/blog.
asp) tinha três folhas de estilo
externas e ainda assim não
era exibido adequadamente
na maioria dos navegadores.
Ele também possuía vários
scripts (a maioria in-line),
incluindo detecção de
navegadores reforçados.
Nem assim funcionava ainda.
Lançar mais versões de
códigos em um problema
raramente o resolve.
1.2
Para ser justo, a foto anterior
já tem quatro anos. Hoje,
a mesma página ficou pior
ainda conforme acrescentam
mais códigos a ela. Seis
anos depois de a Microsoft
lançar o primeiro navegador
compatível com padrões,
algumas partes de seu site
ainda não usam os padrões
do novo navegador.
designing_with_web_std_cad_01_PB.indd 18
11/10/2010 09:04:07
Venda On-line de Produtos de Segunda Mão 19
Essas práticas desperdiçam tempo e dinheiro, e nenhum desses dois jamais foi
uma comodidade. Criar múltiplas versões de sites que ninguém possa bancar
não acrescenta nada à causa pela qual tanto tempo e dinheiro foram gastos. Os
sites ainda estão com falhas, e os usuários sem acesso.
Venda On-line de Produtos de Segunda Mão
Analise minuciosamente grandes sites comerciais, como Amazon.com e eBay.com.
Observe suas tortuosas marcações não padrão, seus confusos JavaScripts (geralmente com scripts de detecção falhos) e o mal uso do CSS. É surpreendente como
esses sites funcionam em qualquer navegador.
Geralmente, sites não compatíveis com padrões funcionam em navegadores antigos porque seus donos investiram em ferramentas dispendiosas que
aceitam as diferenças entre os navegadores através da criação de múltiplas
versões não padrão voltadas para as peculiaridades de sites e plataformas
específicos, como descrito anteriormente no tópico O problema da“versão”.
As quatro primeiras gerações do Nestcape Navigator e do Microsoft Internet Explorer não suportavam simplesmente marcações não padrão e códigos
específicos para cada navegador; e sim incentivavam a criação de scripts e
desenvolvimento de sites desleixados numa batalha doentia para dominar o
mercado de navegadores.
Entra Lixo, Sai Lixo
Antigamente, nos cursos de programação, aprendia-se o chavão “Entra lixo,
sai lixo”. Da mesma forma, dentre as primeiras coisas que um designer gráfico
aprende é que a qualidade das fontes primárias determina a eficiência do produto final. Comece com uma resolução alta, uma fotografia de alta resolução e a
impressão ou o gráfico da Web ficará bom. Experimente desenvolver com uma
fotografia ou uma imagem da Web de baixa resolução que o resultado não valerá
a pena. Entra lixo, sai lixo.
Mas os navegadores antigos não funcionam assim. Negligentes ao absurdo, eles
passam marcações falhas e links errôneos para os arquivos fonte javaScript sem
pestanejar. E, na maioria dos casos, exibem o site como se tivesse sido desenvolvido corretamente. Essa falta de rigor incentiva designers e desenvolvedores
de front-end a criarem hábitos ruins – e também estimula desenvolvedores de
middleware e back-end a enxergarem tecnologias como XHTML, CSS e JavaScript
como primitivas e insignificantes.
designing_with_web_std_cad_01_PB.indd 19
11/10/2010 09:04:07
20
capítulo 1 > 99,9% dos Websites Estão Obsoletos
Quem não respeita uma ferramenta possivelmente não a usará corretamente.
Veja o pedaço de código abaixo extraído de um site caro de e-commerce de uma
empresa que compete num mercado acirrado:
<td width=“100%”><ont face=“verdana,Helvetica,arial” size=“+1”
color=“#CCCC66”><span class=“header”><b>Join now!</b></span>
</ont></td>
A desnecessária tag ont, é um erro de digitação da obsoleta tag font – um erro que
ocorre diversas vezes ao longo do site graças a uma ferramenta de publicação
altamente eficiente. Erros à parte, essa marcação talvez seja familiar a você e
até mesmo pareça com a marcação do seu site. No contexto dessa página Web, é
necessário usar apenas:
<h3>Join now!</h3>
Combinado com uma regra adequada numa folha de estilo, a marcação acima
(mais simples) fará exatamente o mesmo que a outra marcação excessiva, não
padrão e inválida – ao mesmo tempo economizando tráfego entre o cliente e o
servidor e facilitando a transição para sites mais flexíveis com marcações semânticas (provavelmente incluindo código de máquina legível, como microformatos, discutido mais para frente neste livro). Esse mesmo site de e-commerce
possui o seguinte link quebrado em JavaScript:
<script language=JavaScript1.1src=
“http://foo.com/Params.richmedia=yes&etc”></script>
Outro problema é que o valor de language sem aspas se mistura com a tag source.
Em outras palavras, está sendo dito ao navegador para usar uma linguagem de
script inexistente (“JavaScript1.1src”).
Uma medida racional seria o site apresentar erro alertando aos desenvolvedores
que o corrigissem imediatamente. Mas, até recentemente, o JavaScript daquele
site funcionava na maioria dos navegadores, perpetuando assim o ciclo de sites
mal desenvolvidos. Não é de se estranhar que programadores habilidosos enxergassem os desenvolvedores de front-end como pessoas burras desmerecedoras de respeito ou atenção.
Conforme os novos navegadores se tornam mais compatíveis com padrões Web,
eles toleram cada vez menos marcações e códigos falhos. Entra lixo, sai lixo está
começando a se estabelecer no mundo dos navegadores, tornando o conhecimento sobre padrões Web uma necessidade para todos que projetam ou criam
websites.
designing_with_web_std_cad_01_PB.indd 20
11/10/2010 09:04:07
Code forking Pode ser Arriscado Para a Saúde do Site a Longo Prazo 21
Code forking Pode ser Arriscado Para a Saúde do
Site a Longo Prazo
Mais de uma empresa que conheço gastou mais de um milhão de dólares
em um sistema de gerenciamento de conteúdo (SGC) altamente complexo
e de uso dificílimo. Os criadores desse gigantesco software defendem seu
custo absurdo ressaltando sua capacidade de se esforçar para cobrir todas
as versões não padrão de código. Além de desperdiçar enormes quantias insensatas de dinheiro, esta prática afeta a navegabilidade ao inserir conteúdo
significativo num mar de tags não semânticas (1.3). O mais injusto é que ela
exige demais da paciência de usuários de acesso discado (ou Smartphones),
desperdiçando largura de banda com code forking, tabelas muito aninhadas,
espaços em pixels e outros truques com imagens e tags e atributos desatualizados ou inválidos.
1.3
Rápido! Encontre informações
sobre os modelos e serviços
da Volkswagen na confusa
e desestruturada marcação
HTML do site www.
volkswagen.com. Dica: Se teve
dificuldades para achá-las,
também as terão os leitores e
as ferramentas de pesquisa.
designing_with_web_std_cad_01_PB.indd 21
11/10/2010 09:04:08
22
capítulo 1 > 99,9% dos Websites Estão Obsoletos
O que é Code Forking?
Código é o que os programadores escrevem para criar programas, sistemas operacionais ou praticamente tudo no mundo digital. Quando mais
de um grupo de desenvolvedores trabalha em um projeto, o código pode
se “ramificar” em várias versões incompatíveis, especialmente se cada
grupo estiver tentando resolver um problema diferente ou seguindo outro
planejamento. Essa inconsistência e perda de controle centralizado costumam ser vistos como uma coisa ruim.
Neste livro, code forking se refere à pratica de criação de múltiplas versões de código incompatível para lidar com as necessidades dos navegadores que não suportam o padrão JavaScript e o DOM (consulte o tópico
anterior O problema da“versão”).
Ao mesmo tempo, code forking desperdiça tanto a largura de banda do dono do
site a um custo que mesmo os contadores ultraminuciosos sairiam perdendo
na contagem. Quanto maior o site, maior o tráfego e maiores são os gastos com
chamadas ao servidor, redundâncias, truques com imagens e marcações e códigos complexos e desnecessários.
É difícil alcançar certas metas, mas, de modo geral, se um site reduz seu problema com as marcações em 35%, o mesmo ocorrerá nos custos com a largura de
banda. Uma empresa que gasta 2 mil e quinhentos dólares por ano com largura
de banda economizaria 875 dólares. Outra que gasta 160 mil dólares por ano
economizaria 56 mil dólares.
Considere a página inicial do Volkswagen.com (1.4). Apesar do design elegante
e objetivo, a marcação da página é analisada como antiquada, cheia de tabelas,
com JavaScript ineficazes e páginas de CSS embutidas. Agora, esse não é um site
amador: o portal internacional de um das marcas mais conhecidas mundialmente é acessado milhões de vezes por dia. Multiplique cada byte desperdiçado,
de truques de design HTML ultrapassados, pelo número gigantesco de páginas
visitadas do site. O resultado serão gigabytes de largura de banda que exigem
demais dos servidores da Volkswagen e também adicionam custos exorbitantes,
como os do Pentágono, em suas despesas gerais. Se a Volkswagen simplesmente
substituísse sua marcação ineficiente e devoradora de largura de banda (1.3 e
1.5) por um HTML semântico com CSS e leve, o custo com cada página seria reduzido consideravelmente. E isso aumentaria os lucros da empresa.
designing_with_web_std_cad_01_PB.indd 22
11/10/2010 09:04:08
Code forking Pode ser Arriscado Para a Saúde do Site a Longo Prazo 23
1.4
Página inicial da Volkswagen
(www.volkswagen.com) –
completo, chamativo, belo.
1.5
Belo, até que você olhe por
debaixo dos panos. Retire
a “capa” da Volkswagen
(com o “exibir código-fonte”
de seu navegador) e verá
que o código e a marcação
usados para criar esse site
de aparência simples são
inacreditavelmente complexos
e confusos.
designing_with_web_std_cad_01_PB.indd 23
11/10/2010 09:04:10
24
capítulo 1 > 99,9% dos Websites Estão Obsoletos
Então por que a Volkswagen não faz alterações? Aparentemente, a empresa
deseja que seu site seja exibido exatamente da mesma forma tanto nos navegadores antigos que não suportam CSS como nos atuais que usam padrões. O
irônico é que quem usa um navegador de dez anos atrás, provavelmente pouco
se importará com a aparência do site da Volkswagen. E certamente não fará
comparações da exibição do site no IE5 com as do Firefox3 ou IE8. Se a equipe
de designers da Volkswagen usasse as técnicas expostas neste livro, poderia garantir a acessibilidade ao seu site através de qualquer dispositivo e navegador,
independente da aparência do site.
Quando uma empresa tão competente como a Volkswagen perde uma oportunidade como essa você logo percebe a mentalidade arraigada dos gerentes de
marcas, que tratam a Web como se fosse uma propaganda impressa, e dos desenvolvedores, que colocam a compatibilidade com a versão anterior acima do
bom senso, da usabilidade ou de seus próprios lucros.
O Custo Indireto de uma Marcação Grande Demais
Suponha que o código e a marcação de uma página Web criada com técnicas
antigas some 60 K. Digamos que, ao substituir as tags font e outros entulhos de
apresentação e de uso exclusivo por uma marcação clara e estruturada e algumas regras CSS, a mesma página possa ficar com 30 K. (Em nossa empresa,
geralmente conseguimos diminuir 60 K de marcação para 22 K ou menos. Mas
fiquemos com um exemplo mais discreto, que representa economia de 50% de
largura de banda). Considere os dois cenários típicos a seguir.
Redução no Número de Linhas de T1
Cenário: um website auto-hospedado de um negócio ou de um setor público
recebe um fluxo constante de visitantes – centenas deles em qualquer momento. Depois de reduzir pela metade o tamanho de sua página ao migrar para uma
marcação XHTML clara, enxuta e estruturada, a empresa economiza mil dólares
por mês.
Como funciona: antes da migração, a fim de atender seu público, o site
auto-hospedado exigia quatro linhas de T1, cada uma alugada por 500 dólares ao mês (custo normal de uma linha de T1 de 1,544 megabits por segundo). Após reduzir o tamanho dos arquivos em 50%, a empresa descobre que
pode manter a mesma eficiência com apenas duas linhas de T1, removendo,
assim, mil dólares por mês de suas despesas operacionais. Além da economia com a largura de banda, haverá também gastos menores nas despesas
designing_with_web_std_cad_01_PB.indd 24
11/10/2010 09:04:10
O Custo Indireto de uma Marcação Grande Demais 25
com hardwares e redução nos custos de armazenagem e no uso de energia
de grandes centrais de processamento de dados, tanto no uso de máquinas
como no resfriamento da sala. Isso mesmo: os padrões Web podem ajudar a
salvar o planeta.
Quanto mais simples for a marcação, mais rapidamente ela chegará ao usuário.
E, consequentemente, menos do servidor será exigido – e menos servidores
você terá de comprar, fazer manutenção e substituir. Isso é válido especialmente para servidores que precisam lidar com conteúdo dinâmico de banco de
dados – ou seja, todos os sites comerciais e a maioria dos conteúdos atuais (até
mesmo blogs).
Megabytes Excedentes
Cenário: com o aumento da popularidade de sites que oferecem hospedagem,
os donos desses websites notaram que estão pagando por uma taxa inesperada
por ultrapassar o limite mensal de transferência de dados, chegando a centenas,
ou mesmo milhares de dólares. Reduzir o tamanho dos arquivos pela metade
retorna o custo mensal a uma taxa aceitável e cabível.
Como funciona: muitos serviços de hospedagem pagos oferecem a seus usuários um limite “gratuito” de transferência mensal – digamos até 3GB. Não
ultrapasse esse limite e você pagará o valor normal de sua mensalidade. Ultrapasse-a e você pagará mais – às vezes muito mais.
Em um caso vergonhoso, uma empresa de hospedagem cobrou 16 mil dólares de
taxas adicionais do designer Al Sacui após seu site não comercial (Nosepilot.com)
exceder o limite de sua transferência mensal. Era um caso extremo. Portanto,
Sacui conseguiu evitar a cobrança ao provar que a empresa havia mudado os
termos de serviço sem notificar seus clientes – mas só depois de longas brigas
judiciais. Quem arriscaria contas ultrajantes ou brigas judiciais demoradas com
uma empresa de hospedagem encrenqueira?
Mas é claro que nem toda empresa de hospedagem cobra quantias exorbitantes por exceder o limite de transferência. Seja seu site grande ou pequeno,
visitado por milhões ou apenas algumas pessoas, quanto menor forem seus
arquivos, menor será o seu tráfego. (Aliás, é melhor escolher uma empresa de
hospedagem que ofereça transferência de dados ilimitada ou limitada com um
valor fixo para os megabytes excedentes do que uma que penaliza você por ter
um site popular).
designing_with_web_std_cad_01_PB.indd 25
11/10/2010 09:04:10
26
capítulo 1 > 99,9% dos Websites Estão Obsoletos
Marcação Condensada e Compactada
Depois de dar uma palestra sobre padrões Web, um desenvolvedor veio
até mim e alegou que as vantagens da largura de banda de uma marcação
clara e bem estruturada pouco ajudam empresas que compactam seus códigos HTML.
Além de condensar sua marcação com o uso de estruturas semânticas,
você pode compactá-la digitalmente em alguns ambientes de servidores.
Por exemplo, o servidor Web da Apache possui um módulo mod_gzip que
comprime o HTML no lado do servidor. Depois, ele é expandido novamente no navegador do usuário.
Aquele desenvolvedor que falou comigo me deu um exemplo: Se o Amazon.com desperdiça 40 K em tags font ultrapassadas e outros entulhos, mas
usa o mod_gzip para compactá-los para 20K, então a marcação grande demais do Amazon.com representaria menos despesas do que minha palestra
(e este livro) sugerira.
Mas a Amazon não usa o mod_gzip. De fato, essa ferramenta é pouco usada
na Web comercial. Possivelmente devido ao tempo extranecessário para
compactar as páginas antes de enviá-las. Entretanto, desconsiderando
essa questão, quanto menor for o arquivo, mais compactado ele ficará. Se
você economiza dinheiro compactando uma página de 80 K para 40 K, você
economizaria muito mais quando uma de 40 K passa para 20 K. Reduzir o
processo de exibição de uma página pode parecer pequeno, mas seu valor é
acumulativo. Com o tempo, pode diminuir consideravelmente os custos de
operação.
Economia com largura de banda é apenas uma das vantagens de se escrever marcações claras e bem estruturadas, mas uma apreciada por contadores e clientes. O mesmo vale tanto para quem compacta seus próprios
códigos HTML como para o resto de nós.
designing_with_web_std_cad_01_PB.indd 26
11/10/2010 09:04:10
Compatibilidade com a Versão Anterior é uma Mentira 27
Compatibilidade com a Versão Anterior é
uma Mentira
O que os desenvolvedores querem dizer com “compatibilidade com a versão
anterior”? Se perguntar, eles dirão que é “prover suporte a todos os nossos usuários”. E que argumento há contra tal dedicação?
Na prática, contudo, compatibilidade com a versão anterior significa usar marcação e código exclusivos (ou obsoletos) para garantir que cada visitante obtenha os mesmos resultados, estejam usando o IE2 ou o Opera 10. Teoricamente,
compatibilidade com a versão anterior soa ótimo. Mas o custo é alto demais e
essa prática sempre se baseou em uma mentira. A verdade é que não há uma
compatibilidade com a versão anterior real. Sempre existe uma limitação. Por
exemplo, nem o Mosaic (primeiro navegador visual) e nem o Netscape 1.0
suporta layouts com tabelas HTML. Logo, por definição, quem usa esses navegadores antigos jamais poderia obter a mesma visualização de quem usa navegadores mais recentes, como o Netscape 1.1 ou o MSIE2.
Desenvolvedores e clientes que alegam se esforçar para obter compatibilidade com a versão anterior inevitavelmente especificam um “navegador base”,
como o Internet Explorer 6, afirmando ser o navegador mais antigo que seus
sites suportarão. (Nesse cenário, os usuários do IE5 estão sem sorte). A fim
de oferecer suporte ao navegador base, os desenvolvedores inserem em suas
marcações artifícios não padrão específicos a determinados navegadores, criam
variados scripts para acomodar os navegadores “suportados” e usam a detecção
da UA para prover a cada navegador o código mais adequado. Ao fazer isso, eles
aumentam o tamanho das páginas, sobrecarregam o servidor e garantem a continuidade da obsolescência.
designing_with_web_std_cad_01_PB.indd 27
11/10/2010 09:04:10
28
capítulo 1 > 99,9% dos Websites Estão Obsoletos
Limitar Usuários é Ruim para os Negócios
Enquanto algumas empresas prejudicam seus próprios lucros ao tentar garantir
que mesmo os navegadores antigos exibam seus sites exatamente como os atuais, outras decidiram que só um navegador importa. Num esforço equivocado
para reduzir as despesas, muitos sites são desenvolvidos para funcionar apenas
no Internet Explorer, e às vezes só na plataforma Windows. Isso exclui entre 15
e 25% os possíveis visitantes e clientes [1.6, 1.7, 1.8, 1.9, 1.10].
1.6
A página da KPMG (www.
kpmg.com), em 2003, vista
no Netscape Navigator. Ou
melhor, não vista, graças ao
código voltado apenas para
o IE.
1.7
O site também ficava inútil no
Nestcape 7.
designing_with_web_std_cad_01_PB.indd 28
11/10/2010 09:04:11
Compatibilidade com a Versão Anterior é uma Mentira 29
1.8
Bem, se o site fosse apenas
para o IE, como ele funcionava
no IE5/Mac? Aparentemente,
não tão bem assim.
1.9
Mesmo site visto no IE6/
Windows, onde ele finalmente
funciona.
1.10
Para ser justo, o site “meio
que funcionou” no Opera
7 para Windows quando o
navegador estava configurado
para ser identificado como se
fosse o IE, caso contrário não
funcionaria.
designing_with_web_std_cad_01_PB.indd 29
11/10/2010 09:04:11
30
capítulo 1 > 99,9% dos Websites Estão Obsoletos
1.11
Após um novo
desenvolvimento, hoje o site
da KPMG parece e funciona
bem em vários sites e
plataformas. Mas ainda há
muito espaço para melhorias
no código, porém uma
marcação atualizada e voltada
não apenas para o IE fez toda
a diferença.
Ver Apêndice - Imagens Coloridas
Não fingirei que entendo o modelo de negócios de uma empresa que excluiria
um quarto de possíveis clientes. E só a quantidade de clientes perdidos devido
a essa abordagem com falta de percepção deveria chocar qualquer dono de negócios racional ou agência não corporativa cuja função seja servir ao público.
Segundo estatísticas recentes (www.internetworldstats.com), quase 1,6 bilhões
de pessoas usaram a Web em maio de 2009). Faça as contas!
Digamos que você não se importe de perder 25% de visitantes do seu site. A
prática “só IE” ainda não faz sentido, pois não há garantias de que o IE (ou mesmo outros navegadores) continuará a dominar a Web. Conforme escrevo essas
linhas aqui, o Firefox continua a tomar espaço do IE, e cada vez mais pessoas
estão acessando a internet através de dispositivos móveis como o Webkit e o
Opera Mini. Conforme a informática se propaga e gera novos mercados, a noção
de desenvolvimento exclusivo para qualquer navegador parece cada vez mais
coisa do século XX e cada vez menos inteligente.
Além disso, como este livro mostrará, padrões possibilitam desenvolver sites
para todos os navegadores e dispositivos de forma tão rápida e fácil como se fosse apenas para um.
No esforço para prover visualizações idênticas em ambientes incompatíveis de
navegadores, nos esquecemos de seu verdadeiro potencial como um meio rico
e multicamadas, com acessibilidade para todos. Isso ocorreu quando designers
designing_with_web_std_cad_01_PB.indd 30
11/10/2010 09:04:12
A Cura 31
e desenvolvedores, lutando para cumprirem as demandas de produção durante
o curto estouro da internet, aprenderam técnicas altamente falhas de criação de
sites, o que nos levou ao estado de obsolescência atual.
Mas o período de obsolescência do desenvolvimento Web está sumindo conforme você lê este livro, levando inúmeros sites junto. Se for dono, administrador,
designer ou programador de sites, seu site corre perigo também.
A Cura
“Escreva uma vez, publique em todo lugar”. A promessa de padrões Web é
mais do que um pensamento desejado. Hoje em dia eles já são viáveis através dos métodos que exploraremos aqui. Embora os principais navegadores
atuais finalmente suportem esses padrões e métodos, muitos designers e desenvolvedores ainda não estão cientes deles. E novos sites ainda são construídos na areia movediça de códigos e marcações não padrão. Este livro espera
mudar isso.
Criadas por membros do W3C e outras entidades de padrões e suportadas por
todos os navegadores a partir do ano 2000, tecnologias como CSS, XHTML, Javascript e o DOM do W3C possibilitaram que designers conseguissem:
yy Controle mais preciso no layout, posicionamento e tipografia de navegadores gráficos ao mesmo tempo permitindo que usuários modificassem a
exibição conforme suas necessidades.
yy Desenvolvimento de comportamentos sofisticados que funcionassem em
vários navegadores e plataformas.
yy Cumprimento das regras e instruções de acessibilidade sem comprometer
beleza, performance ou sofisticação.
yy Re-design do site em horas em vez de dias ou semanas, reduzindo os custos e eliminando um trabalho maçante.
yy Suporte a vários navegadores sem o incômodo e a despesa para se criar
versões separadas, e geralmente com pouco ou nenhum code forking.
yy Suporte a dispositivos não tradicionais e novos, desde gadgets sem-fio e
smartphones a dispositivos com saída em Braille e leitores de tela usados
por pessoas com deficiências – novamente sem o incômodo e a despesa
para se criar versões separadas.
designing_with_web_std_cad_01_PB.indd 31
11/10/2010 09:04:12
32
capítulo 1 > 99,9% dos Websites Estão Obsoletos
yy Provimento de versões impressas sofisticadas de qualquer página Web,
geralmente sem criar versões separadas de impressões para o usuário final ou sem depender de sistemas exclusivos de publicação para gerar tais
versões.
yy Transição da salada de tags do passado para a verdadeira Web semântica
do presente e do futuro.
yy Garantia de que sites bem projetados e criados funcionarão corretamente
nos navegadores atuais compatíveis com padrões e terão um desempenho
aceitável nos navegadores antigos – mesmo que a renderização pixel por
pixel desses não seja a mesma que nos atuais.
yy Garantia de que sites bem desenvolvidos continuarão a funcionar nos
navegadores e dispositivos futuros, incluindo aparelhos que ainda nem
foram imaginados. Essa é a promessa da compatibilidade futura.
yy ... e tem mais, como este livro mostrará.
Antes que possamos aprender como os padrões atingem esses objetivos, devemos analisar as técnicas antigas que eles irão substituir e descobrir exatamente
como elas perpetuam o ciclo de obsolescência. O Capítulo 2 tratará disso tudo.
Não está no clima para ler sobre história? Pule para o Capítulo 3 para um pouco
de ar puro.
designing_with_web_std_cad_01_PB.indd 32
11/10/2010 09:04:12
Download