It would be tempting to think that progressive enhancement has run its course and outlived its usefulness. In fact, I believe it is just the approach we need to manage the increasing diversity in web access and technologies.
The web we always wanted
We will soon find ourselves confronted by a zombie apocalypse of connected and web-enabled devices. This is what we always wanted: the Tomorrow's World vision of the web – invisible, pervasive and only noticeable when absent.
But new devices don't necessarily contain the latest technologies. They are just as likely to have cheap components and an out of date operating system. The convenient assumption that browser technology will progress over time in a roughly linear fashion is a hangover from the desktop age that is no longer representative.
At the same time, new standards and experimental features are being implemented at an astonishing rate. The sheer range of features and the wild variation in support for them makes it impossible for us to provide sites that look and behave uniformly without spending a huge amount of time on bug fixing and polyfills.
We need to let go of the notion of a uniform web, because it doesn't exist anyway.
Of documents, apps and content
Drew argues in favour of abandoning progressive enhancement because it's cheaper and faster to build a rich web application without it. Yet most of the web is still made up by addressable, text-heavy documents linked together by the good old hyperlink, and the utility of progressive enhancement for these sites is not seemingly under question.
What is an app, and what a document, though? It seems the most concrete delineation we can come up with is based on the use of progressive enhancement itself. Many have argued that the apps vs documents debate is misrepresentative and detrimental to creativity. The benefits of a connected web of content is not in its consumption, but in real-time sharing and manipulation of content. There is no dichotomy. The two co-exist.
"The term (web app) is used as a get-out-of-jail free card and yet we can't even agree what it means. I call shenanigans." – Jeremy Keith
We need a good understanding of our content to make sensible decisions about progressive enhancement. Take Drew's embedded Google Maps example. While the Google Maps site is itself a rich interactive experience, the task of embedding a Google Map into a website should start with a semantic baseline of an address, perhaps with geographic coordinates. The purpose of the content is not to display a map, but to convey a location both to humans and external systems. A map – any map – is an enhancement, whether it is rendered as an image or an augmented reality overlay.
Progressive enhancement is a perspective
Some of the changes we have seen on the web demand a different approach to progressive enhancement. Once we stop aiming for a uniform experience across browsers, we can start enhancing based on support for individual features. We are simply unable to test across all the permutations of browsers and devices, so we must create sites that respond to the capabilities of the device being used. These are emerging techniques with their own challenges, but progress is being made.
Progressive enhancement is a perspective on the realities of developing for the web, represented by a changing armoury of techniques and approaches. In itself it doesn't limit creativity, but recognises the constraints of the medium – constraints which every designer must learn to utilise to their advantage.
Our aim should be to support users' goals as best we can no matter how they access the web. This was always the aim of progressive enhancement, and that has not changed.
Picture of Jim taken by Paul Read.