html - usos - utf 8 meta




Valor inválido Compatível com X-UA para o atributo http-equiv no elemento meta (6)

Eu usei o mesmo meta que o HTML5 Boilerplate está usando, e o validador HTML do W3C reclama:

Valor inválido Compatível com X-UA para o atributo http-equiv no elemento meta.

<meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>

O que há de errado com essa meta tag?



Eu tive o mesmo problema e adicionando e cercando toda a linha resolvida a situação.

<!--[if IE]><meta http-equiv="x-ua-compatible" content="IE=9" /><![endif]-->

Por favor ,chrome=1 remova ,chrome=1 da meta tag que vai funcionar bem. Com validador:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Se você baixar / construir o código src do validador, você mesmo poderá adicionar suporte.

Adicione o seguinte a um arquivo como html5-meta-X-UA-Compatible.rnc . Em seguida, inclua-o em html5full.rnc .

Eu fiz isso e funciona muito bem para validar.

meta.http-equiv.X-UA-Compatible.elem =
  element meta { meta.inner & meta.http-equiv.X-UA-Compatible.attrs }
  meta.http-equiv.X-UA-Compatible.attrs =
    ( common.attrs.basic
      & common.attrs.i18n
      & common.attrs.present
      & common.attrs.other
      & meta.http-equiv.attrs.http-equiv.X-UA-Compatible
      & meta.http-equiv.attrs.content.X-UA-Compatible
      & ( common.attrs.aria.role.presentation
        | common.attrs.aria.role.menuitem
        )?
    )
    meta.http-equiv.attrs.http-equiv.X-UA-Compatible = attribute http-equiv {
      xsd:string {
        pattern = "X-UA-Compatible"
      }
    }
    meta.http-equiv.attrs.content.X-UA-Compatible = attribute content {
      xsd:string {
        pattern = "IE=((edge)|(EmulateIE(7|8|9|10))|7|8|9|10|11)(,chrome=(1|0))?"
      }
    }

common.elem.metadata |= meta.http-equiv.X-UA-Compatible.elem

Uma solução possível é implementar uma correção no lado do servidor no cabeçalho, como sugerido neste belo artigo escrito por Aaron Layton. (Todo o crédito deve ir para ele, e vou parafrasear ao invés de plagiar ...)

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

"Quando o Internet Explorer se deparar com essa linha, ele mudará o mecanismo que está sendo usado para o primeiro Google Chrome Frame, se o plug-in estiver instalado, e depois para o Edge (o mais alto modo de documento suportado do navegador)."

Etapas :

  • Corrigir a validação da página - Isso é conseguido simplesmente removendo a tag
  • Velocidade de renderização - Em vez de esperar que o navegador veja a tag e, em seguida, alterar os modos, enviaremos o modo correto antecipadamente como um cabeçalho de resposta
  • Certifique-se de que mostramos apenas a correção para o Internet Explorer - Usaremos apenas algumas detecções de navegador do lado do servidor e só as enviaremos para o IE

Para adicionar o cabeçalho em PHP, basta adicionar isso à nossa página:

if (isset($_SERVER['HTTP_USER_AGENT']) &&
    (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))
        header('X-UA-Compatible: IE=edge,chrome=1');


Ou você pode adicioná-lo ao seu arquivo .htaccess assim:

<FilesMatch "\.(htm|html|php)$">
    <IfModule mod_headers.c>
        BrowserMatch MSIE ie
        Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
    </IfModule>
</FilesMatch>


Link para o artigo original, verifique os comentários para possíveis advertências. Também inclui uma implementação para o C #.

Corrigir valor inválido X-UA-Compatible de uma vez por todas

Espero que isto ajude!






x-ua-compatible