Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Progressive enhancement

From Wikipedia, the free encyclopedia
(Redirected fromProgressive Enhancement)
Web design strategy putting emphasis on web content first
The order of progressive enhancement:HTML,CSS, andJavaScript.
A Wikipedia article accessed through pure HTML (first layer). Without styling (second layer) and scripts (third layer), the content is only[compared to?] 76 KB in size.

Progressive enhancement is a strategy inweb design that puts emphasis onweb content first, allowingeveryone to access the basic content and functionality of a web page, whileusers with additional browser features or faster Internet access receive the enhanced version instead. This strategy speeds up loading and facilitates crawling byweb search engines, as text on a page is loaded immediately through theHTML 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 immediately, and not behind additional layers.[1][2][3]

This strategy involvesseparating thepresentation semantics from the content, with presentation being implemented in one or more optional layers, activated based on aspects of thebrowser orInternet connection of theclient. In practice, this means serving content throughHTML, the "lowest common denominator" of web standards, and applying styling and animation throughCSS to the technically possible extent, then applying further enhancements throughJavaScript.[4] DeprecatedAdobe Flash could be thought of as having shared the final spot with JavaScript while it was widely in use.[5][6] 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 andbackwards compatible.[4]

History

[edit]

"Progressive enhancement" was coined by Steven Champeon andNick Finck at theSXSW Interactive conference on March 11, 2003, in Austin,[7] and through a series of articles forWebmonkey which were published between March and June 2003.[8]

SpecificCascading Style Sheets (CSS) techniques pertaining to flexibility of the page layout accommodating different screen resolutions is the concept associated with theresponsive web design approach.In 2012,net Magazine chose Progressive Enhancement as #1 on its list of Top Web Design Trends for 2012 (responsive design was #2).[9]Google 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".[10]

Introduction

[edit]

The strategy is an evolution of a previous web design strategy known asgraceful degradation, wherein Web pages were designed for the latest browsers first, but then made to work well in older versions of browser software.[11][3] Graceful degradation aims to allow a page to "degrade" – to remain presentable andaccessible even if certain technologies expected by the design are absent.[12]

In progressive enhancement the strategy is deliberately reversed: Theweb content is created with amarkup document, geared towards the lowest common denominator of browser software functionality.[13][8][12]If content is to be revealed interactively through JavaScript, such as a collapsible navigation menu,the HTML markup reveals all the content by default and JavaScript itself hides some of the content.[3]Thedeveloper adds all desired functionality to the presentation and behavior of the page, using modern CSS,Scalable Vector Graphics (SVG), orJavaScript.[14]

Background

[edit]

The progressive enhancement approach is derived from Champeon's early experience (c. 1993–1994) withStandard Generalized Markup Language (SGML), predating HTML and other Web presentation languages.[8]

Writing content with semantic markup and considering the presentation of the content separately, rather than being embedded in the markup itself, is a concept referred to as the rule ofseparation of presentation and content[15][16].Champeon expressed a hope that, sinceweb browsers provide a default presentation style for HTML content, this would result in websites with their content written as semantic HTML, leaving presentation choice to the web browser.[8]However, the needs of web designers led to theHTML standard being extended withhardcoded features that allowed HTML content to prescribe specific styles, and taking away this option from consumers and their web browsers.[8]These features forced publishers to choose between adopting a newdisruptive technologies or allowing content to remain accessible to audiences that used other browsers, a dilemma between design and compatibility.[8][17][12]During the 1990s, an increasing number of websites would not work in anything but the latest versions of popular browsers.[12]

This trend reversed after the 1990s, once CSS was widely supported,[8][17] through grassroots educational efforts (from Eric Costello, Owen Briggs, Dave Shea, and others) showing Web designers how to use CSS for layout purposes.[citation needed]

Core principles

[edit]

The progressive enhancement strategy consists of the following core principles:[8]

  • 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.[17]
  • Enhanced behavior is provided by externally linked JavaScript.[14]
  • End-user web browser preferences are respected.

Support and adoption

