IE6/Windows, errores por conmutación y definición de DOCTYPE
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[...]
- 14
- jun
- 2007
Publicado por J.A.Cobo.
Guardado en Desarrollo web.
hace 2 años y 9 meses
3 comentarios
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 ^^.
<?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:
<?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:
<?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
Acerca del autor
J.A.Cobo, «Geek» apasionado por la tecnología, la historia y la aviación con especial interés en el Desarrollo Web basado en estándares, la aplicación semántica de la web y la accesibilidad en la misma. Hubo un tiempo en el que también escribía relatos, principal inspiración para iniciar un «blog».
3 comentarios para « IE6/Windows, errores por conmutación y definición de DOCTYPE»
Reacciones (track/pingbacks)
-
[...] 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: [...]
Dejar un comentario.no seas tímido
Acerca de esta entrada
Estás leyendo «IE6/Windows, errores por conmutación y definición de DOCTYPE»,
una entrada publicada el jueves 14 de junio de 2007.

Buen articulo, me vino bien para arreglar una web y que fuese accesible desde varios navegadores.
Mi apaño fue ver si el usuario usaba IE, y en ese caso no mostraba la declaracion XML
$useragent = $_SERVER['HTTP_USER_AGENT'];if (preg_match('|MSIE ([0-9].[0-9]{1,2})|',$useragent,$matched)) {
$browser = 'IE';
} else {
$browser= 'OTRO';
}
if ($browser!="IE") {
echo "";
}
Hasta la fecha, no me suele fallar algo más corto como:
^^!
Y quizá mejor aún el uso de get_browser() que incluso contiene patrones de búsqueda y coincidencia con el navegador, aunque se necesita un fichero de navegador fiable.
También es interesante, usando php claro, forzar al servidor a servir el documento como XML:
Un saludo y me alegro te haya servido