Hace un tiempo comenté en un mini-post que IE8 pasaría el test ACID2. Eso es lo que reportaba la gente del equipo de desarrollo de IE8 y mostraban imágenes al respecto y todo.
En aquél entonces también comentaba que habían prometido compatibilidad para atrás; esto es, las páginas existentes se seguirían viendo bien. Lo cual, dado el historial de hacks para IE más el hecho de que ya no serían necesarios para esta nueva versión, realmente me preguntaba cómo harían para hacer eso.
La respuesta no se hizo esperar (vía Slashdot): un metatag. Básicamente, si queremos que IE8 renderice nuestra página como debería de hacerlo vamos a tener que pedirle por favor. Si dicho metatag no está presente en la página, ésta se mostrará como si la estuviésemos viendo en IE7.
Esto quiere decir que todos aquellos que hicieron las cosas mal en un principio sin respetar estándares y desarrollando sólo para IE pueden seguir tranquilos en sus casas. Mientras tanto, todos los que desarrollamos páginas siguiendo estándares y después nos rompimos la cabeza tratando de hacer que se vean igual en IE también vamos a tener que trabajar de nuevo para agregarle este dichoso metatag… si es que no tienen ningún bug de renderizado nuevo que rompa algo más.
Como si fuese poco, este comportamiento implicaría que IE8 no pasaría el test ACID2. El test ACID2 es una página en HTML 4.01 con lo mínimo e indispensable, evidentemente no tiene ese dichoso metatag que es necesario para activar este nuevo modo de IE8. Por lo tanto, cuando uno abra el test en IE8, se verá renderizado como si fuese IE7 que no pasa el test. Si no fuese así entonces no están haciendo lo que dicen estar haciendo, lo que se traduce en más problemas para los que hacemos las cosas bien de todas formas.
¿Se podría hacer bien?
Respuesta corta: sí, al menos una sencilla y - creo - justa.
Respuesta larga: todos sabemos que la mejor forma de modificar cómo se muestra nuestra página sin molestar a los otros navegadores es utilizar inclusión condicional. Sin embargo, si IE8 respeta estándares, dicha inclusión ya no sería necesaria y debería de ser ignorada por el navegador.
Lo que yo propongo es que IE8 renderice en modo estándar siempre a menos que encuentre una de esas inclusiones para IE7 o superior. En dicho caso, la incluya y cambie el modo de renderizado a aquél (supuestamente) idéntico a IE7.
Esto lograría lo siguiente:
- Aquellos que nos molestamos en desarrollar siguiendo estándares podemos seguir tranquilos
- Aquellos que desarrollaron con estándares pero utilizaron formas obstrusivas y poco claras para “arreglar” el estilo en IE sólo tienen que modificar su código ligeramente
- Aquellos que desarrollaron sólo para IE pueden modificar su código para que IE8 muestre su página correctamente también fácilmente
Los últimos dos puntos parecen redundates pero no lo son. El último grupo de gente incluye aquellos que directamente no desarrollaron según los estándares. Estoy suponiendo que si no les importaron los estándares en aquél momento, no le importarán ahora tampoco.
Sin embargo, el que tengan que trabajar para hacer las cosas bien haría que, al menos, se den cuenta que podrían haber hecho las cosas bien desde el principio. Y por esto creo que esta solución es justa:
- Los que hicieron las cosas bien no tienen que hacer absolutamente nada
- Los que las hicieron más o menos o mal tienen muy poco trabajo que hacer
- Los que hicieron las cosas mal les queda el dolor del tirón de orejas haciéndoles acordar que de haber hecho las cosas bien desde el principio no hubiesen tenido drama pero disponen de una solución sencilla que haría que se vea bien en IE7 e IE8 hasta que hagan las cosas bien (cosa que no creo que hagan de todas formas)
¿O estoy diciendo cualquier cosa? Me gustaría escuchar otras ideas, que seguro que alguien tiene una idea mejor