Para que possamos entender melhor o assunto do IE8 e como ele tratará as páginas, é bom que possamos entender o que houve no passado. Se você se lembrar bem como foi entre os anos de 1999, 2000 e 2001, provavelmente você vai lembrar que durante algum tempo, tínhamos que nos virar para garantir a total compatibilidade dos nossos sites em diversos browsers. Os principais eram o IE5, IE6, Firefox e Opera. Era uma época que – como no começo da bolha – estava tudo acontecendo ao mesmo tempo. Os Padrões Web estavam virando moda, os browsers, pelo menos os mais inteligentes, estavam se virando para suportar os Padrões, e os usuários ficando mais espertos e ativos na internet. Tudo era muito passível de erros de compatibilidade e renderização.
O principal caso era do Internet Explorer 5 e Internet Explorer 6. Os dois browsers tem uma renderização muito diferente. O Internet Explorer 6 tem um suporte melhor ao CSS do que o IE5. Isso causou um problema: pelo menos durante um certo tempo, nós tínhamos que prever a compatibilidade para o IE5. E agora, tínhamos que pensar também no Internet Explorer 6. Os dois renderizavam o CSS de formas bem diferentes, o que causou um certo dilema que foi resolvido com a seguinte solução: Chaveamendo de Doctype.
O Chaveamento pelo Doctype
O DOCTYPE (Document Type Definition, DTD) serve para indicar qual o tipo do documento o browser está lendo. Ele define qual linguagem estamos utilizando e isso ajuda o browser a saber como ele deve tratar aquele código. O código DOCTYPE deve ser escrito em primeiro lugar no código HTML. Aqui eu falo um pouco mais sobre o DOCTYPE.
A solução é seguinte: dependendo do DOCTYPE colocado no documento o browser renderiza da forma antiga, chamada de Quirks Mode ou em Strict Mode, que é o modo que o browser busca ter mais suporte com os Padrões. Isso é aplicado para o IE6. Se colocarmos um DOCTYPE XHTML 1.0 ou um HTML 4.01 o Internet Explorer 6 renderiza no modo esperto, se colocarmos um DOCTYPE de uma versão velha do HTML – como o HTML 3 – ou se não colocarmos o DOCTYPE, o IE 6, renderiza a página como o IE5, com menos suporte aos Padrões. Essa solução é feita para garantir uma certa retrocompatibilidade dos sites. Assim, o desenvolvedor que preferir manter a compatibilidade com o IE5, ele tem essa opção. Essa solução foi ótima no começo e felizmente o IE5 não demorou muito para sair de linha. Hoje é totalmente indicado que o desenvolvedor utilize um DOCTYPE novo (HTML 4.01 ou XHTML 1.0), que é a maneira mais correta de escrever HTML e que faz o IE6 renderizar melhor a página.
O causo do IE8
O Internet Explorer 7 veio com muitas correções de CSS e trouxe outros problemas, mas teoricamente ele melhorou um bocado a nossa vida, pelo simples fato de que ele é um browser mais moderno e tem um suporte mais avançado que o IE6. Mesmo assim, o problema de retrocompatibilidade ainda existe: muitos sites era bem visualizados em IE6, mas quebravam quando visitados com o IE7.
O Internet Explorer 8 será muito mais diferente dos IEs passados. O pessoal que desenvolve o IE8 está criando um motor de renderização totalmente diferente. Ele já passa no Test Acid 2 e promete ter o máximo de compatibilidade sobre o CSS 2.1. Isso é um problema.
Os problemas que os desenvolvedores enfrentam são muitos. A falta do suporte total das linguagens que usamos, traz problemas de interpretação dos padrões. É normal hoje em dia, que dois browsers, atualizados, tragam renderizações diferentes de uma mesma ação.
A solução que o pessoal da Microsoft, juntamente com o WaSP foi a seguinte: usando uma declaração de metatag, nós poderemos especificar a maneira que o motor de um browser como o IE8 deverá renderizar a página. O exemplo da metatag é o seguinte:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
Isso faz com que o IE8 renderize a página utilizando o máximo de Padrões (lembre-se de que eles estão trabalhando para que o IE8 tenha suporte total ao CSS 2.1. Bem como o pessoal do Firefox 3 e Safari).
Esta meta será colocada no HEAD do documento. Isso pode ser incorporado em outros Browsers, dessa forma:
<meta http-equiv="X-UA-Compatible" content="IE=8;FF=3;OtherUA=4" />
Para melhorar a velocidade de processamento do navegador, será importante priorizar esta metatag colocando, se possível, em primeiro lugar dentro da tag HEAD, antes das outras tags meta e não poderá ser incluído via Javascript DOM.
Um problema que pode causar é o seguinte: imagine que você coloque a metatag dizendo que o IE8 deverá renderizar aquele site da melhor maneira possível. Quando um IE9 for lançado, o site estará travado para o IE8. O IE9 não renderizará direito o site. O desenvolvedor deverá atualizar a metatag para o IE9.
Minha opinião
Como tudo no desenvolvimento web, devemos esperar para ver. Não podemos prever muita coisa antes da efetivação dessa regra. Só iremos ter certeza dos resultados e os possíveis problemas, quando aplicarmos essa solução.
Mesmo assim, acho que tudo deveria ser nivelado por cima. Porque os desenvolvedores que se preocupam e utilizam os Padrões da maneira correta, são os que devem marcar o browser? Não seria mais fácil criar uma metatag para marcar os sites que não devem ser renderizados com o suporte avançado de Padrões? Quem deve se preocupar, são os desenvolvedores que não dão a mínima para os Padrões. Eles sim devem trabalhar para deixar seus sites atualizados.
Minha parte terrorista diz que provavelmente seria uma boa idéia quebrar a regra “Don’t Break the Web” e ver o que aconteceria com os sites que não estão nos Padrões. Talvez isso iria mobilizar clientes e desenvolvedores e forçá-los a dar mais crédito aos Padrões e a fazer atualizações estruturais no site. Normalmente os clientes não sabem e nem querem saber dos dilemas que passamos com a falta de compatibilidade. Faz parte do papel deles.
Não podemos esquecer da falta de informação dos usuários. Muitos nem sabem o que é “Navegador”. Ter uma maneira que os browsers deles fossem atualizados sem que eles mexessem um dedo seria uma forma interessante de ter a compatibilidade dos browsers sob controle. Os devenvolvedores teríam mais acesso às informações sobre o que mudou na renderização comparando com a versão anterior do browser. Isso facilitaria o trabalho de atualização e ajustes dos sites. Seria maravilhoso, se o mundo fosse perfeito. Mas…
(09/03/08) UPDATE: E a Microsoft mudou de idéia.
33 Comentários
33 Comentários
Ronaldo 25/01/2008 às 17:58
Um problema que pode causar é o seguinte: imagine que você coloque a metatag dizendo que o IE8 deverá renderizar aquele site da melhor maneira possível. Quando um IE9 for lançado, o site estará travado para o IE8. O IE9 não renderizará direito o site. O desenvolvedor deverá atualizar a metatag para o IE9
Essa informação é incorreta. O site será renderizado permanentemente como o _engine_ do IE8, mesmo sob o IE9 (ou qualquer versão posterior). Se o _tag_ for *removido*, o _engine_ padrão será usado e se houver dependências específicas do IE8, então haverá um problema de renderização.
Rochester 25/01/2008 às 18:03
O problema é que quando um leigo visita o site e o vê quebrado acha que a culpa é do browser e não do desenvolvedor. E ninguém quer perder usuários por eles acharem seu browser “bugado”.
Mas acho o “chaveamento para standard” ridículo.
Tiago Colucci 25/01/2008 às 18:29
Como já foi dito…é esperar pra ver, quem sabe no final se torna uma boa saída.
nicholas 25/01/2008 às 18:33
Meu lado terrorista tambem pensa que deveriamos quebrar todas as páginas que não seguem os padrões. Mas como não podemos fazer isso, acho que só colocar um limite nos browsers já atrapalharia bastante.
Imagina um desenvolvedor dizendo que sua página é compatível com o IE5 através da tag META. As versões 9, 10, 11 e posteriores teriam que ter a engine de renderização para o IE5! Absurdo isso!
Edy Segura 25/01/2008 às 18:35
Além de ridículo a cada versão nova de navegador vamos ter que ficar chaveando. Eu concordo com Diego. Quem não se preocupa com os padrões que tem que ficar chaveando.
VitorGGA 25/01/2008 às 18:51
“Quando um IE9 for lançado, o site estará travado para o IE8. O IE9 não renderizará direito o site.”
Mas a idéia é realmente esta, fazer um código, e manter ele ali naquela versão de IE, sem futuros bugs. Mas também não sakei, igual o Nicholas disse ai enriba, e ae, IE9 terá tudo?
IanLiu 25/01/2008 às 21:52
Eu sempre tive uma ideia maluca em que um arquivo fosse mantido em um local na Web com todas as regras de renderização. Assim quando um navegador exibir uma página, ele utiliza essas regras. Toda vez que o arquivo alterar-se, os navegadores se adaptam na hora.
Browser Targeting Version, no Tableless » Profissão Web - Mentes criativas transformando o mundo. 26/01/2008 às 01:18
[...] Clique aqui para acessar o artigo. [...]
Paulo de Loyola 26/01/2008 às 09:33
Acho que o problema da renderização de CSS está deixando de lado outro problema, talvez mais grave… Existem incompatibilidades entre a programação JavaScript do IE6 para o IE7. Uma coisa é um site ficar um tanto torto na tela, outra coisa é um site simplesmente deixar de funcionar dependendo da versão do browser.
Renato 26/01/2008 às 11:08
Esse pensamento do IanLiu é interessante, concordo com seu ponto de vista, se fosse feito dessa forma instantaneamente após a atualização os Browsers já estariam adaptados.
Agora o chaveamento realmente não é a melhor opção, vamos aguardar algo melhor nesse desenvolvimento.
Rafael Marin 27/01/2008 às 10:38
Não concordo com o chaveamento não. Mas tudo na vida é assim, quem faz direito, bem feito, sempre paga pelo que faz mal feito.
Igor Escobar 27/01/2008 às 11:46
Realmente,
Vamos esperar pra ver, na minha opinião, a microsoft esta colhendo o que ela mesma plantou, se você inicia uma ideia de forma errada, no futuro fica difícil de corrigi-la ou adequá-la. O Firefox acertou por que desde o inicio eles planejaram de forma correta e transparente, já a microsoft acho que na cabeça deles eles sempre iriam dominar o mercado dos browsers e entrou nessa de cabeça sem pensar muito em como será renderizado em outros browsers etc. Agora estão tentando correr atrás do prejuízo.
Tiago Floriano 28/01/2008 às 08:00
Sinceramente, sou do 8 ou 80. Se eles não fizerem algo que realmente funcione, torço mais é que dê tudo errado e que eles percam cada vez mais mercado para o Firefox & Cia, se fizeram algo que funcione, comemoro e torço para que continuem sempre assim! Porque fala sério, nessa palhaçada toda da Microsoft quem se rala é quem trabalha desenvolvendo sites…
Rafael Lazarini 28/01/2008 às 14:17
‘Minha parte terrorista diz que provavelmente seria uma boa idéia quebrar a regra “Don’t Break the Web” e ver o que aconteceria com os sites que não estão nos Padrões.’
Sempre tive este tipo de pensamento, fazer um site que segue as regras de Padrão e ver o que os desenvolvedores dos navegadores sem padrões iriam fazer… iriam perder usuários por não quererem atualizar seus browsers da maneira correta, ou iriam correr atrás do prejuizo e fazer tudo certo?
Infelizmente, onde eu trabalho não temos como fazer os sites com padrões, pois é uma empresa certificada pela Micro$oft e a unica coisa que meu chefe pensa é em fazer funcionar no IE6 e IE7… felizmente, tentamos ao máximo deixar ele acessível pelo FF, Opera, Konqueror, etc… mas nem sempre é possível fazer isso e acabamos apelando para Hacks e Comentários Condicionais.
Espero que um dia essa minha condição desapareça e que eu posso fazer os sites seguindo os padrões e que todos estejam felizes… =D
Dalton 28/01/2008 às 15:35
Eu acredito que não há com o que se preocupar. Fiz um site XHTML 1.0 Strict e CSS 2.1 100% válido pelo W3, e não tenho problema algum na renderização com IE6, IE7, FF2, FF3, Safari…
Claro, um navegador pode não ter suporte a uma coisa ou outra, mas tratando-se de fazer um site WebStandard essas incompatibilidades nem passam por perto.
Logo esse esperado suporte total a CSS 2.1 no IE8 só irá encaminhar os sucessores a perfeição.
É isso… xD
Minha opnião é de que incompatibilidade entre browsers é coisa do passado…
Thiago Breda 29/01/2008 às 09:16
Concordo com o “Dalton” em termos… No outro post sobre “Comentários Condicionais” fiquei impressionado com o ponto de vista do pessoal que desenvolve, achei extremamente fraco e de baixo conhecimento técnico… E como havia dito por lá, desenvolver um site que se seja compativel com “todos” os navegadores, não é nada de outro mundo, e sem necessidade de hacks ou comentários condicionais… Na teoria vc desenvolvendo um site que se adapte ao FF1.5 e IE6, no IE7 e FF2, dificilmente vc terá problemas! Não concordam?!
Abraço a todos
Daniel Accorsi 29/01/2008 às 11:16
É isso aí Diego, legal a breve explicação sobre Doctype e a nova meta. Mas essa, sendo um novo recurso, pode trazer também novos obstáculos como você mesmo disse. Massss, acredito que não será problema a questão de definirmos para IE8 mesmo ocorrendo o lançamento posterior do IE9. depende muito se o IE9 (ou os padrões definidos) vai ou não ignorar sua versão anterior.
Ignorando isso, e se tivermos que atualizar o html? É doloroso? Eu acho que não! Pelo contrário, nossos clientes vão saber que estamos atualizando seus próprios produtos, afinal, quem trabalha TAMBÉM com manutenção? só eu?
Carlos Alberto 30/01/2008 às 10:58
Não sou um defensor do IE nem do FF, mas, parece que alguns comentaristas e colegas aqui esqeucem que o FF até sua versão atual, também não passa no teste da Acid 2.
Então pessoal, acho mesmo que o negócio e estudar os padrões.
Anderson Custódio 30/01/2008 às 18:41
A microsoft está fazendo uma zona com esses IE tabajara, esse negócio de lançar um IE cada vez menos ruim vai prejudicar muita gente, eles deveriam fazer um navegador que preste, para depois lançar ao público, e não fazer essa zona.
ps: não vejo uma solução melhor que descontinuar o IE.
Bit por minuto 31/01/2008 às 08:11
[...] quer entender um pouco mais clique aqui e vai direto no artigo do Diegão flw! Publicado em Dica, Interessante , MetasTags | [...]
Mateus 31/01/2008 às 16:19
Gostei do post… e curti mto a resposta do thiago breda, ta cada dia mais facil construir um site compativel com os navegadores… ja foi muuuuiiiito pior…
Leitura Tech » Internet Explorer 8 01/02/2008 às 10:29
[...] enfrentam com compatibilidade das páginas na hora de desenvolver para a próxima versão do IE. [Leia mais…] – [...]
Invasão » Blog Archive » O causo do IE8 03/02/2008 às 12:47
[...] que o pessoal da Microsoft, juntamente com o WaSP foi a seguinte: usando uma declaração de metatag, nós poderemos especificar a maneira que o motor de um browser como o IE8 deverá renderizar a [...]
Felipe Roberto 13/02/2008 às 18:07
É incrivel a capacidade de complicar da Microsof, muitas versões, poucas vantagens. Invelismente o pior browser ainda é o mais utilizado.
WinAjuda » Internet Explorer 8 Beta muito próximo! 25/02/2008 às 09:02
[...] oficial sobre a próxima versão do navegador mais usado do mundo, exceto aquela sobre o Acid2 e o modo “super standards” – que desde já, causa divergências e discussões entre desenvolvedores web. Mas parece que esse [...]
Internet Explorer 8 Beta muito próximo! « DeskWin Ajuda 25/02/2008 às 11:02
[...] oficial sobre a próxima versão do navegador mais usado do mundo, exceto aquela sobre o Acid2 e o modo “super standards” – que desde já, causa divergências e discussões entre desenvolvedores web. Mas parece que esse [...]
Internet Explorer 8 BETA muito próximo! « Info XP 25/02/2008 às 14:38
[...] oficial sobre a próxima versão do navegador mais usado do mundo, exceto aquela sobre o Acid2 e o modo “super standards” – que desde já, causa divergências e discussões entre desenvolvedores web. Mas parece que esse [...]
Defender Team » Internet Explorer 8 Chegando! 25/02/2008 às 19:20
[...] oficial sobre a próxima versão do navegador mais usado do mundo, exceto aquela sobre o Acid2 e o modo “super standards” – que desde já, causa divergências e discussões entre desenvolvedores web. Mas parece que esse [...]
WinAjuda » Wincast, o podcast do WinAjuda 26/02/2008 às 22:06
[...] (IE8) Browser Targeting Version (Tableless); [...]
Cátia Kitahara » Arquivo » Direcionamento de versão: ameaça ou perigo? 03/03/2008 às 21:09
[...] reuniu links em inglês sobre o assunto). Aqui no Brasil, Diego Eis do site Tableless também deu sua opinião contra. Jeffrey Zeldman, um dos co-fundadores do Projeto Web Standards, esquentou a discussão [...]
Tableless » IE8 - O sonho não acabou 09/03/2008 às 03:22
[...] Para você se inteirar do assunto, leia Browser Targeting Version. [...]
Felipe Roberto 13/03/2008 às 19:35
Também acho que quem não se preocupa com os padrões que se vire!
E acho também que deveria haver campanhas de conscientização de usuarios, para que utilizassem as ultimas versões disponiveis.
Eduardo Lima 29/05/2008 às 15:20
Deveria haver alguma maneira forte de mostrar que desenvolvedores que nao usam padroes estao fadados a causar o fracasso do site, gostei muito do argumento do Dalton la em cima sobre desenvolver usando padroes ,mas mesmo fazendo strict validado, às vezes temos alguns probleminhas com o IE6 em especial, problemas de alinhamento.