Saltar al contenido

Que hace ¿hacer?

Solución:

Actualización de octubre de 2015

Esta respuesta se publicó hace varios años y ahora la pregunta realmente debería ser ¿Debería siquiera considerar usar el X-UA-Compatible etiqueta en su sitio? con los cambios que Microsoft ha realizado en sus navegadores (más sobre los siguientes).

Dependiendo de los navegadores de Microsoft que admita, es posible que no necesite continuar usando el X-UA-Compatible etiqueta. Si necesita admitir IE9 o IE8, le recomendaría usar la etiqueta. Si solo admite los últimos navegadores (IE11 y / o Edge), consideraría eliminar esta etiqueta por completo. Si usa Twitter Bootstrap y necesita eliminar las advertencias de validación, esta etiqueta debe aparecer en el orden especificado. Información adicional a continuación:


los X-UA-Compatible La metaetiqueta permite a los autores web elegir en qué versión de Internet Explorer se debe representar la página. IE11 ha realizado cambios en estos modos; consulte la nota IE11 a continuación. Microsoft Edge, el navegador que reemplazó a IE11, solo respeta el X-UA-Compatible metaetiqueta en determinadas circunstancias. Consulte la nota de Microsoft Edge a continuación.

Según Microsoft, al usar el X-UA-Compatible etiqueta, debe estar lo más alto posible en su documento head:

Si está utilizando la etiqueta META compatible con X-UA, desea colocarla lo más cerca posible de la parte superior del HEAD de la página. Internet Explorer comienza a interpretar el marcado con la última versión. Cuando Internet Explorer encuentra la etiqueta META compatible con X-UA, comienza de nuevo utilizando el motor de la versión designada. Este es un impacto en el rendimiento porque el navegador debe detenerse y reiniciarse analizando el contenido.

Aquí tienes tus opciones:

  • “IE = borde”
  • “IE = 11”
  • “IE = EmulateIE11”
  • “IE = 10”
  • “IE = EmulateIE10”
  • “IE = 9”
  • “IE = EmulateIE9
  • “IE = 8”
  • “IE = EmulateIE8”
  • “IE = 7”
  • “IE = EmulateIE7”
  • “IE = 5”

Para intentar comprender lo que significa cada uno, aquí hay definiciones proporcionadas por Microsoft:

Internet Explorer admite varios modos de compatibilidad de documentos que habilitan diferentes funciones y pueden afectar la forma en que se muestra el contenido:

  • El modo Edge le dice a Internet Explorer que muestre el contenido en el modo más alto disponible. Con Internet Explorer 9, esto es equivalente al modo IE9. Si una versión futura de Internet Explorer admitiera un modo de compatibilidad superior, las páginas configuradas en modo perimetral aparecerían en el modo superior admitido por esa versión. Esas mismas páginas seguirían apareciendo en el modo IE9 cuando se vean con Internet Explorer 9. Internet Explorer admite varios modos de compatibilidad de documentos que habilitan diferentes funciones y pueden afectar la forma en que se muestra el contenido:

  • El modo IE11 proporciona el mayor soporte disponible para los estándares de la industria establecidos y emergentes, incluidos HTML5, CSS3 y otros.

  • El modo IE10 proporciona el mayor soporte disponible para los estándares de la industria establecidos y emergentes, incluidos HTML5, CSS3 y otros.

  • El modo IE9 proporciona el mayor soporte disponible para estándares de la industria establecidos y emergentes, incluyendo HTML5 (Borrador de trabajo), Especificación de nivel 3 de Hojas de estilo en cascada W3C (Borrador de trabajo), Especificación 1.0 de Gráficos vectoriales escalables (SVG) y otros. [Editor Note: IE 9 does not support CSS3 animations].

  • El modo IE8 admite muchos estándares establecidos, incluida la especificación de nivel 2.1 de hojas de estilo en cascada del W3C y la API de selectores del W3C; también proporciona soporte limitado para la Especificación de Nivel 3 de Hojas de Estilo en Cascada del W3C (Borrador de Trabajo) y otros estándares emergentes.

  • El modo IE7 muestra el contenido como si Internet Explorer 7 lo mostrara en modo estándar, independientemente de que la página contenga una directiva.

  • El modo Emular IE9 le dice a Internet Explorer que use la directiva para determinar cómo representar el contenido. Las directivas del modo estándar se muestran en el modo IE9 y las directivas del modo peculiar se muestran en el modo IE5. A diferencia del modo IE9, el modo Emular IE9 respeta la directiva.

  • El modo Emular IE8 le dice a Internet Explorer que use la directiva para determinar cómo representar el contenido. Las directivas del modo estándar se muestran en el modo IE8 y las directivas del modo peculiar se muestran en el modo IE5. A diferencia del modo IE8, el modo Emulate IE8 respeta la directiva.

  • El modo Emular IE7 le dice a Internet Explorer que use la directiva para determinar cómo representar el contenido. Las directivas del modo estándar se muestran en el modo estándar de Internet Explorer 7 y las directivas del modo peculiar se muestran en el modo IE5. A diferencia del modo IE7, el modo Emular IE7 respeta la directiva. Para muchos sitios web, este es el modo de compatibilidad preferido.

  • El modo IE5 muestra el contenido como si Internet Explorer 7 lo mostrara en modo peculiar, que es muy similar a la forma en que se muestra el contenido en Microsoft Internet Explorer 5.

