Updated: I dug up the old iBook and see how Safari 1.3 handled things
Apple’s new Web Gallery feature of .Mac is a heavy duty “AJAX with a bit of flash for video” web application, based around a Javascript MVC framework called Sprout Core.
Being a old school middle tier wonk, it’s my job to start poking around the source to see what’s going on.
This is what I saw using the latest non-beta of Safari.
What the crap? Where’s the “runs best at 1024 x 768” notice?
I fired up some other modern browsers to see what kind of results I’d get.
- IE 6 Windows
- A warning, with a bypass link
- Still the most “popular” browser in the world
- Camino 1.03
- A warning, with a bypass link
- Camino 1.5
- A warning, with a bypass link
- I’m reasonably confidant that the Javascript and HTML/CSS engines are on par with Firefox 1.5
- SeaMonkey 1.14
- A warning, with a bypass link
- The original Mozilla browser/application suite. I’m reasonably certain that the Javascript and HTML/CSS engines are on par with Firefox 1.5
- Safari 1.3
- A warning, no bypass link
- This shuts out anyone still running 10.3
- IE 5 Mac
- A warning, no bypass link
- Older, but the only reasonable option for people still running OS 9)
- Lynx
- Kidding … sort of
Digging into the source of one of the bypass page, we can see Apple is doing some browser sniffing.
var useragent = navigator.userAgent.toLowerCase();
this.useragent = useragent;
this.isIE = ( (useragent.indexOf("msie") != -1)
this.isOpera = (useragent.indexOf("opera") != -1);
this.isFirefox = (useragent.indexOf('firefox') != -1);
this.isWindows = (useragent.indexOf('win') != -1);
this.versionMinor = parseInt(navigator.appVersion);
this.versionMajor = parseInt(this.versionMinor);
if (this.isIE && this.versionMinor >= 4) {
this.versionMinor = parseFloat(
}
Without commenting on the robustness of the current code, this approach 1 almost always leads to some future failure down the line. This is particularly ironic, since it’s historically been Mac users who’ve had to suffer due to broken version sniffing.
The results are disappointing, but not surprising. I can see an argument for this kind of behavior if you’re building something that’s strictly a software application delivered via the web (ex. 37 Signals). However, as much as the .Mac Web Gallery is a software application, it’s also a website for people to share their photos with friends and family. Friends and family who really don’t care what browser version they’re running and might be annoyed/confused by the warnings, or completely stymied if they’re using a completely unsupported browser.
It’s clear a tremendous amount of hard work by lots smart people went into building this, but it just serves as proof that a group of smart people can make a series of smart individual decisions that, when combined, produce a crap product 2.
Footnotes
-
For those people who’ve been living outside the standards/best practices/progressive enhancement bubble, you check for the existence of whatever javascript features you want to use, not for a specific version of a specific browser made by a specific vender.
-
Which almost all of us, myself included, have been involved with at one point or another.