Compatible con todos los navegadores
Mi demente cruzada para lograr completa retrocompatibilidad¿Cómo podía tener una página de la vieja escuela y no hacerlo compatible con verdaderos navegadores de los 90? Di el primer paso de mi noble misión cuando me fijé que el sitio se veía decente en Internet Explorer 4. Desde ese punto que no hubo vuelta atrás: la retrocompatibilidad total con la mayoría de los navegadores antiguos se volvió mi meta y mi obsesión, y creo que sí me volví un poco loco en el intento debido a todo lo que tuve que aprender de HTML y CSS, la historia de la red, separación de estilo y semántica (o no), extensiones propietarias a HTML, Flash y hacks malvados.
¿Cuán lejos podría llegar adaptando mi sitio para lograr mi cometido? Tras mucho tiempo y esfuerzo gastados finalmente tengo mi respuesta: Puedes acceder a cidoku.net usando tecnología de 1996 (e incluso un poco antes), y ese ni siquiera es el límite final, probablemente. Por ahora, eso sí, estoy satisfecho, aunque siempre hay más trabajo que hacer para expandir el número de lugares donde cidoku.net puede verse.
Resultados
La tabla a continuación muestra un resumen de todos los navegadores (gráficos) en los que pude probar el sitio. Los clasifico en las siguientes categorías:
- UTF-8: El navegador puede decodificar documentos UTF-8 (Unicode). Esto no es estrictamente necesario para la mitad del sitio escrita en inglés pero es esencial para las páginas en español.
- Estilos: El navegador utiliza correctamente al menos
algunas de mis hojas de estilo (CSS). Todos los navegadores en la
lista muestran los colores de cidoku.net, incluso sin CSS, por los atributos
background
,link
,vlink
, ytext
que acepta el elemento<body>
. ¡Inténtalo! ¡Desactiva los estilos! - PNG: El navegador puede mostrar imágenes en formato PNG.
- Flash: El navegador es compatible con Flash 7 como mínimo (para mis animaciones).
- Música: Si encontré alguna forma de reproducir archivos en formato MP3 u OGG directamente en el navegador. ¡Multimedia!
Navegador | UTF-8 | Estilos | PNG | Flash | Música |
---|---|---|---|---|---|
NCSA X Mosaic | |||||
2.7b6 | No | No | No | No | No |
Netscape Navigator | |||||
1.1 | El sitio no carga | ||||
2.02 | No | No | No | No | No |
3.03 | Casi | ||||
4.03 | Sí | Sí | Sí | Sí | |
4.04+ | Sí | ||||
Internet Explorer | |||||
1.5 - 2.01 | El sitio no carga | ||||
3.0 | No | No | No | No | No |
3.01 - 3.03 | Casi | ||||
4.01 - 8.0 | Sí | Sí | Sí | Sí | Sí |
9.0 - 11.0 | Sí | Sí | |||
Opera | |||||
3.0 | No | No | No | No | No |
3.50 | Sí | No | Sí | ||
3.51 | Sí | Sí | |||
Firefox | |||||
1.0.8 | Sí | Sí | Sí | Sí | Sí |
3.6.28 | Sí | ||||
85.0+ | Sí | ||||
Kindle | |||||
PW (3.0) | Sí | Sí | Sí | No | No |
Consolas de juegos | |||||
Nintendo 3DS | Sí | Sí | Sí | No | No |
Navegadores independientes | |||||
Pale Moon 33 | Sí | Sí | Sí | Sí | Sí |
Retrozilla 2.2 | Sí | ||||
Netsurf 3.11 | No | No | |||
Ladybird | Quizá | ||||
Dillo 3.0.5 | No | ||||
xLinks 2.29 | No | ||||
Arachne 1.99 | CSS 1 |
Notas
No incluí navegadores en modo texto en la tabla, pero el soporte para Links y w3m es excelente. Muestran el sitio sin problemas excepto por páginas multimedia en las secciones de cosas y flash, pero eso era esperable. El navegador Lynx no admite tablas (igual que NCSA X Mosaic), así que algunas partes se ven bastante diferentes; no obstante, unos trucos muy simples bastan para que no se rompan las páginas con tablas.
Creo que mi sitio no carga en IE 1-2 y Netscape 1 (y anteriores) porque no entienden el protocolo HTTP/1.1. ¿Cómo podían hacerme esto?
Debido a que es altamente improbable que los usuarios de navegadores muy
antiguos estén cambiando sus cadenas de agente de usuario
(user agent), les paso GIFs en vez de PNGs a navegadores
cuyas cadenas de agente de usuario empiezan en Mozilla/2
and
Mozilla/3
(así que IE 3 y Netscape 2-3, básicamente), por lo
que no deberían haber muchas imágenes rotas en ellos fuera del
libro de visitas. No pude hacer funcionar este truco
con NCSA Mosaic 2.7b6, pero hacer el sitio compatible con navegadores
tan antiguos como versiones antiguas de Mosaic, Opera y navegadores
en Windows 3.1 quizá está fuera del ámbito del proyecto.
La primera versión de Netscape 4 compatible con imágenes en formato PNG
en Windows de 32 bits es 4.04, pero no estoy pasándole GIFs a 4.03 y
anteriores de la serie 4 porque no tengo una forma fácil de detectarlos
(creo que puedo vivir con eso porque no hay razón para no instalar
4.04 o superior).
Se puede activar Unicode en Netscape 3 para Windows agregando una entrada
al registro. Agrega
HKEY_CURRENT_USER/Software/Netscape/Netscape Navigator/INTL/
UseUnicodeFont
(cadena) y dale el valor "1". Funciona pero
tiene algunos fallos, así que no es ideal.
Podría ir más allá y no usar Unicode cambiando la codificación de la mayoría de mis páginas a ISO-8859-1 (el cual es suficiente para español e inglés), pero creo que eso sí sería demasiado trabajo. Creo que puedo estar tranquilo con el hecho de que para leer mis páginas de la mejor manera vas a necesitar un navegador que entienda UTF-8. Un sistema con las fuentes apropiadas también es deseable, pero un marcador es mejor que basura de codificación.
Flash 7 es el último que corre en Windows 95 y 98 (primera edición), así que puedes ver mis películas flash en esos sistemas. Si bien creo que es un poco anacronístico, si se puede hacer, se puede hacer. Pregunta abierta: ¿es el computador promedio con Windows 95 lo suficientemente poderoso para ver películas de Flash 7?. Flash 8 definitivamente solo corre en Windows 98 SE y superior. El control ActiveX (IE) no se instala en versiones previas de Windows y el complemento/conector de Netscape no carga.
A los navegadores modernos que no son compatibles con Flash se les ofrece emular mis flashes con Ruffle (en particular una versión personalizada alojada en mi servidor).
Las hojas de estilo en IE 3.01 a 3.03 se muestran algo extrañas y no
pueden ser desactivadas. El sitio se ve en gran parte bien en estos
navegadores pero <hr>
s (líneas horizontales) se ven muy
anchas. Podría arreglarlas, pero seguramente no sin romper
<hr>
s en todos los otros navegadores.
Hice
mi
propio reproductor de MP3 en Flash para navegadores antiguos.
El audio incrustado retrocompatible funciona usando un elemento
<audio>
que contiene múltiples fuentes
<source>
para archivos mp3 y ogg que se reproducen
en navegadores HTML5 (dependiendo de los códecs) y un
<embed>
de respaldo que se muestra en navegadores
no-HTML5. Todo esto se hace automáticamente por el lado del servidor
usando magia.