IE10 NOTA: A partir de IE10, el modo peculiaridades se comporta de manera diferente a como lo hacía en versiones anteriores del navegador. En IE9 y versiones anteriores, el modo peculiar restringía la página web a las funciones compatibles con IE5.5. En IE10, el modo peculiaridades se ajusta a las diferencias especificadas en la especificación HTML5.

Personalmente, siempre elijo el http-equiv="X-UA-Compatible" content="IE=edge" metaetiqueta, ya que las versiones anteriores tienen muchos errores, y no quiero que IE decida entrar en “Modo de compatibilidad” y mostrar mi sitio como IE7 vs IE8 o 9. Siempre prefiero la última versión de IE.

IE11

De Microsoft:

A partir de IE11, el modo de borde es el modo de documento preferido; representa el soporte más alto para los estándares modernos disponibles para el navegador.

Utilice la declaración de tipo de documento HTML5 para habilitar el modo perimetral:

El modo Edge se introdujo en Internet Explorer 8 y ha estado disponible en cada versión posterior. Tenga en cuenta que las funciones admitidas por el modo de borde están limitadas a las admitidas por la versión específica del navegador que representa el contenido.

A partir de IE11, los modos de documento están obsoletos y ya no se deben utilizar, excepto de forma temporal. Asegúrese de actualizar los sitios que se basan en funciones heredadas y modos de documento para reflejar los estándares modernos.

Si debe apuntar a un modo de documento específico para que su sitio funcione mientras lo modifica para admitir estándares y características modernas, tenga en cuenta que está utilizando una característica de transición, una que puede no estar disponible en versiones futuras.

Si actualmente usa el encabezado compatible con x-ua para apuntar a un modo de documento heredado, es posible que su sitio no refleje la mejor experiencia disponible con IE11.

Microsoft Edge (reemplazo para Internet Explorer que viene incluido con Windows 10)

Información sobre X-UA-Compatible metaetiqueta para la versión “Edge” de IE. De Microsoft:

Presentamos el modo de documento Edge “vivo”

Como anunciamos en agosto de 2013, estamos desaprobando los modos de documento a partir de IE11. Con nuestras últimas actualizaciones de plataforma, la necesidad de modos de documentos heredados se limita principalmente a las aplicaciones web heredadas de Enterprise. Con los nuevos cambios en la arquitectura, estos modos de documentos heredados se aislarán de los cambios en el modo Edge “vivo”, lo que ayudará a garantizar un nivel mucho más alto de compatibilidad para los clientes que dependen de esos modos y nos ayudará a avanzar aún más rápido en las mejoras en Edge. . IE seguirá respetando los modos de documento proporcionados por los sitios de la intranet, los sitios de la lista Vista de compatibilidad y cuando se utilice solo con el Modo de empresa.

