O IE7 e a negociação de conteúdos

Algumas pessoas interpretaram esta matéria como um ataque ao IE7. Absolutamente eu afirmo que não se trata disto. Eu estou tentando ser útil. A Microsoft sempre tomou grande cuidado em não quebrar as coisas para seus consumidores ao lançar novas versões de navegadores. Eu estou tentando apenas chamar a atenção para um ponto que acredito deve ter passado desapercebido. O próprio título da matéria sumariza meu pensamento.

Eu acredito que o IE7 quebrará a negociação de idioma em muitos servidores

Sob este título Richard Ishida, líder das Atividades de Internacionalização do W3C, publicou em seu Blog uma interessante matéria que aqui vai traduzida para conhecimento e comentários dos meus leitores.

O Blog do IE7 acaba de anunciar que a Microsoft alterou a maneira como o navegador define por padrão as preferências de idioma para Accept-language. Basicamente, se você está na França sua preferência de idioma não mais será definida como fr por padrão, mas como fr-FR ou seja, o local será determinado pelas configurações do Windows.

Eu acredito que este procedimento trará problemas para a negociação de conteúdos na Web.

Vamos a um exemplo prático :
Defina suas configurações de idioma para es-MX e/ou es-ES e abra no navegador este artigo publicado no site do W3C (trata-se um artigo explicando como definir preferências de idioma no navegador).

Você irá obter a versão em inglês, muito embora exista uma versão em espanhol. Qualquer um que tiver definido como idioma preferido a tag es no IE6, Opera ou Firefox verá a versão em espanhol – ainda que tenha definido suas preferências como es-MX e depois es.

É assim que funciona a negociação de idioma em servidores Apache.

No artigo cujo link fornecemos acima nós explicamos que “Alguns mecanismos de seleção de idiomas no lado do servidor requerem um casamento exato das definições no Accept-Language header. Se um documento no servidor estiver ‘tageado’ com o código de idioma fr (francês) uma requisição para um documento casar com fr-CH (francês da Suiça) não funcionará. Para assegurar sucesso na requisição você deve configurar o navegador para requisitar tanto fr-CH como fr.”

A citação a seguir foi retirada da documentação do Apache 2:

