Viewable in any browser
My mad quest towards ultimate backwards compatibilityHow could I have an old-school site and not support browsers from the 90's? The first step of my journey was when I noticed my site looked almost correct in Internet Explorer 4. From then on, backwards compatibility with the oldest of browsers and systems became my obsession and I believe I did become a bit crazy from all I learned about HTML, the history of the web, separation of style from semantics, proprietary extensions to HTML, and evil hacks.
How far can I take it? With much effort and wasted time, I now have an answer. I made it so you can access cidoku.net with technology from 1996, and that probably isn't even the final frontier. For now, though, I'm pleased, but there's always more work to do to make cidoku.net one of the most compatible sites ever.
Results
The following table shows all the browsers I've tested the site on and rate them based on a few factors:
- UTF-8: The browser can render UTF-8 (Unicode) documents. While not strictly needed for pages written in English, Unicode is essential for the Spanish version of the site.
- Styles: The browser understands at least some of my
style sheets. Even without CSS, all browsers in the list will show my site's
colors because of the legacy
background
,link
,vlink
, andtext
attributes that<body>
supports. Try it! Disable CSS now! - PNG: The browser can render PNG images.
- Flash: The browser supports at least Flash 7 (for my animations).
- Music: Whether I found a way to play embedded MP3 / OGG files on the thing.
Browser | UTF-8 | Styles | PNG | Flash | Music |
---|---|---|---|---|---|
NCSA X Mosaic | |||||
2.7b6 | No | No | No | No | No |
Netscape Navigator | |||||
1.1 | Site won't load | ||||
2.02 | No | No | No | No | No |
3.03 | Kinda | ||||
4.03 | Yes | Yes | Yes | Yes | |
4.04+ | Yes | ||||
Internet Explorer | |||||
1.5 - 2.01 | Site won't load | ||||
3.0 | No | No | No | No | No |
3.01 - 3.03 | Kinda | ||||
4.01 - 8.0 | Yes | Yes | Yes | Yes | Yes |
9.0 - 11.0 | Yes | Yes | |||
Opera | |||||
3.0 | No | No | No | No | No |
3.50 | Yes | No | Yes | ||
3.51 | Yes | Yes | |||
Firefox | |||||
1.0.8 | Yes | Yes | Yes | Yes | Yes |
3.6.28 | Yes | ||||
85.0+ | Yes | ||||
Kindle browser | |||||
PW (3.0) | Yes | Yes | Yes | No | No |
Video game consoles | |||||
3DS Browser | Yes | Yes | Yes | No | No |
Independent browsers | |||||
Pale Moon 33 | Yes | Yes | Yes | Yes | Yes |
Retrozilla 2.2 | Yes | ||||
Netsurf 3.11 | No | No | |||
Ladybird | Maybe | ||||
Dillo 3.0.5 | No | ||||
xLinks 2.29 | No | ||||
Arachne 1.99 | CSS 1 |
Notes
I didn't include text-only browsers in the table, but support for Links and w3m is excellent. They render the site without issues except for some very multimedia-heavy pages in the stuff and flash sections, but that's to be expected. Lynx has no table support, so it's hit or miss there.
I think that my site won't load in IE 1-2 and Netscape 1 and earlier because they don't understand HTTP/1.1. How could they?
Because it's highly unlikely that users of very old browsers are spoofing
their user agents, I serve GIFs instead of PNGs to browsers with user
agents starting in Mozilla/2
and Mozilla/3
(so
IE3 and Netscape 2-3, basically), so there should be very few broken images
for them outside the guestbook. I haven't been able to
make this hack work on NCSA X Mosaic, but supporting very old Mosaic, Opera
and browsers on Windows 3.1 might be a bit too out of scope, although the
latter is doable.
The first version of Netscape 4 to support PNG on 32bit Windows is 4.04,
but I'm not serving GIFs to 4.03 and earlier version 4 Netscapes, as I have
no easy way to detect them (I think I can live with that because there's
no real reason not to use 4.04 and above).
Unicode can be enabled in Netscape 3 for Windows by adding the registry
entry
HKEY_CURRENT_USER/Software/Netscape/Netscape Navigator/INTL/
UseUnicodeFont
(string) and setting it to "1". It works but
it's kinda buggy, so it's not ideal.
I could go the extra mile and not use Unicode at all by switching to ISO-8859-1 encoding site-wide, but I think it would be way too much effort. I can make peace with the fact that to read my pages perfectly you'll need a browser that supports UTF-8. A system with the appropriate fonts is also desirable, but a placeholder is better than encoding gibberish.
Flash 7 is the last to support Windows 95 and 98 First Edition, so you can watch my flashes there (hence support for IE4). I do think it's a bit anachronistic, but it can be done. Open question: is the average Windows 95 computer powerful enough to play Flash 7 movies? Flash 8 definitely only works on Windows 98 SE and up (so IE5 and up). The ActiveX control (IE) refuses to install on earlier Windows systems, while the Netscape plugin won't load.
Modern browsers without plugin support can still load my flashes using Ruffle (a custom self-hosted version).
CSS support in IE 3.01-3.02-3.03 is very odd and it can't be disabled.
The site looks mostly fine in them, but <hr>
s are too
thick. I could fix it, but not without breaking <hr>
s
everywhere else!
I made
my very
own Flash MP3 player for use in vintage browsers.
Backwards compatible audio embeds work with an <audio>
element that contains multiple <source>
s
for mp3 and ogg files for HTML5 browsers and a fallback
<embed>
that will be displayed by non-HTML5 browsers.
This is all done automatically server-side
using magic.