Los sitios públicos de Internet se renderizarán con la nueva plataforma de modo Edge (ignorando X-UA-Compatible). Nuestro objetivo es que Edge sea el modo de documento “vivo” de aquí en adelante y no se introducirán más modos de documento en el futuro.

Con los cambios en Microsoft Edge para que ya no sean compatibles con los modos de documento en la mayoría de los casos, Microsoft tiene una herramienta para escanear su sitio para verificar y ver si tiene un código que no sea compatible con Edge.

Chrome = 1 información para IE

También hay chrome=1 que puede usar o usar junto con una de las opciones anteriores como: . chrome=1 es para Chrome Frame de Google, que se define como:

Google Chrome Frame es un complemento de navegador de código abierto. Los usuarios que tienen el complemento instalado tienen acceso a las tecnologías web abiertas de Google Chrome y al rápido motor JavaScript cuando abren páginas en el navegador.

Google Chrome Frame mejora a la perfección su experiencia de navegación en Internet Explorer. Muestra sitios habilitados para Google Chrome Frame que utilizan la tecnología de renderizado de Google Chrome, lo que le brinda acceso a las últimas funciones HTML5, así como a las funciones de rendimiento y seguridad de Google Chrome sin interrumpir de ninguna manera el uso habitual del navegador.

Cuando se instala Google Chrome Frame, la web mejora sin que tengas que pensar en ello.

Pero para que ese complemento funcione, debe usar chrome=1 en el X-UA-Compatible metaetiqueta.

Puede encontrar más información sobre Chrome Frame aquí.

Nota: Google Chrome Frame solo funciona para IE6 a IE9 y se retiró el 25 de febrero de 2014. Puede encontrar más información aquí. Gracias a @mck por el enlace.

Validación:

HTML5:

La página se validará usando el Validador W3 solo cuando se use . Para otros valores arrojará el error: A meta element with an http-equiv attribute whose value is X-UA-Compatible must have a content attribute with the value IE=edge. En otras palabras, si tienes IE=edge,chrome=1 no se validará. Ignoro este error por completo, ya que los navegadores modernos simplemente ignoran esta línea de código.

Si debe tener un código completamente válido, considere hacerlo en el nivel del servidor configurando el encabezado HTTP. Como nota, Microsoft dice: If both of these instructions are sent (meta and HTTP), the developer's preference (meta element) takes precedence over the web server setting (HTTP header). Consulte la respuesta de olibre o la respuesta de bitinn para obtener más detalles sobre cómo configurar un encabezado HTTP.

XHTML

No hay ningún problema con la validación al usar siempre que la etiqueta esté correctamente cerrada (es decir, /> vs >).

Bootstrap de Twitter

Esta etiqueta ha sido muy recomendada por el equipo de Bootstrap desde al menos 2014, y Bootlint, el linter creado por el equipo de twbs, continúa lanzando una advertencia cuando se omite la etiqueta. El linter distingue entre advertencias y errores y, como tal, la gravedad de omitir esta etiqueta puede considerarse menor.


Para obtener más información sobre X-UA-Compatible consulte Compatibilidad de documentos que definen el sitio web de Microsoft.

Para obtener más información sobre lo que admite IE, consulte caniuse.com.

Para obtener más información sobre los requisitos de Twitter Bootstrap, consulte la página wiki del proyecto bootlint.

Usarcontent="IE=edge,chrome=1" Omitir otro X-UA-Compatible modos


                                   -------------------------- 
  • Sin icono de compatibilidad
    La barra de direcciones de IE9 no muestra el botón Vista de compatibilidad
    y la página tampoco muestra un revoltijo de menús, imágenes y cuadros de texto fuera de lugar.

  • Características
    Esta metaetiqueta es necesaria para habilitar javascript::JSON.parse() en IE8
    (incluso cuando está presente)

  • Exactitud
    La representación / ejecución de HTML / CSS / JavaScript moderno es más válida (mejor).

  • Rendimiento
    El motor de renderizado Trident debería funcionar más rápido en su borde modo.


Uso

En tu HTML

 
 
  
    
  • IE=edge significa que IE debería usar la última versión (borde) de su motor de renderizado
  • chrome=1 significa que IE debería usar el motor de renderizado de Chrome si está instalado