[edit]
This sectionis inlist format but may read better asprose. You can help byconverting this section, if appropriate.Editing help is available.(December 2024)
  • In August 2003 Jim Wilkinson created a progressive enhancement wiki page to collect some tricks and tips and to explain the overall strategy.[18]
  • Designers such asJeremy Keith have shown how the approach can be used harmoniously with still other approaches to modernweb design (such asAjax) to provide flexible, but powerful, user experiences.[19][20]
  • Aaron Gustafson wrote a series forA List Apart covering the fundamentals of progressive enhancement, from the underlying philosophy to CSS approaches to how to handle JavaScript.[21][11][22][23]
  • CSS Zen Garden byMolly Holzschlag andDave Shea, spread the adoption of the term to refer to CSS-based design strategies.[24]
  • Organizations such as theWeb Standards Project (WaSP), which was behind the creation ofAcid2 andAcid3 tests,[25] have embraced progressive enhancement as a basis for their educational efforts.
  • In 2006 Nate Koechley atYahoo! made extensive reference to progressive enhancement in his own approach to Web design and browser support, Graded Browser Support (GBS).[12]
  • Steve Chipman atAOL has referred to progressive enhancement (by DOM scripting) as a basis for his Web design strategy.[26]
  • David Artz, leader of AOL's 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.
  • Progressive enhancement is used in the front ends ofMediaWiki-powered sites such asWikipedia, as it is readable, navigable, and even editable using the basic HTML interface without styling or scripts, though is enhanced by such. For example, thewikitext editor's toolbar is loaded and operates through JavaScript.
  • Chris Heilmann discussed the importance of targeted delivery of CSS so that each browser only gets the content (and enhancements) it can handle.[27][28]
  • Scott Jehl of Filament Group proposed a "Test-Driven Progressive Enhancement",[29] recommending to test the device capabilities (rather than inferring them from the detecteduser agent) 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

[edit]

Accessibility, compatibility, and outreach

[edit]

Web pages created according to the principles of progressive enhancement are by their nature more accessible,[27]backwards compatible,[6]andoutreaching, because the strategy demands that basic content always be available, not obstructed by features or scripting that may be easily disabled, unsupported (e.g. bytext-based web browsers), or blocked on computers in sensitive environments.[14]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.[citation needed]

Speed, efficiency, and user control

[edit]

Theclient is able to select which parts of a page to download beyond basic HTML (e.g. styling, images, etc.), and can optonly 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)

[edit]

