Before I go into the main content of this post, I just want to say that Bruce Lawson has done a fantastic job of promoting HTML5 education both online and in print. I haven’t had a chance to get a copy of his and Remy Sharp’s book Introducing HTML5 but it is on my definite to-read list.
But sometimes it seems that HTML5 evangelists can get a little bit carried away in their zeal for promoting these new technologies and features, and they inadvertently end up misusing terms.
In my opinion, Bruce does this in Issue #204 of .net magazine, in the recently-revamped “gallery” section that now includes HTML5 websites.
While writing about Yell.com, Bruce says the following:
I understand what Bruce is saying here. What the Yell.com developers have done is best practice; I agree with it wholeheartedly, and I encourage all developers to do this in their projects to provide a similar experience for non-supporting browsers. But I’m afraid that’s using the term “graceful degradation” very loosely. That’s not graceful degradation; that’s code forking. There is no “degrading” here, instead we have something more like an
“Graceful degradation” is defined on Wikipedia in part as:
[T]he property that enables a system (often computer-based) to continue operating properly in the event of the failure of (or one or more faults within) some of its components.
And Peter-Paul Koch explains it in straightforward terms in this old post:
Graceful degradation means that your Web site continues to operate even when viewed with less-than-optimal software in which advanced effects don’t work (no CSS in Netscape 3, no images in speech browsers). Add whatever special effects you like, just make sure the site is usable without them.
Koch goes on to explain that graceful degradation should have two basic rules:
- Any browser must be able to view the content of the site
- Any browser must be able to navigate the site
In Some Cases, HTML5 Falls Back Gracefully
Again, I’m not saying we shouldn’t do this. We absolutely should do it, but we can’t honestly call this graceful degradation, otherwise we’re just fooling ourselves.
I’m Just Saying…
I love what guys like Bruce are doing, and I will continue to promote his work wherever possible, but I just thought I would state my beef on this issue. We should not fool ourselves into thinking that providing these kinds of fall-back options are optimal in any way.
They are only optimal because of the transition period we find ourselves in — a period requiring that we support browsers with tons of HTML5 support as well as browsers with very little HTML5 support. Kind of like the difference between IE and Netscape back in the day — which is why code-forking was even necessary.