Logo do siteSilhueta da face do Maujor seguida do texto Maujor o dinossauro das CSS

Menu hamburger Três barras horizontais na cor laranja destinadas a ser clicada para abrir o menu menu do site

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

Publicado em: 2006-11-7 — 17.327 visualizacoes

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.

Desenvolvimento com Padrões Web? Adquira os livros do Maujor
Visite o site dos livros.

Esta matéria foi publicada em: 2006-11-7 (terça-feira). Subscreva o feed RSS 2.0 para comentários.
Comente abaixo, ou link para http://www.maujor.com/blog/2006/11/07/ie7-quebra-negociacao-conteudos/trackback no seu site.

8 comentários na matéria: “O IE7 e a negociação de conteúdos”

  1. ArturNo Gravatar disse:

    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…

  2. MAQNo Gravatar disse:

    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!

  3. Márcio DPNo Gravatar disse:

    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

  4. Alex LeãoNo Gravatar disse:

    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.

  5. Leonardo L ProcópioNo Gravatar disse:

    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!

  6. PauloNo Gravatar disse:

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

  7. Carlos EduardoNo Gravatar disse:

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

  8. danilowNo Gravatar disse:

    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?

Comentário:





Teclar "Enter" cria um novo parágrafo. Teclar "Shift + Enter" causa uma quebra de linha.

Subscribe without commenting

topo