IE6/Windows, errores por conmutación y definición de DOCTYPE 14 Junio, 2007
Esta entrada ha sido publicada por Covi y está archivada en Desarrollo Web
Vale… llevo cometiendo el mismo error con IE desde que decidí diseñar en base a los Estándares Web, más que la Conmutación de DOCTYPE es la DEFINICIÓN del DOCTYPE o su encabezado.
Definición tipo de documento XHTML Transicional
1 2 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
Y es que el W3C a veces confunde, más que “se equivoca”.
Lo leí en “Diseño con Estándares Web” del ya mencionado en este blog Jeffrey Zeldman.
El Origen:
El W3C recomienda que el encabezado de la conmutación de DOCTYPE en modo estándares para XHTML incluya la versión XML, ya que (X)HTML es XML ^^.
1 | <?xml version="1.0" encoding="UTF-8"?> |
Esto ya provocaba un problema con los archivos PHP y había que incrustar el código de forma algo partícular para “escapar” los tags propios del inicio y cierre de PHP.
Eso se podía solucionar:
1 | <?php echo '<?xml version="1.0" encoding="UTF-8"?>';?> |
pero el problema, además inadvertido muchas veces, es -una vez más- el comportamiento de IE:
EL Error:
El encabezado de declaración de la versión XML y la codificación de caracteres a usar provoca que IE6/Windows NO CONMUTE el modo estándares, por ejemplo: XHTML Transitional 1.0, sino SU PARTICULAR modo de compatibilidad inversa -quircks-, es decir: MODO: “Interpreta el documento como más te guste” y compatible con navegadores antiguos (Ej. I.E. 5) y marcado obsoleto.
Esta es la razón por la que a pesar de leer una y otra vez que IE6 acepta el “modelo de cuadro” del W3C si se conmuta el “modo estándares” en mis documentos nunca lo hace. Esto es debido a que el modo de compatibilidad inversa interpreta el documento, en su mayor parte, más bien como lo podría hacer IE5.0/5, o lo que es lo mismo:
Con el modelo de cuadro personal e incorrecto de IE.
Solución:
No incluir la declaración de la versión de documento XML:
1 | <?xml version="1.0" encoding="utf-8"?> |
a no ser que sirvas tus documentos en XML puro.
Y es que no es bueno leer libros por partes ![]()




[...] había muchas cosas que no sabía, no recordaba o pasé por alto: La conmutación de DOCTYPE por parte de IE6 en relación a la especificación XML de un documento XHTML… esto es: [...]
15 Septiembre 2007 @ 19:53