Progressive
Enhancement
Hello.
Zach Leatherman
Front End Engineer est. 1998
UI “Architect” at Union Pacific Railroad
Web 3.0, 6 Bladed Razors, 7 Minute Abs:
   849K Pageviews, 1.3K RSS subscribers
BigText jQuery Plugin Author
Omaha Startup Weekend: GiftBright and CallSpinner
No affiliation:




     @zachleat                                  http://zachleat.com
Problem?
WEB BROWSERS
3.6, 4, 5
Fennec
Camino
Flock              SeaMonkey



        K-Meleon
MicroB
4, 5


http://www.quirksmode.org/blog/archives/2009/10/there_is_no_web.html
11, 12
Konqueror
(NetFront)
(NetFront)
RockMelt              Shiira


           SkyFire



  iCab               OmniWeb
11
Mini 4, 5, 6
Internet Channel
6
7, 8
9
Maxthon   Avant Browser
SPECIFICATIONS
Design Documents
HTML2                         HTML5
76 pages                     500 pages

           http://html5.hadw.com/
UNRELIABLE or
SLOW NETWORKS
Cheap shot
IMPERFECT CODE
<a href=”#”
	 onclick=”throw Error(‘Whoops’)”>
   GO TO NEXT PAGE
</a>
You’re unit
testing, right?
P.E.
I need my space



HTML                 JavaScript
       CSS
HTML Content
      CSS Presentation
JavaScript Behaviors
HTML First
      CSS Second
JavaScript Third
Example
HTML
Ajax Target HTML
CSS
Modify Ajax Target
JavaScript
Choose Your
                           Weapons Wisely




http://www.flickr.com/photos/29503348@N03/4915763648/
Performance
Accessibility
Common Mistakes
<noscript>
HTML5 Boilerplate
What to P.E.
Text
   Images alt=”Text”
      CSS Defaults
JavaScript No Ajax
           No Behaviors
Text
     Images
Flash Video Transcripts
            Still Images
Text     Telegraph
         1838

Images1865 Telefax

 Audio1876 Telephone

      1896 Radio

Video 1927 Television
      1930 Videophone
Inclusive




            One Web,
            Mobile First   Two Web
                                    JavaScript       IE Only




                                                               Exclusive
                                Required Web     WebKit Only
Layouts
Responsive Design & Text




   http://blog.andyhume.net/responsive-by-default
Interactions
Keyboard > Mouse > Touch
NetMag
    Issue 208




http://issuu.com/curtisbrenneman/docs/net208
Pragmatism
Who to P.E.
http://developer.yahoo.com/yui/articles/gbs/
http://jquerymobile.com/gbs/
Ok, but how does this
      help me?
IE6 and Blackberry 4.x
still have CSS, JavaScript
          support
Three Ways To Fork
    http://allyoucanleet.com/2011/02/05/the-cost-of-feature-testing/
User Agent Sniffing
          Bad.
        “Mozilla”
      “Like Gecko”
Weak Inference
   Not much better.
Feature Detection
       Good.
Tool Snobbery
Warning Signs
APIs are
JavaScript Only
Clientside
 JavaScript
Templating
Mobile
Component
Frameworks
Good, Bad, & Ugly
Retrofit Existing Code
Requires Thought
Slightly Larger
  Code Base
Tool Snobbery
Thanks!

Zach Leatherman
 @zachleat

 http://zachleat.com

Progressive Enhancement