Errores Javascript

IE6/Windows, errores por conmutación y definición de DOCTYPE

Icono de Desarrollo webVale… 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 3 años y 1 mes 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

Avatar 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»

  1. Antonio dice:

    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 "";
    }

  2. Covi dice:

    Hasta la fecha, no me suele fallar algo más corto como:

    echo !eregi('MSIE', $_SERVER['HTTP_USER_AGENT']) ? 'documento xml' : 'documento html';

    ^^!

    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:

    header('Content-type: application/xml');

    Un saludo y me alegro te haya servido ;)

Reacciones (track/pingbacks)
  1. [...] 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

Campos personales


¿Qué opinas?

Licencia y acuerdo

Logo Creative Commons Los datos introducidos en este formulario se tratarán, en matería de seguridad, de acuerdo a la normativa española sobre protección de datos ( LOPD ) pese a no estar sujetos a ella. Los contenidos pasarán a ser liberados para Cultura Digital.org bajo las licencias Creative Commons BY-SA y GFDL1.3 como una obra derivada de la que el autor mantendrá el copyright.
Asegúrate de entender estos términos antes de enviar tu comentario.

Artículo 2: Ámbito de aplicación.
[...]
Punto 2. El régimen de protección de los datos de carácter personal que se establece en la presente Ley Orgánica no será de aplicación:
a) A los ficheros mantenidos por personas físicas en el ejercicio de actividades exclusivamente personales o domésticas.
[...]

El autor del blog, Juan Antonio Cobo, se reserva el derecho a decidir sobre la publicación de los comentarios de acuerdo a la lógica común, las buenas maneras y la relevancia de los mismos con la entrada.

Twitter

JuanAntonioCobo

  • - 1
  • Error de contenido secundario.