- September 12, 2013
Progressive Enhancement: It’s About the Content
In case you’ve missed it, there has recently been a lot of discussion in the web community around whether Progressive Enhancement, a cornerstone concept in web development, is still relevant. The discussion has been largely sparked by Sigh, JavaScript, a tumblr by Happy Cog alum (now of Super Friendly) Daniel Mall that showcases high-profile websites completely breaking when JavaScript is disabled. Screenshots of websites from brands like CNN, McDonalds, and Instagram are completely blank. Their content isn’t just unusable, it’s completely absent.
My initial reaction was, “Surely, you can’t be serious.” Progressive Enhancement has been a gold standard in web design for so long that it’s startling to think about throwing it out.
First things first, what is progressive enhancement?
Progressive Enhancement means that each layer (content, followed by markup, styles, and then behavior) builds upon the next, ensuring that the core content is accessible along the way for less capable browsers and devices. It’s not about specifics like whether your website works with JavaScript, CSS3 Animations, or icon fonts. It’s not even about technology. At its core, Progressive Enhancement means thinking about a web page from the content out.
Aaron Gustafson writes in his seminal A List Apart article “Understanding Progressive Enhancement”:
Progressive enhancement focuses on the content.… Content is the reason we create websites to begin with. Some sites disseminate it, some collect it, some request it, some manipulate it, and some even do all of the above, but they all require it.
A website breaking with JavaScript disabled is only a symptom of the site being inaccessible to certain devices. Either way, deserving users are shut out. This is not in the spirit of the web.
Not dead, yet
In a rather harshly worded response to Dan Mall’s showcase, Tom Dale, one of the creators of Ember, a JavaScript framework, declares Progressive Enhancement dead. He writes:
The religious devotion to Progressive Enhancement was useful in a time when web development was new and browsers were still more like bumbling toddlers than the confident, lively young adults they’ve grown to become…. At some point recently, the browser transformed from being an awesome interactive document viewer into being the world’s most advanced, widely-distributed application runtime.
He’s right. Web browsers are now an amazing place to build useful, fun, and innovative applications. But, at the same time, he’s wrong. New technology may have less sophisticated web browsers that just can’t deal with the latest and greatest. The Amazon Kindle e-reader ships with a web browser that is decidedly less capable than its mobile counterparts. And how might we prepare for the inevitability of delivering websites on something like a smart watch?
We need to acknowledge the reality of less capable browsers and devices—now and in the future. All the browser and device-use statistics in the world won’t help in a constantly changing and evolving ecosystem. What is important to acknowledge is that we can’t be certain how our web pages will be used.
Tom writes that Progressive Enhancement has become a religion. Or, at least, the devotion to it mimics religion. Religion is something believers take on faith—unwavering commitment in spite of any evidence to the contrary. This is a mischaracterization.
Progressive Enhancement is an extension of our shared values on the web and goes to the root of the web. I believe—and hope you agree—that the web is for everybody and should be accessible regardless of the device a user brings to the party. With the web, the access to information is unprecedented and undeniably revolutionary. Never before in human history have so many people had access to so much at their fingertips. We do a disservice to that legacy when we don’t build the web with those values first and foremost. Progressive Enhancement, i.e. access to content, is not religion; it’s a human right.
Moving forward
Our methods for building the web will certainly evolve in ways we cannot predict or anticipate. The techniques we employ for Progressive Enhancement will change as technology advances, but our goal to distribute content as widely as possible will not.
Progressive Enhancement has never been about whether or not a particular site works when JavaScript is disabled—that’s just one simple litmus test. Progressive Enhancement is not about performance, or rendering speed, or innovative web applications and their viability in the marketplace. Progressive Enhancement is about content and ensuring that we allow our users the right—not the privilege—to access it.