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

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.

Avatar en TwitterJuan Antonio Cobo
JuanAntonioCobo

  • http://blog.culturadigital.org/acerca-de - 19
  • Maldición madridista, en basket también?? (vía Do).
    - hace 2 horas y 11 minutos
  • @jakinho Pues no sé explicarlo técnicamente pero creo que es obvio mientras el balón no empiece a desacelerar. (vía web).
    - hace 2 horas y 13 minutos
  • Malouda se merecía el gol, gran gol. (vía Do).
    - hace 2 horas y 34 minutos
  • @pedrerol @JuanAntonioCobo Hay que hablar en el vestuario y trabajar más para dar ejemplo. En eso sí que estoy de acuerdo. (vía web).
    - hace 3 horas y 25 minutos
  • Malouda una máquina de asistencias y colgar balones perfectos. (vía Do).
    - hace 3 horas y 30 minutos
  • Bufffff, golazo increíble de Parker (West Ham), como mola la Premier. (vía Do).
    - hace 3 horas y 39 minutos
  • Que empalagoso Petón: «decir Guardiola y buen gusto es redundante», ojjj, que dulzón por Dios. Por cierto: como juega el Chelsea macho. (vía Do).
    - hace 3 horas y 48 minutos
  • Me encanta cuando cambias de canal y justo pillas un gol: Chelsea 1 West Ham 0 (vía Do).
    - hace 3 horas y 50 minutos
  • Viendo la mejor película española en años: Airbag :D (vía Do).
    - hace 4 horas
  • @glinfolaguardia A ver si kedams para actualizar la sección, hay muxo en glinfo.es Ah, y nolvides q la foto del castillo va como CC-BY-SA ;) (vía web).
    - hace 1 día y 1 hora
  • @pedrerol El «majo» de Guti será como sea pero dijo la pura verdad y realidad del Madrid. Y no olvides que su pase dio pie a la indv. de CR9 (vía web).
    - hace 1 día y 1 hora
  • Confirmado, no recomendaré jamás Telefónica ADSL; más vale malo conocido: ya.com (vía Do).
    - hace 2 días y 6 horas
  • Qué verguenza Telefónica, hacen contratos de 6megas en centrales al 110% de abonados, jopu*** (vía Do).
    - hace 2 días y 6 horas
  • @sirolopez Pellegrini llegará a loq sea, pero da la impresión de no tener alma para el Madrid. Yo dije que Lass&Guti se anulan, dsd Liv'pool (vía web).
    - hace 2 días y 16 horas
  • Guti&Lass nunca,parc mentira@sirolopez "Con Lass Y Diarra le metimos seis al zaragoza".Pellegirni dixit.¡Vale!..por si acaso oy no lo pruebs (vía web).
    - hace 2 días y 21 horas
  • Pero donde vas con Lass y Guti juntos, y con Kaká y dejarte a Van der var, donde vas??! (vía Do).
    - hace 2 días y 21 horas
  • @Buenafuente ¿Un chiste en contra del Barça???, ole ;) (vía web).
    - hace 3 días y 18 horas
  • @sirolopez Vuelve por favor, y trae la cordura a @PuntoPelota jeje (vía web).
    - hace 3 días y 18 horas
  • @PuntoPelota Pero como puede decir Roncero que quiere a Lass y Guti!, es que no se acuerda del Liverpool?? solo falta que pida a Gago! dios (vía web).
    - hace 3 días y 18 horas

Sígueme en Twitter Sígueme