Transcript
Page 1: Progressive Enhancement

ProgressiveEnhancement

Page 2: Progressive Enhancement

Hello.Zach LeathermanFront End Engineer est. 1998UI “Architect” at Union Pacific RailroadWeb 3.0, 6 Bladed Razors, 7 Minute Abs:

849K Pageviews, 1.3K RSS subscribersBigText jQuery Plugin AuthorOmaha Startup Weekend: GiftBright and CallSpinnerNo affiliation:

@zachleat http://zachleat.com

Page 3: Progressive Enhancement

Problem?

Page 4: Progressive Enhancement
Page 5: Progressive Enhancement

WEB BROWSERS

Page 6: Progressive Enhancement

3.6, 4, 5

Page 7: Progressive Enhancement

Fennec

Page 8: Progressive Enhancement

Camino

Page 9: Progressive Enhancement

Flock SeaMonkey

K-Meleon

Page 10: Progressive Enhancement

MicroB

Page 12: Progressive Enhancement

11, 12

Page 13: Progressive Enhancement

Konqueror

Page 14: Progressive Enhancement
Page 15: Progressive Enhancement
Page 16: Progressive Enhancement
Page 17: Progressive Enhancement
Page 18: Progressive Enhancement
Page 19: Progressive Enhancement
Page 20: Progressive Enhancement
Page 21: Progressive Enhancement

(NetFront)

Page 22: Progressive Enhancement

(NetFront)

Page 23: Progressive Enhancement

RockMelt Shiira

OmniWebiCab

SkyFire

Page 24: Progressive Enhancement

11Mini 4, 5, 6

Page 25: Progressive Enhancement

Internet Channel

Page 26: Progressive Enhancement

6

Page 27: Progressive Enhancement

7, 8

Page 28: Progressive Enhancement

9

Page 29: Progressive Enhancement

Maxthon Avant Browser

Page 30: Progressive Enhancement
Page 31: Progressive Enhancement
Page 32: Progressive Enhancement
Page 33: Progressive Enhancement

SPECIFICATIONS

Page 34: Progressive Enhancement

Design Documents

Page 35: Progressive Enhancement
Page 36: Progressive Enhancement

HTML276 pages

HTML5500 pages

http://html5.hadw.com/

Page 37: Progressive Enhancement

UNRELIABLE or SLOW NETWORKS

Page 38: Progressive Enhancement

Cheap shot

Page 39: Progressive Enhancement

IMPERFECT CODE

Page 40: Progressive Enhancement

<a href=”#” onclick=”throw Error(‘Whoops’)”> GO TO NEXT PAGE</a>

Page 41: Progressive Enhancement
Page 42: Progressive Enhancement
Page 43: Progressive Enhancement

You’re unit testing, right?

Page 44: Progressive Enhancement

P.E.

Page 45: Progressive Enhancement

HTMLCSS

JavaScript

I need my space

Page 46: Progressive Enhancement

HTML CSS

JavaScript

ContentPresentationBehaviors

Page 47: Progressive Enhancement

HTML CSS

JavaScript

FirstSecondThird

Page 48: Progressive Enhancement

Example

Page 49: Progressive Enhancement

HTML

Page 50: Progressive Enhancement

Ajax Target HTML

Page 51: Progressive Enhancement

CSS

Page 52: Progressive Enhancement

Modify Ajax Target

Page 53: Progressive Enhancement

JavaScript

Page 54: Progressive Enhancement

Choose Your Weapons Wisely

http://www.flickr.com/photos/29503348@N03/4915763648/

Page 55: Progressive Enhancement

Performance

Page 56: Progressive Enhancement

Accessibility

Page 57: Progressive Enhancement
Page 58: Progressive Enhancement
Page 59: Progressive Enhancement
Page 60: Progressive Enhancement

Common Mistakes

Page 61: Progressive Enhancement

<noscript>

Page 62: Progressive Enhancement

HTML5 Boilerplate

Page 63: Progressive Enhancement

What to P.E.

Page 64: Progressive Enhancement

TextImages

CSSJavaScript

alt=”Text”DefaultsNo AjaxNo Behaviors

Page 65: Progressive Enhancement

TextImages

Flash Video Transcripts Still Images

Page 66: Progressive Enhancement

TextImagesAudio

Video

1838 Telegraph1865 Telefax1876 Telephone1896 Radio1927 Television1930 Videophone

Page 67: Progressive Enhancement

One Web,Mobile First

JavaScriptRequired Web

IE OnlyWebKit Only

Two WebIncl

usiv

eExclusive

Page 68: Progressive Enhancement

LayoutsResponsive Design & Text

http://blog.andyhume.net/responsive-by-default

Page 69: Progressive Enhancement

InteractionsKeyboard > Mouse > Touch

Page 70: Progressive Enhancement
Page 71: Progressive Enhancement
Page 72: Progressive Enhancement

http://issuu.com/curtisbrenneman/docs/net208

NetMagIssue 208

Page 73: Progressive Enhancement

Pragmatism

Page 74: Progressive Enhancement
Page 75: Progressive Enhancement
Page 76: Progressive Enhancement
Page 77: Progressive Enhancement
Page 78: Progressive Enhancement

Who to P.E.

Page 79: Progressive Enhancement

http

://de

velo

per.y

ahoo

.com

/yui

/art

icle

s/gb

s/

Page 80: Progressive Enhancement

http

://jq

uery

mob

ile.c

om/g

bs/

Page 81: Progressive Enhancement

Ok, but how does this help me?

Page 82: Progressive Enhancement

IE6 and Blackberry 4.x still have CSS, JavaScript

support

Page 83: Progressive Enhancement
Page 84: Progressive Enhancement

Three Ways To Forkhttp://allyoucanleet.com/2011/02/05/the-cost-of-feature-testing/

Page 85: Progressive Enhancement

User Agent SniffingBad.

“Mozilla”“Like Gecko”

Page 86: Progressive Enhancement

Weak InferenceNot much better.

Page 87: Progressive Enhancement

Feature DetectionGood.

Page 88: Progressive Enhancement
Page 89: Progressive Enhancement
Page 90: Progressive Enhancement
Page 91: Progressive Enhancement
Page 92: Progressive Enhancement

Tool Snobbery

Page 93: Progressive Enhancement
Page 94: Progressive Enhancement

Warning Signs

Page 95: Progressive Enhancement

APIs are JavaScript Only

Page 96: Progressive Enhancement

Clientside JavaScript Templating

Page 97: Progressive Enhancement

Mobile Component Frameworks

Page 98: Progressive Enhancement
Page 99: Progressive Enhancement

Good, Bad, & Ugly

Page 100: Progressive Enhancement

Retrofit Existing Code

Page 101: Progressive Enhancement

Requires Thought

Page 102: Progressive Enhancement

Slightly Larger Code Base

Page 103: Progressive Enhancement

Tool Snobbery

Page 104: Progressive Enhancement

Thanks!

Zach Leatherman

http://zachleat.com

@zachleat


Top Related