Progressive enhancement is a strategy in
web design
Web design encompasses many different skills and disciplines in the production and maintenance of websites. The different areas of web design include web graphic design; user interface design (UI design); authoring, including standardised code an ...
that puts emphasis on
web content
Web content is the wikt:text, text, visual system, visual or audio signal, audio Content (media), content that is made available online and user encountered as part of the online usage and user experience, experience on websites. It may include t ...
first, allowing
everyone to access the basic content and functionality of a web page, whilst
users
Ancient Egyptian roles
* User (ancient Egyptian official), an ancient Egyptian nomarch (governor) of the Eighth Dynasty
* Useramen, an ancient Egyptian vizier also called "User"
Other uses
* User (computing), a person (or software) using an ...
with additional browser features or faster Internet access receive the enhanced version instead. Additionally, it speeds up loading and facilitates crawling by
web search engine
A search engine is a software system designed to carry out web searches. They search the World Wide Web in a systematic way for particular information specified in a textual web search query. The search results are generally presented in a ...
s, as pages' text is loaded immediately through the
HTML
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
source code rather than having to wait for JavaScript to initiate and load the content subsequently, meaning content ready for consumption "out of the box" is served imminently, not behind additional layers.
This strategy involves
separating the
presentation semantics In computer science, particularly in human-computer interaction, presentation semantics specify how a particular piece of a formal language is represented in a distinguished manner accessible to human senses, usually human vision. For example, sayin ...
from the content, with presentation being implemented in one or more optional layers, activated based on aspects of the
browser or
Internet
The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
connection of the
client
Client(s) or The Client may refer to:
* Client (business)
* Client (computing), hardware or software that accesses a remote service on another computer
* Customer or client, a recipient of goods or services in return for monetary or other valuable ...
. In practice, this means serving content through
HTML
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
, the "lowest common denominator" of web standards, and applying styling and animation through
CSS
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
to the technically possible extent, then applying further enhancements through
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
. Deprecated
Adobe Flash
Adobe Flash (formerly Macromedia Flash and FutureSplash) is a multimedia Computing platform, software platform used for production of Flash animation, animations, rich web applications, application software, desktop applications, mobile apps, mo ...
could be thought of as having shared the final spot with JavaScript while it was widely in use. Since web browsers can load site features to the extent supported rather than failing to load the entire site due to one error or missing feature in JavaScript, a progressively enhancing site is more stable and
backwards compatible.
History
"Progressive enhancement" was coined by Steven Champeon &
Nick Finck
Nick may refer to:
* Nick (given name)
* A cricket term for a slight deviation of the ball off the edge of the bat
* British slang for being arrested
* British slang for a police station
* British slang for stealing
* Short for nickname
Place ...
at the
SXSW
South by Southwest, abbreviated as SXSW and colloquially referred to as South By, is an annual conglomeration of parallel film, interactive media, and music festivals and conferences organized jointly that take place in mid-March in Austin, Te ...
Interactive conference on March 11, 2003, in Austin, and through a series of articles for
Webmonkey
Webmonkey was an online tutorial website composed of various articles on building webpages from backend to frontend. The site covered many aspects of developing on the web like programming, database, multimedia, and setting up web storefronts. The ...
which were published between March and June 2003.
[Champeon, Steven (2003)]
Progressive Enhancement and the Future of Web Design
Webmonkey
Specific
Cascading Style Sheets
Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
(CSS) techniques pertaining to flexibility of the page layout accommodating different screen resolutions is the concept associated with
responsive web design approach.
.net Magazine chose Progressive Enhancement as #1 on its list of Top Web Design Trends for 2012 (
responsive design was #2).
Google
Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. ...
has encouraged the adoption of progressive enhancement to help "our systems (and a wider range of browsers) see usable content and basic functionality when certain web design features are not yet supported".
Introduction
The strategy is an evolution of a previous web design strategy known as
graceful degradation
Fault tolerance is the property that enables a system to continue operating properly in the event of the failure of one or more faults within some of its components. If its operating quality decreases at all, the decrease is proportional to the ...
, wherein Web pages were designed for the latest browsers first, but then made to work well in older versions of browser software.
Graceful degradation aims to allow a page to "degrade" – to remain presentable and
accessible
Accessibility is the design of products, devices, services, vehicles, or environments so as to be usable by people with disabilities. The concept of accessible design and practice of accessible development ensures both "direct access" (i.e ...
even if certain technologies expected by the design are absent.
In progressive enhancement the strategy is deliberately reversed: The
web content
Web content is the wikt:text, text, visual system, visual or audio signal, audio Content (media), content that is made available online and user encountered as part of the online usage and user experience, experience on websites. It may include t ...
is created with a
markup document, geared towards the lowest common denominator of browser software functionality.
Content only revealable through JavaScript like in collapsible menus is shown by default and only hidden by JavaScript if loaded, as implemented in page sections of
Wikipedia's mobile web. The
developer
Developer may refer to:
Computers
* Software developer, a person or organization who develop programs/applications
* Video game developer, a person or business involved in video game development, the process of designing and creating games
* Web d ...
adds all desired functionality to the presentation and behavior of the page, using modern CSS,
Scalable Vector Graphics
Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium sinc ...
(SVG), or
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
.
Background
The progressive enhancement approach is derived from Champeon's early experience () with Standard Generalized Markup Language (SGML), before working with
HTML
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
or any Web presentation languages, as well as from later experiences working with CSS to work around browser bugs. In those early SGML contexts, semantic markup was of key importance, whereas presentation was nearly always considered separately, rather than being embedded in the markup itself. This concept is variously referred to in markup circles as the rule of ''separation of presentation and content'', ''separation of content and style'', or of ''separation of semantics and presentation''. As the Web evolved in the mid-nineties, but before CSS was introduced and widely supported, this cardinal rule of SGML was repeatedly violated by HTML's extenders. As a result, web designers were forced to adopt new, disruptive technologies and tags in order to remain relevant. With a nod to graceful degradation, in recognition that not everyone had the latest browser, many began to simply adopt design practices and technologies only supported in the most recent and perhaps the single previous major browser releases. For several years, much of the Web simply did not work in anything but the most recent, most popular browsers. This remained true until the rise and widespread adoption of and support for CSS, as well as many populist, grassroots educational efforts (from Eric Costello, Owen Briggs, Dave Shea, and others) showing Web designers how to use CSS for layout purposes.
Progressive enhancement is based on a recognition that the core assumption behind "graceful degradation"—that browsers always got faster and more powerful—was proving itself false with the rise of handheld and
PDA
PDA may refer to:
Science and technology
* Patron-driven acquisition, a mechanism for libraries to purchase books
*Personal digital assistant, a mobile device
* Photodiode array, a type of detector
* Polydiacetylenes, a family of conducting poly ...
devices with low-functionality browsers and serious bandwidth constraints. In addition, the rapid evolution of HTML and related technologies in the early days of the Web has slowed, and very old browsers have become obsolete, freeing designers to use powerful technologies such as CSS to manage all presentation tasks and JavaScript to enhance complex client-side behavior.
First proposed as a somewhat less unwieldy catchall phrase to describe the delicate art of "separating document structure and contents from
semantics, presentation, and behavior", and based on the then-common use of CSS hacks to work around rendering bugs in specific browsers, the progressive enhancement strategy has taken on a life of its own as new designers have embraced the idea and extended and revised the approach.
Core principles
The progressive enhancement strategy consists of the following core principles:
* Basic content should be accessible to all web browsers.
* Basic functionality should be accessible to all web browsers.
* Sparse, semantic markup contains all content.
* Enhanced layout is provided by externally linked CSS.
* Enhanced behavior is provided by externally linked JavaScript.
* End-user web browser preferences are respected.
Support and adoption
* Progressive enhancement is used in the front ends of
MediaWiki
MediaWiki is a free and open-source wiki software. It is used on Wikipedia and almost all other Wikimedia websites, including Wiktionary, Wikimedia Commons and Wikidata; these sites define a large part of the requirement set for MediaWiki ...
-powered sites such as
Wikipedia
Wikipedia is a multilingual free online encyclopedia written and maintained by a community of volunteers, known as Wikipedians, through open collaboration and using a wiki-based editing system. Wikipedia is the largest and most-read refer ...
, as it is readable, navigable, and even editable using the basic HTML interface without styling or scripts, though is enhanced by such. For example, the
wikitext editor's toolbar is loaded and operates through JavaScript.
* In August 2003 Jim Wilkinson created a progressive enhancement wiki page to collect some tricks and tips and to explain the overall strategy.
* Designers such as
Jeremy Keith have shown how the approach can be used harmoniously with still other approaches to modern
web design
Web design encompasses many different skills and disciplines in the production and maintenance of websites. The different areas of web design include web graphic design; user interface design (UI design); authoring, including standardised code an ...
(such as
Ajax
Ajax may refer to:
Greek mythology and tragedy
* Ajax the Great, a Greek mythological hero, son of King Telamon and Periboea
* Ajax the Lesser, a Greek mythological hero, son of Oileus, the king of Locris
* ''Ajax'' (play), by the ancient Greek ...
) to provide flexible, but powerful, user experiences.
* Aaron Gustafson wrote a series covering the fundamentals of progressive enhancement, from the underlying philosophy to CSS approaches to how to handle JavaScript, for A List Apart.
[Aaron Gustafson (2008)]
Understanding Progressive Enhancement
A List Apart
* Others, including
Dave Shea, have helped to spread the adoption of the term to refer to CSS-based design strategies.
* Organizations such as the
Web Standards Project
The Web Standards Project (WaSP) was a group of professional web developers dedicated to disseminating and encouraging the use of the web standards recommended by the World Wide Web Consortium, along with other groups and standards bodies.
Foun ...
(WaSP), which was behind the creation of
Acid2
Acid2 is a webpage that test web browsers' functionality in displaying aspects of HTML markup, CSS 2.1 styling, PNG images, and data URIs. The test page was released on 13 April 2005 by the Web Standards Project. The Acid2 test page will be ...
and
Acid3
The Acid3 test is a web test page from the Web Standards Project that checks a web browser's compliance with elements of various web standards, particularly the Document Object Model (DOM) and JavaScript.
If the test is successful, the results ...
tests, have embraced progressive enhancement as a basis for their educational efforts.
* In 2006 Nate Koechley at
Yahoo!
Yahoo! (, styled yahoo''!'' in its logo) is an American web services provider. It is headquartered in Sunnyvale, California and operated by the namesake company Yahoo Inc., which is 90% owned by investment funds managed by Apollo Global Man ...
made extensive reference to progressive enhancement in his own approach to Web design and browser support, Graded Browser Support (GBS).
* Steve Chipman at AOL has referred to progressive enhancement (by DOM scripting) as a basis for his Web design strategy.
* David Artz, leader of the AOL Optimization team, developed a suite of Accessible Rendering Technologies, and invented a technique for disassembly of the "enhancement" on the fly, saving the user's preference.
* Chris Heilmann discussed the importance of targeted delivery of CSS so that each browser only gets the content (and enhancements) it can handle.
* Scott Jehl of Filament Group proposed a "Test-Driven Progressive Enhancement", recommending to test the device capabilities (rather than inferring them from the detected
user agent
In computing, a user agent is any software, acting on behalf of a user, which "retrieves, renders and facilitates end-user interaction with Web content". A user agent is therefore a special kind of software agent.
Some prominent examples of us ...
) before providing enhancements.
*
Wt is an open-source server-side web application framework which transparently implements progressive enhancement during its bootstrap, progressing from plain HTML to full Ajax.
Benefits
Accessibility, compatibility, and outreach
Web pages created according to the principles of progressive enhancement are by their nature more accessible,
backwards compatible, and
outreach
Outreach is the activity of providing services to any population that might not otherwise have access to those services. A key component of outreach is that the group providing it is not stationary, but mobile; in other words, it involves meetin ...
ing, because the strategy demands that basic content always be available, not obstructed by commonly unsupported or scripting that may be easily disabled, unsupported (e.g. by
text-based web browser
A text-based web browser is a web browser that renders only the text of web pages, and ignores most graphic content. Under small bandwidth connections, usually, they render pages faster than graphical web browsers due to lowered bandwidth demand ...
s), or blocked on computers in sensitive environments. Additionally, the sparse markup principle makes it easier for tools that read content aloud to find that content. It is unclear as to how well progressive enhancement sites work with older tools designed to deal with table layouts, "
tag soup", and the like.
Speed, efficiency, and user control
The
client (computing)
In computing, a client is a piece of computer hardware or software that accesses a service made available by a server as part of the client–server model of computer networks. The server is often (but not always) on another computer system, in ...
is able to select which parts of a page to download beyond basic HTML (e.g. styling, images, etc.), and can opt
only to download parts necessary for desired usage to speed up loading and reduce bandwidth and power consumption. For example, a client may choose to only download basic HTML, without loading style sheets, scripts, and media (e.g. images), due to low internet speeds caused by geographical location, poor cellular signal, or throttled speed due to exhausted high-speed data plan. This also reduces bandwidth consumption on the server side.
In comparison, pages whose initial content is loaded through AJAX require the client to inefficiently run JavaScript to download and view page content, rather than downloading the content immediately.
Search engine optimization (SEO)
Improved results with respect to
search engine optimization
Search engine optimization (SEO) is the process of improving the quality and quantity of Web traffic, website traffic to a website or a web page from web search engine, search engines. SEO targets unpaid traffic (known as "natural" or "Organ ...
(SEO) is another side effect of a progressive enhancement-based Web design strategy. Because the basic content is always accessible to search engine spiders, pages built with progressive enhancement methods avoid problems that may hinder search engine indexing, whereas having to render the basic page content through JavaScript execution would make crawling slow and inefficient.
Criticism and responses
Some skeptics, such as Garret Dimon, have expressed their concern that progressive enhancement is not workable in situations that rely heavily on JavaScript to achieve certain user interface presentations or behaviors. Others have countered with the point that informational pages should be coded using progressive enhancement in order to be indexed by spiders, and that even Flash-heavy pages should be coded using progressive enhancement. In a related area, many have expressed their doubts concerning the principle of the separation of content and presentation in absolute terms, pushing instead for a realistic recognition that the two are inextricably linked.
A List Apart: Articles: Separation Anxiety: The Myth of the Separation of Style from Content (2000)
/ref>
See also
* Content adaptation
Content adaptation is the action of transforming content to adapt to device capabilities. Content adaptation is usually related to mobile devices, which require special handling because of their limited computational power, small screen size, and ...
transforming content to adapt to device capabilities
* Flash of unstyled content
A flash of unstyled content (or flash of unstyled text, FOUC) is an instance where a web page appears briefly with the browser's default styles prior to loading an external CSS stylesheet, due to the web browser engine rendering the page before a ...
* Progressive web application
A progressive web application (PWA), commonly known as a progressive web app, is a type of application software delivered through the web, built using common web technologies including HTML, CSS, JavaScript, and WebAssembly. It is intended to wor ...
* Semantic HTML
Semantic HTML is the use of HTML markup to reinforce the semantics, or meaning, of the information in web pages and web applications rather than merely to define its presentation or look. Semantic HTML is processed by traditional web browsers a ...
* Universal design
Universal design is the design of buildings, products or environments to make them accessible to people, regardless of age, disability or other factors. It addresses common barriers to participation by creating things that can be used by the ma ...
* Unobtrusive JavaScript
Notes
References
* Bowman, Doug (2003
Are They Really Separated?
Retrieved April 14, 2006.
* Edwards, James & Adams, Cameron (2006
Script Smarter: Quality JavaScript from Scratch
Retrieved April 14, 2006.
* Heilmann, Christian (2006
Seven Accessibility Mistakes, Part I
Retrieved April 14, 2006.
* Koechley, Nate (2006
Retrieved April 14, 2006.
* Malicoat, Todd (2003
Form vs. Function in Site Design
Retrieved April 14, 2006.
* Nyman, Robert (2006
What is Accessibility?
Retrieved April 14, 2006.
* Olsson, Tommy (2007) for Accessites.or
Graceful Degradation & Progressive Enhancement
Retrieved April 2, 2007.
* Shea, Dave (2004
Zen and the Art of Web Improvement (WE04 Keynote)
Retrieved April 14, 2006.
* Stearns, Geoff (2006
Using Alternate Content As Content In Flash
Retrieved April 14, 2006.
* van der Sluis, Bobby (2005
Ten Good Practices for Writing JavaScript in 2005
Retrieved April 14, 2006.
Further reading
;Articles
* Gustafson, Aaron (2008
Understanding Progressive Enhancement
Retrieved July 7, 2011
* Gustafson, Aaron (2008
Progressive Enhancement with CSS
Retrieved July 7, 2011.
* Gustafson, Aaron (2008
Progressive Enhancement with JavaScript
Retrieved July 7, 2011
* Gustafson, Aaron (2007
Ruining the User Experience
Retrieved May 7, 2007.
* hesketh.com, September 12, 200
Progressive Enhancement: Paving the Way for Future Web Design
* Keith, Jeremy (2006
Behavioral Separation
Retrieved May 7, 2007.
* Olsson, Tommy (2007
Graceful Degradation & Progressive Enhancement
;Books
* Briggs, Owen; Champeon, Steven; Costello, Eric; Patternson, Matthew (2004)
Cascading Style Sheets: Separating Content From Presentation
' (2nd ed.). San Francisco: Apress.
* Gustafson, Aaron (2011)
Adaptive Web Design: Crafting Rich Experiences with Progressive Enhancement
'. Chattanooga: Easy Readers. .
* Keith, Jeremy (2007)
Bulletproof Ajax
'. Berkeley: New Riders.
* Keith, Jeremy (2005)
'. Berkeley: friends of ED.
* Parker, Todd; Toland, Patty; Jehl, Scott; Costello Wachs, Maggie (
The Filament Group
') (2010)
Designing with Progressive Enhancement
' Peachpit/New Riders.
{{DEFAULTSORT:Progressive Enhancement
Web design
Usability
Web accessibility
Responsive web design
Adaptive web design