O mejor en la configuración de su servidor web:

(ver también la respuesta de RiaD)

  • apache según lo propuesto por pixeline

    
      
        BrowserMatch MSIE ie
        Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
      
    
    
      Header append Vary User-Agent
    
    
  • Nginx según lo propuesto por Stef Pause

    server 
      #...
      add_header X-UA-Compatible "IE=Edge,chrome=1";
    
    
  • Barniz proxy propuesto por Lucas Riutzel

    sub vcl_deliver 
      if( resp.http.Content-Type ~ "text/html" ) 
        set resp.http.X-UA-Compatible = "IE=edge,chrome=1";
      
    
    
  • IIS (desde v7)

    
      
         
            
               
            
         
      
    
    

Microsoft recomienda Modo de borde desde IE11

Como lo notó Lynda (ver comentarios), los cambios de compatibilidad en IE11 recomiendan Modo de borde:

A partir de IE11, el modo de borde es el modo de documento preferido; representa el soporte más alto para los estándares modernos disponibles para el navegador.

Pero la posición de Microsoft no estaba clara. Otra página de MSDN no recomendó Modo de borde:

Debido a que el modo Edge obliga a que todas las páginas se abran en modo estándar, independientemente de la versión de Internet Explorer, es posible que tenga la tentación de usarlo para todas las páginas vistas con Internet Explorer. No hagas esto, ya que X-UA-Compatible El encabezado solo se admite a partir de Windows Internet Explorer 8.

En su lugar, Microsoft recomendó usar :

Si desea que todas las versiones compatibles de Internet Explorer abran sus páginas en modo estándar, utilice la declaración de tipo de documento HTML5 […]

Como explica Ricardo (en los comentarios a continuación), cualquier DOCTYPE (HTML4, XHTML1 …) se puede utilizar para activar el modo estándar, no solo el DOCTYPE de HTML5. Lo importante es tener siempre un DOCTYPE en la página.

Clara Onager incluso ha notado en una versión anterior de Especificar modos de documento heredados:

El modo Edge está diseñado solo para fines de prueba; no lo utilice en un entorno de producción.

Es tan confuso que Usman Y pensó que Clara Onager estaba hablando de:

los […] el ejemplo se proporciona solo con fines ilustrativos; no lo use en un entorno de producción.


Bueno … En el resto de esta respuesta, doy más explicaciones por qué usar content="IE=edge,chrome=1" es una buena práctica en producción.


Historia

Durante muchos años (2000 a 2008), la cuota de mercado de IE fue de más del 80%. Y IE v6 fue considerado como un de facto estándar (80% a 97% de cuota de mercado en 2003, 2004, 2005 y 2006 solo para IE6, más cuota de mercado con todas las versiones de IE).

Como IE6 no respetaba los estándares web, los desarrolladores tenía para probar su sitio web usando IE6. Esa situación fue excelente para Microsoft (MS), ya que los desarrolladores web tuvieron que comprar Los productos de MS (por ejemplo, IE no se pueden usar sin comprar Windows), y era más lucrativo permanecer en incumplimiento (es decir, Microsoft quería convertirse en los estándar excluyendo otras empresas).

Por lo tanto, muchos sitios web solo eran compatibles con IE6 y, como IE no cumplía con el estándar web, todos estos sitios web no estaban bien representados en navegadores compatibles con los estándares. Peor aún, muchos sitios solo requerían IE.

Sin embargo, en este momento, Mozilla comenzó el desarrollo de Firefox respetando en la medida de lo posible todos los estándares web (se implementaron otros navegadores para representar las páginas como lo hizo IE6). A medida que más y más desarrolladores web querían utilizar las nuevas funciones de estándares web, más y más sitios web eran más compatibles con Firefox que con IE.

Cuando la participación en el mercado de IE estaba disminuyendo, MS se dio cuenta de que mantener la incompatibilidad estándar no era una buena idea. Por lo tanto, MS comenzó a lanzar una nueva versión de IE (IE8 / IE9 / IE10) respetando cada vez más los estándares web.


El problema de la incompatibilidad con la web

