crafting rich experiences with progressive enhancement [beyond tellerrand 2011]

Post on 27-Jan-2015

126 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

CRAFTING RICHEXPERIENCESwith progressive enhancement

Aaron Gustafson@aarongustafsonslideshare.net/AaronGustafson

progressive enhancement

?

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

— Mitch Hedberg

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

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

DIES IST UMSTÄNDLICH

TECHNOLOGICALRESTRICTIONS

MCMLXXVII

MCMLXXVII(that’s 1977)

HTML CSS

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

BROWSERS IGNORE WHAT

THEY DON’T UNDERSTAND

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

“SPECIAL NEEDS”

CAN BECONTEXTUAL

“SPECIAL NEEDS”

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY!,

PROGRESSIVE ENHANCEMENT

ISN’T ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DON’T LOSE SIGHT OF

YOUR USERS

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser & Device Capabilities

Text & HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

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>

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>

BEYOND TELLERRAND 2011

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

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

BEYOND TELLERRAND 2011

PE with CSSp {

color: #ccc;

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

}

BEYOND TELLERRAND 2011

PE with CSShtml[lang] p {

color: #ccc;

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

}

IE6 & underMOSe

BEYOND TELLERRAND 2011

Fault tolerance#intro {

/* Basic Layout */

}

/* ... */

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

/* Advanced Layout */

}

BEYOND TELLERRAND 2011

Fault tolerance#intro {

/* Basic Layout */

}

/* ... */

[foo],

#intro {

/* Advanced Layout */

}

BEYOND TELLERRAND 2011

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

screen;

@media screen, print, refrigerator {

/* IE will get these rules */

}

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 */

}

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>

BEYOND TELLERRAND 2011

PE with JavaScript

BEYOND TELLERRAND 2011

PE with JavaScript

BEYOND TELLERRAND 2011

PE with JavaScript

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

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>

BEYOND TELLERRAND 2011

PE with JavaScript

<span class="tweet-counter">140

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

.hidden {

position: absolute;

left: −999em;

}

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>

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>

BEYOND TELLERRAND 2011

PE with JavaScript & ARIA

BEYOND TELLERRAND 2011

PE with JavaScript & ARIA

BEYOND TELLERRAND 2011

PE with JavaScript & ARIA

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

BEYOND TELLERRAND 2011

PE with JavaScript & ARIArole="tablist"

BEYOND TELLERRAND 2011

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

BEYOND TELLERRAND 2011

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

BEYOND TELLERRAND 2011

PE with JavaScript & ARIA

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

BEYOND TELLERRAND 2011

PE with JavaScript & ARIA

Text & HTTP

HTML

CSS

JavaScript

ARIA

Available now from

easy-readers.net

or Kelly

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/

top related