crafting rich experiences with progressive enhancement [beyond tellerrand 2011]

83
CRAFTING RICH EXPERIENCES with progressive enhancement Aaron Gustafson @aarongustafson slideshare.net/AaronGustafson

Upload: aaron-gustafson

Post on 27-Jan-2015

126 views

Category:

Technology


0 download

DESCRIPTION

If you’ve been working on the web for any amount of time, you’ve likely heard (or even used) the term “progressive enhancement” before. As you probably know, it is the gold standard of how to approach web design. But what is progressive enhancement really? What does it mean? How does it work? And how does it fit into our workflow in a time of rapidly evolving languages and browsers? In this session, Aaron Gustafson will answer all of these questions and provide concrete takeaways that will help you improve your web design skills.

TRANSCRIPT

Page 2: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

progressive enhancement

?

Page 3: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

I like an escalator because an escalator can never break,it can only become stairs.

— Mitch Hedberg

Page 4: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

an electric toothbrush can never break, it can only become a toothbrush.

Page 5: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

a dynamic web page can never break, it can only become a web page.

Page 6: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 7: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

DIES IST UMSTÄNDLICH

Page 8: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 9: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 10: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 11: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 12: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 13: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

TECHNOLOGICALRESTRICTIONS

Page 14: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 15: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

MCMLXXVII

Page 16: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

MCMLXXVII(that’s 1977)

Page 17: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 18: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 19: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 20: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 21: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 22: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 23: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

HTML CSS

Page 24: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

fault tolerancen. a system’s ability to continue to operate when it encounters an unexpected error.

Page 25: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 26: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 27: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 28: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BROWSERS IGNORE WHAT

THEY DON’T UNDERSTAND

Page 29: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

GRACEFULDEGRADATION

Page 30: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

MODERN BROWSERS

OLDER BROWSERS

Page 31: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

MODERN BROWSERS

OLDER BROWSERS

Page 32: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

PROGRESSIVE ENHANCEMENT

Page 33: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

CONTENT

Page 34: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 35: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

ACCESSIBILITY

Page 36: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

“SPECIAL NEEDS”

Page 37: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

CAN BECONTEXTUAL

“SPECIAL NEEDS”

Page 38: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Page 39: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

Page 40: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

OOOH SHINY!,

Page 41: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

PROGRESSIVE ENHANCEMENT

ISN’T ABOUT BROWSERS

Page 42: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BROWSERS AND TECHNOLOGIES COME AND GO

Page 43: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

DON’T LOSE SIGHT OF

YOUR USERS

Page 44: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

Page 45: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Progressive Enhancement

Page 46: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Content

Page 47: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Content

Semantics

Page 48: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Content

Semantics

Design

Page 49: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Content

Semantics

Design

Interactivity

Page 50: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

Page 51: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Text & HTTP

HTML

CSS

JavaScript

ARIA

Page 52: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

HTML

Page 53: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

HTMLHTML5

Microformats

HTML4

Page 54: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

EXAMPLES

Page 55: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with HTML<video poster=”poster.png”>

<source src=”video.m4v”/>

<source src=”video.webm”/>

<source src=”video.ogv”/>

<img src=”poster.png” alt=””/>

<ul>

<li><a href="video.m4v">Download MP4</a></li>

<li><a href="video.webm">Download WebM</a></li>

<li><a href="video.ogv">Download Ogg</a></li>

</ul>

</video>

Page 56: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with HTML

<img src=”poster.png” alt=””/>

<ul>

<li><a href="video.m4v">Download MP4</a></li>

<li><a href="video.webm">Download WebM</a></li>

<li><a href="video.ogv">Download Ogg</a></li>

</ul>

Page 57: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with HTML<input type="date" name="dob"/>

I get it! I don’t get it :-(

Page 58: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with CSSp {

color: #ccc;

color: rgba( 0, 0, 0, .5 );

}

Page 59: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with CSShtml[lang] p {

color: #ccc;

color: rgba( 0, 0, 0, .5 );

}

Page 60: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

IE6 & underMOSe

Page 61: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

Fault tolerance#intro {

/* Basic Layout */

}

/* ... */

body[id=css-zen-garden] #intro {

/* Advanced Layout */

}

Page 62: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

Fault tolerance#intro {

/* Basic Layout */

}

/* ... */

[foo],

#intro {

/* Advanced Layout */

}

Page 63: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with CSS@import 'not-for-IE7-or-below.css'

screen;

@media screen, print, refrigerator {

/* IE will get these rules */

}

Page 64: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with CSS@media

screen and (min-device-width:1024px)

and (max-width:989px),

screen and (max-device-width:480px),

screen and (max-device-width:480px)

and (orientation:landscape),

screen and (min-device-width:481px)

and (orientation:portrait) {

/* Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in “landscape” view

or

iPad (or equivalent) in “portrait” view */

}

Page 65: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with HTML & ARIA<header role=”banner”>

<h1><img src="i/logo.png"/></h1>

<nav role=”navigation”>

<ol>

<li><a href="#details">Details</a></li>

<li><a href="#schedule">Schedule</a></li>

<li><a href="#instructors">Instructors</a></li>

<li><a href="#lodging">Lodging</a></li>

<li><a href="#location">Location</a></li>

</ol>

</nav>

</header>

Page 66: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript

Page 67: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript

Page 68: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript

<input class="tweet-counter" value="140" disabled="disabled">

Page 69: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript

<span id="chars_left_notice" class="numeric">

<strong id="status-field-char-counter"

class="char-counter">140</strong>

</span>

Page 70: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript

<span class="tweet-counter">140

<b class="hidden"> characters remaining</b></span>

.hidden {

position: absolute;

left: −999em;

}

Page 71: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript

<span class="tweet-counter">maximum of 140 characters</span>

<span class="tweet-counter">140

<b class="hidden"> characters remaining</b></span>

Page 72: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript & ARIA

<span aria-live="polite" aria-atomic="true"

class="tweet-counter">140<b class="hidden">

characters remaining</b></span>

Page 73: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript & ARIA

Page 74: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript & ARIA

Page 75: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript & ARIA

role="application"aria-activedescendant="folder-1"

Page 76: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript & ARIArole="tablist"

Page 77: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript & ARIArole="tab"aria-selected="true"aria-controls="folder-1"

Page 78: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript & ARIArole="tab"aria-selected="false"aria-controls="folder-4"

Page 79: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript & ARIA

role="tabpanel"aria-hidden="false"aria-labelledby="folder-1-tab"

Page 80: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

BEYOND TELLERRAND 2011

PE with JavaScript & ARIA

Page 81: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

Text & HTTP

HTML

CSS

JavaScript

ARIA

Page 82: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

Available now from

easy-readers.net

or Kelly

Page 83: Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]

Crafting Rich Experiences withProgressive Enhancement

by Aaron Gustafson

More of the same:http://adaptivewebdesign.info

http://easy-designs.nethttp://easy-reader.net

http://aaron-gustafson.com

Slides available athttp://slideshare.net/AaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 3.0

flickr Photo Creditshttp://www.!ickr.com/photos/aarongustafson/galleries/72157628049759763/