Pero el problema son todos los sitios web diseñados para IE6: Microsoft no pudo lanzar nuevas versiones de IE incompatibles con estos antiguos sitios web diseñados por IE6. En lugar de deducir la versión de IE que se diseñó un sitio web, MS solicitó a los desarrolladores que agreguen datos adicionales (X-UA-Compatible) en sus páginas.

IE6 todavía se usa en 2016

Hoy en día, todavía se utiliza IE6 (0,7% en 2016) (4,5% en enero de 2014), y algunos sitios web de Internet todavía cumplen únicamente con IE6. Algunos sitios web / aplicaciones de intranet se prueban con IE6. Algunos sitios web de intranet son 100% funcionales solo en IE6. Estas empresas / departamentos prefieren posponer el costo de la migración: otras prioridades, nadie ya sabe cómo se ha implementado el sitio web / aplicación, el propietario del sitio web / aplicación heredado quebró …

China representa el 50% del uso de IE6 en 2013, pero puede cambiar en los próximos años a medida que se transmita la distribución china de Linux.

Confíe en sus habilidades web

Si (intenta) respetar el estándar web, simplemente puede usar siempre http-equiv="X-UA-Compatible" content="IE=edge,chrome=1". Para mantener la compatibilidad con los navegadores antiguos, simplemente evite usar las funciones web más recientes: use el subconjunto compatible con el navegador más antiguo que desea admitir. O si desea ir más allá, puede adoptar conceptos como Degradación elegante, Mejora progresiva y JavaScript discreto. (También puede que le guste leer ¿Qué debe considerar un desarrollador web?).

No se preocupe por la mejor representación de la versión de IE: este no es su trabajo, ya que los navegadores deben cumplir con los estándares web. Si su sitio cumple con los estándares y usa las funciones más recientes, por lo tanto los navegadores deben ser compatibles con su sitio web.

Además, como hay muchas campañas para matar IE6 (IE6 no más, campaña de MS), ¡hoy en día puede evitar perder el tiempo con las pruebas de IE!

Experiencia personal de IE6

En 2009-2012, trabajé para una empresa que usaba IE6 como solo navegador oficial permitido. Tuve que implementar un sitio web de intranet solo para IE6. Decidí respetar el estándar web pero usando el subconjunto compatible con IE6 (HTML / CSS / JS).

Fue difícil, pero cuando la compañía cambió a IE8, el sitio web todavía estaba bien renderizado porque había usado Firefox y firebug para verificar la compatibilidad con el estándar web;)

La diferencia es que si solo especifica el DOCTYPE, IE Configuración de la vista de compatibilidad prevalecerán. De forma predeterminada, esta configuración fuerza a todos los sitios de la intranet a la Vista de compatibilidad independientemente de DOCTYPE. También hay una casilla de verificación para usar la Vista de compatibilidad para todos los sitios web, independientemente de DOCTYPE.

Cuadro de diálogo Configuración de vista de compatibilidad de IE

X-UA-Compatible anula la configuración de vista de compatibilidad, por lo que la página se representará en modo estándar independientemente de la configuración del navegador. Esto fuerza el modo estándar para:

  • páginas de intranet
  • páginas web externas cuando el administrador de la computadora ha elegido “Mostrar todos los sitios web en la Vista de compatibilidad” como opción predeterminada: piense en grandes empresas, gobiernos, universidades
  • cuando involuntariamente termina en la lista de vista de compatibilidad de Microsoft
  • casos en los que los usuarios han agregado manualmente su sitio web a la lista en Configuración de vista de compatibilidad

DOCTYPE solo no puede hacer eso; terminará en uno de los modos de Vista de compatibilidad en estos casos, independientemente de DOCTYPE.

Si tanto el meta se especifican la etiqueta y el encabezado HTTP, meta la etiqueta tiene prioridad.

Esta respuesta se basa en examinar las reglas completas para decidir el modo de documento en IE8, IE9 e IE10. Tenga en cuenta que mirando el DOCTYPE es la última alternativa para decidir el modo de documento.

Valoraciones y reseñas

Acuérdate de que te damos el privilegio añadir un criterio .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *