Me entero leyendo JavasScript & CSS Development with jQuery, que si usamos el doctype XHTML 1 Transitional XHTML 1.1 deberiamos declarar bien el tipo de archivo que se va a servir , en este caso application/xhtml+xml según recomienda la W3C.
Si hacemos esto tenemos varios problemas:
- Debemos ser muy disciplinados creando el marcado y mas aún si el site es dinámico, a la hora de interpretarse el documento como xml, un simple elemento mal cerrado hará que nuestro site no se pueda ver o que se vea el tipico error de XML mal formado.
- No todos los dispositivos interpretan el mime-type application/xhtml+xml, con lo que el dispositivo no entenderá el tipo de archivo que se le esta mandando y no lo interpretará
Por curiosidad me meto en la W3C y la verdad me resulto algo confuso, en algunos casos te dicen que DEBES poner un mime type y en otros casos que PUEDES. Con lo que decido seguir buscando y me encuentro con esta tabla de compatibilidades doctype/mime-type.
Soluciones que veo:
- Servir todo como text/html , que según la W3C no es lo mas recomendable pero funciona.
- Detectar cuando se va a servir la pagina si el el dispositivo desde el que se solicita soporta archivos del tipo application/xhtml+xml y sino es asi cambiar el doctype por XHTML 1.0 Strict y el mime-type por text/html. Cuidado con esto porque puede causar problemas. Aqui puedes ver las diferencias entre XHTML 1.0 Strict y Transitional.
Gracias a @richmanblues por la correción.
One Comment
Hola!
Sé que llego tarde, pero acabo de descubrir tu blog xD
Me ha molado el post. Un detallito te falta nada más: El problema no está en la diferencia strict/transitional sino que está en XHTML 1.1; XHTML 1.0 puede ser servido como text/html, pero XHTML1.1 no, only xml.
Y nada más