Viewable in any browser

My mad quest towards ultimate backwards compatibility

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

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.

Selected screenshots of the front page

Screenshot

Links 2.29, GNU/Linux.

Screenshot

Internet Explorer 4, Windows 95.

Screenshot

Netscape Navigator 4.04, Windows XP.

Screenshot

NCSA X Mosaic 2.7b6, GNU/Linux.

Screenshot

Netscape Navigator 3.01 Gold, Windows 95

Screenshot

Kindle Browser 3.0 (Paperwhite)

Screenshot

Nintendo 3DS Browser

Screenshot

Arachne 1.99, FreeDOS 1.3

Comments? Tell me what you think in the guestbook.

Compatible with Internet Explorer 4 Compatible with Netscape Navigator 4 Get Flash Player Best in 800x600