“Quando o servidor não conseguir casar uma tag de idioma, tentará casar com subtags para aquele idioma. Por exemplo, se um cliente solicita um documento escrito em inglês da Grã Bretanha en-GB, ao servidor rodando sob as normas de HTTP/1.1 não é permitido casar com um documento definido com a tag en. (Notar que é um erro de configuração incluir en-GB e não incluir en no Accept-Language header, uma vez que é muito improvável que um leitor entenda o inglês da Grã Bretanha e não entenda inglês. Infelizmente, muitos dos clientes atuais estão configurados de forma semelhante a esta.”

Apache 2 introduziu “algumas excessões… ao algorítimo de negociação de modo a permitir uma degradação graciosa quando a negociação falha na tentativa de casar a tag de idioma”, contudo àqueles usando Apache 1 não é dado este luxo.

Além do fato de que a maioria dos usuários sequer sabe que pode configurar as preferências de idioma no navegador, o IE7 CR1 ainda agrava o problema ao deixar de definir por padrão uma pre-seleção es para es-ES – você terá que definir manualmente. O que não é trivial para a maioria.

A mim parece evidente que a solução simples para este problema seria configurar a definição padrão de preferências de idioma no IE7 para incluir *também* es (ou seja, es-ES, es para Espanha, fr-FR, fr para França, etc.). Então quando um arquivo tal como qa-lang-priorities.fr-fr.html não for encontrado, o servidor encontrará qa-lang-priorities.fr.html e servirá o arquivo em francês. Aqueles que quiserem saber onde o usuário do navegador está (ou supostamente está) fisicamente localizado poderão ainda usar fr-FR para conhecer o local.

Eu acredito que o resultado disto é que muitos usuários ficarão confusos com o fato de não mais ver a página em espanhol, quando isto era normal anteriormente (com o Internet Explorer anterior ao IE7) e uma grande quantidade de trabalho de desenvolvedores (desenvolvendo documentos em vários idiomas) ficará perdida na Web. Resumindo, eu acredito que a Microsoft está introduzindo um bug sério no IE7.

Notar de passagem, que as regras para definir o atributo lang no HTML e o atributo xml:lang no XHTML são descritas pela BCP47. A última versão da sintaxe e especificações de casamento são as RFC 4646 e RFC4647 – que tornaram obseletas as RFC 3066 e as RFC 1766, e que remete você não para as listas de código da ISO mas sim para a IANA Language Subtag Registry em
http://www.iana.org/assignments/language-subtag-registry se você quiser saber que códigos de idiomas usar. Para mais informações ver:
http://www.w3.org/International/articles/language-tags/ )

A propósito: Eu tentei postar estes meus pensamentos em forma de comentário no Blog do IE7, mas não foi possível (muito tráfego no site) e por isso escrevi este artigo aqui.

Maujor

Exerci o magistério paralelamente a minha carreira profissional por toda uma vida e ao longo destes trinta anos aprendi tanto quanto ensinei. Sou um apaixonado por Web Standards e desenvolvo o site de tutoriais CSS para Web Design.

View Comments

  • O meu PC tem Windows XP SP2 português (de Portugal). O idioma é PT de Portugal. Descarreguei O IE7 Português de Portugal e quando mando instalar diz que o idioma do PC é diferente do do IE7 descarregado. Já tentei outra vez e dá o mesmo. Algo está errado com o IE7...

  • Nós, pessoas com deficiência visual, precisamos da declaração do idioma na tag html ou xhtml para que nossos leitores de telas determinem o idioma do sintetizador de voz a ser usado. Dessa forma, seria não somente bom, mas necessário, que a determinação do idioma fosse feita de forma padrão para todos os navegadores, caso contrário, poderíamos ler, digo, escutar páginas em espanhol com o sintetizador em francês, ou documentos em português com o sintetizador em inglês, dependendo do padrão adotado pelo navegador ou leitor de telas.. Isso significa que eu, como pessoa cega, poderia tentar escutar uma página escrita em português com o sutaque e pronúncia do idioma inglês. Isso acontece até com pessoas atentas à acessibilidade, como o próprio Maujor... que já tem uma página super acessível, pois estou aqui postando meu comentário. Por exemplo, em seu texto acima, que repetirei abaixo:

    "Algumas pessoas interpretaram esta matéria como um ataque ao Internet Explorer7. Absolutamente eu afirmo que não se trata disto. Eu estou tentando ser útil.
    A Microsoft sempre tomou grande cuidado em não quebrar as coisas para seus consumidores ao lançar novas versões de navegadores. Eu estou tentando apenas
    chamar a atenção para um ponto que acredito deve ter passado desapercebido. O próprio título da matéria sumariza meu pensamento.

    Eu acredito que o IE7 quebrará a negociação de idioma em muitos servidores..."

    Bem, quando o amigo escreveu: "A Microsoft sempre tomou..." abriu uma marcação em idioma inglês, pois meu sintetizador leu Microsoft em inglês, mas não fechou a marcação e aí meu sintetizador foi lendo tudo, até o final do parágrafo, em inglês, mesmo sendo um texto em português. No final do parágrafo deve ter encontrado um /span e meu sintetizador começou a ler em português. Mas isso é algo pontual, visto que nosso amigo Maujor é um dos poucos que colocam as marcações para idiomas em palavras ou expressões, para que os sintetizadores de pessoas com deficiência como eu, possam escutar palavras estrangeiras como devem ser escutadas. Assim, eu escutei maicrosoft e não microsoft, porque Maujor se preocupa em fazer a coisa certa, com acessibilidade. O detalhe foi que nosso amigo esqueceu de fechar a marcação logo após "Microsoft"(ccom licença da palavra{risos}), coisa que não é seu costume. Já me estendi muito, mas quero deixar aqui os meus parabéns pela qualidade desse blog, da codificação e atenção à acessibilidade, pela limpesa e alto nível dos posts. Valeu Maujor!

  • Quem sempe vai pagar serão os desenvolvedores! É frustrante ver que existe um padrão e que a MS não queira seguir. Até entendo que a maioria dos navegadores são IE, mas acho que se eles quisessem ter o seu próprio padrão deveriam anunciar para evitar a espera de que eles padronizem-se.
    Creio que uma mudança só ocorrerá mesmo se, a MS dominar com um padrão dela, ou o padrão W3C dominar e fazer com que o IE deixe de ser usado.
    Contudo, gostaria que acabasse da forma que todos os desenvolvedores, como eu, sempre quiseram..."programar para a internet, e não para navegadores!".

    []s

  • Será que eles querem colocar os padrões deles ? Só para ser diferente. Eu nem instalei o IE7 e nem pretendo. Soh ser for em caso de testes.

  • Eu pensava que dessa vez as coisas iam mudar. Ta certo que mudou muita coisa no ie 7, mas nem tudo foi como se esperava!

  • Muito se falava que agora o IE seguiria os padões, era de se duvidar.

  • Algum motivo eles devem ter. Mas é difícil imaginar algum benefício que sobreposse esses contras apresentados né?

  • Pois é. Mais uma vez o IE querendo fugir do padrão! Porquê? Nessa fase que todos os navegadores estão querendo criar um padrão, para facilitar a vida de nós, desenvolvedores, o IE sempre vem com suas particularidades. Será que eles pensam que a web gira em torno do IE?

Share
Published by
Maujor

Recent Posts

Teste seu conhecimento #20

Em 2006 comecei a publicar nesse blog uma série de desafios CSS que consistiam em…

7 anos ago

Teste seu conhecimento #19

Há muito tempo que eu não publico um "Teste seu conhecimento". Esta semana, revendo algumas…

9 anos ago

JavaScript bubbling e capturing

Introdução Elementos da marcação HTML podem ser aninhados uns dentro de outros, criando-se uma cadeia…

10 anos ago

HTML5 – W3C versus WHATWG

HTML5? Web universal? É comum eu me deparar com dúvidas sobre a HTML5 não só…

10 anos ago

Seria esse o futuro das imagens responsivas?

Quem é Tab Atkins Jr? Tab Atkins Jr, um desenvolvedor americano, trabalhou durante muitos anos…

10 anos ago

BrazilJS Conf 2013

Pessoal, a BrazilJS Conf 2013 disponibilizou para o Maujor cupons de desconto para serem oferecidos…

11 anos ago