Improved results with respect tosearch engine optimization (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.[27][30]

Criticism and responses

[edit]

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.[31] Laurie Gray (Information Architect atKnowledgeStorm[32]) countered with the point that informational pages should be coded using progressive enhancement in order to be indexed by search engine spiders.[33] Geoff Stearns (author ofSWFObject, a popular Flash application) argued that Flash-heavy pages should be coded using progressive enhancement.[34]

Designers Douglas Bowman and Bob Stein expressed 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.[35][15]

See also

[edit]

References

[edit]
  1. ^"Progressive enhancement is faster".jakearchibald.com. 2013-09-03. Retrieved2021-11-11.
  2. ^Tse, Tiffany (2017-02-15)."What is Progressive Enhancement and Why Should You Care?". Retrieved2023-09-28.
  3. ^abcOlsson, Tommy (2007-02-06)."Graceful Degradation & Progressive Enhancement".The Art of Accessibility. Accessites.org.Archived from the original on 2012-03-04. Retrieved2023-09-28.
  4. ^abvan der Sluis, Bobby (2005-04-19)."Ten good practices for writing JavaScript in 2005". Archived fromthe original on 2008-07-04. RetrievedApril 14, 2006.
  5. ^Mills, Chris (8 July 2011)."Graceful degradation versus progressive enhancement".World Wide Web Consortium. Retrieved2020-08-13.
  6. ^abNyman, Robert (2006-03-01)."What is Accessibility?". RetrievedApril 14, 2006.
  7. ^Steven Champeon; Nick Finck (2003-03-11)."Inclusive Web Design for the Future (SxSWi presentation)". Archived fromthe original on 2014-11-08 – viaSouth by Southwest.
  8. ^abcdefghChampeon, Steve (2003-03-21)."Progressive Enhancement and the Future of Web Design".Webmonkey. Retrieved2023-09-28.
  9. ^"15 top web design and development trends for 2012".Creative Bloq.net. January 9, 2012. Archived fromthe original on 2017-08-23.
  10. ^Pierre Far (2014),Updating our technical Webmaster Guidelines, Webmaster Central Blog
  11. ^abGustafson, Aaron (2008-10-07)."Understanding Progressive Enhancement".A List Apart. Retrieved2023-09-28.
  12. ^abcdeKoechley, Nate (2006-02-13)."Graded Browser Support".Yahoo! Developer Network. Archived fromthe original on 2006-04-14.
  13. ^"101 Search Engine Optimization Tips".www.meta4creations.com. Retrieved2016-04-14.Progressive Enhancement […] means [to] build your website starting with the lowest common denominator browsers in mind.
  14. ^abcJames Edwards; Cameron Adams (2006-03-07)."Script Smarter: Quality JavaScript from Scratch".SitePoint. RetrievedApril 14, 2006.
  15. ^abStein, Bob (2000-11-17)."Separation Anxiety: The Myth of the Separation of Style from Content".A List Apart. Retrieved2023-09-28.
  16. ^"Separation: The Web Designer's Dilemma".A List Apart. 14 May 2004. Retrieved24 May 2017.
  17. ^abcMalicoat, Todd (2003-08-23)."Form vs. Function in Site Design".SEO Today. Archived fromthe original on 2003-08-29. RetrievedApril 14, 2006.
  18. ^Wilkinson, Jim (2003),Progressive Enhancement - CSS DiscussArchived 2016-03-09 at theWayback Machine
  19. ^Jeremy Keith's Adactio blog (2005),Progressive Enhancement with Ajax
  20. ^Keith, Jeremy (2006-06-20)."Behavioral Separation".A List Apart. Retrieved2023-09-28.
  21. ^Gustafson, Aaron (2007-03-27)."Ruining the User Experience".A List Apart. Retrieved2023-09-28.
  22. ^Gustafson, Aaron (2008-10-22)."Progressive Enhancement with CSS".A List Apart. Retrieved2023-09-28.
  23. ^Gustafson, Aaron (2008-11-04)."Progressive Enhancement with JavaScript".A List Apart. Retrieved2023-09-28.
  24. ^Lawson, Bruce."An interview with Dave Shea, the CSS Zen Gardener".DMXzone.com.Archived from the original on 2007-06-08. Retrieved2007-06-05.
  25. ^"Acid Test Results on Popular Browser".SciActive. Archived fromthe original on 2008-05-05. Retrieved2008-05-05.The Acid 3 test is a work in progress and will be updated when The Web Standards Project releases the final version of the test.
  26. ^Steven G. Chipman (2005),New Skool DOM Scripting
  27. ^abcHeilmann, Chris (2005-02-22)."Double Vision – Give the Browsers CSS They Can Digest". Developer Shed. Archived fromthe original on 2006-07-20. Retrieved2017-07-06.
  28. ^"Seven Accessibility Mistakes (Part 1)".Digital Web Magazine. 2006-04-12. Archived from the original on 2006-04-12. RetrievedApril 14, 2006.
  29. ^Jehl, Scott (23 September 2008)."Test Driven Progressive Enhancement".A List Apart. Retrieved27 October 2009.
  30. ^Spencer, Stephan (2007-09-25)."PE is good for SEO".Searchlight - CNET News. Archived fromthe original on 2011-09-10.
  31. ^Dimon, Garret (2005-08-29)."The Reality of Progressive Enhancement". Archived fromthe original on 2007-03-17.
  32. ^"IA Summit 2006: Speaker Biographies".ASIS&T. Archived fromthe original on 2006-04-17.
  33. ^Gray, Laurie (2006-03-27)."Web 2.0 and SEO?".Association for Information Science and Technology. Archived fromthe original on 2006-04-17.
  34. ^Stearns, Geoff (2006-02-27)."Using alternate content as content in Flash".deconcept. Retrieved2023-09-28.
  35. ^Bowman, Douglas (2003-10-14)."Are they really separated?".Stopdesign.com.Archived from the original on 2006-03-28. Retrieved2006-04-14.

Further reading

[edit]
Retrieved from "https://en.wikipedia.org/w/index.php?title=Progressive_enhancement&oldid=1325997687"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp