building adaptive designs now [ui17]

Post on 27-Jan-2015

113 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

It seems like new browsers and devices are invented every day. This reality leaves us with a couple paths: ignore them but fall behind, or face ‘em head-on. The problem is, trying to stay on top of these innovations can feel a bit like battling Sauron’s army. (And for those who don’t get the movie quip: very, very daunting.) Fortunately, progressive enhancement is the way forward for web design — especially on mobile devices. By starting simple and building up, we can craft amazing experiences that work regardless of the capabilities or deficiencies of a given device. And Aaron Gustafson is just the man to describe how proven techniques like mobile first, responsive design, and adaptive UI can fit into your process while expanding your skill set. Aaron will talk about: * Shifting your thinking to architect adaptive experiences right away * Designing to take advantage of what’s possible on today’s mobile platforms * Considering alternative ways to interact with UI components you design * Using JavaScript smartly to avoid creating a “house of cards” This talk focuses on designing for mobile - a portion of what his workshop topic will cover.

TRANSCRIPT

BUILDING ADAPTIVE DESIGNS NOW

Aaron GustafsonaarongustafsonslidesharenetAaronGustafson

BROWSERS ARE A PAIN IN THE ASS

copy Brad Frost

copy Brad Frost

Just four years ago the majority of our visitors saw our website in Internet Explorer on a Windows computer on a minimum 1024 pixel wide screen Times have really changedldquo

Jason SamuelsIT ManagerNational Council on Family RelationsSource

Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo

The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially

200-400 per yearto 62 today

ldquo

Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo

In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo

830

LETrsquoS TALKMOBILE

FIRST OFFMOBILEIS NOT THEBEST WORD

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BROWSERS ARE A PAIN IN THE ASS

copy Brad Frost

copy Brad Frost

Just four years ago the majority of our visitors saw our website in Internet Explorer on a Windows computer on a minimum 1024 pixel wide screen Times have really changedldquo

Jason SamuelsIT ManagerNational Council on Family RelationsSource

Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo

The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially

200-400 per yearto 62 today

ldquo

Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo

In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo

830

LETrsquoS TALKMOBILE

FIRST OFFMOBILEIS NOT THEBEST WORD

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

copy Brad Frost

copy Brad Frost

Just four years ago the majority of our visitors saw our website in Internet Explorer on a Windows computer on a minimum 1024 pixel wide screen Times have really changedldquo

Jason SamuelsIT ManagerNational Council on Family RelationsSource

Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo

The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially

200-400 per yearto 62 today

ldquo

Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo

In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo

830

LETrsquoS TALKMOBILE

FIRST OFFMOBILEIS NOT THEBEST WORD

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

copy Brad Frost

Just four years ago the majority of our visitors saw our website in Internet Explorer on a Windows computer on a minimum 1024 pixel wide screen Times have really changedldquo

Jason SamuelsIT ManagerNational Council on Family RelationsSource

Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo

The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially

200-400 per yearto 62 today

ldquo

Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo

In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo

830

LETrsquoS TALKMOBILE

FIRST OFFMOBILEIS NOT THEBEST WORD

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

Just four years ago the majority of our visitors saw our website in Internet Explorer on a Windows computer on a minimum 1024 pixel wide screen Times have really changedldquo

Jason SamuelsIT ManagerNational Council on Family RelationsSource

Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo

The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially

200-400 per yearto 62 today

ldquo

Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo

In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo

830

LETrsquoS TALKMOBILE

FIRST OFFMOBILEIS NOT THEBEST WORD

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo

The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially

200-400 per yearto 62 today

ldquo

Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo

In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo

830

LETrsquoS TALKMOBILE

FIRST OFFMOBILEIS NOT THEBEST WORD

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially

200-400 per yearto 62 today

ldquo

Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo

In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo

830

LETrsquoS TALKMOBILE

FIRST OFFMOBILEIS NOT THEBEST WORD

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo

In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo

830

LETrsquoS TALKMOBILE

FIRST OFFMOBILEIS NOT THEBEST WORD

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo

830

LETrsquoS TALKMOBILE

FIRST OFFMOBILEIS NOT THEBEST WORD

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

LETrsquoS TALKMOBILE

FIRST OFFMOBILEIS NOT THEBEST WORD

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

FIRST OFFMOBILEIS NOT THEBEST WORD

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

of our daily media interactions

21Out of home

79At home

40Out of home

60At home

54

31Out of home

69At home

PC use is motivated by Computer Smartphone Tablet

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

90 of people use multiple screens sequentially

MOBILE IS NOTISOLATED

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml

60

4

45

3

58

5

56

3

61

4

58

8

48

8

Continued on a PC

Continued on a tablet

Planning a Trip

Managing Finances

Social Networking

Searching for Info

Browsing the Internet

Watching an Online Video

ShoppingOnline

starting place for online activities

65 4763 5965 66 56Started on smartphone

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35

Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search

6PDUWSKRQH 3ampDSWRS

of all spontaneous searches on smartphones were to

accomplish a goal

44of all spontaneous

searches on PCs were to accomplish a goal

43

20Planned

80

48Planned

52SpontaneousSpontaneous

MOBILE = OPPORTUNITY

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

PERCEPTION

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

PERCEPTION

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

There is no WebKit on Mobile

mdash Peter-Paul Kochldquo

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

Surely therersquos platform consistency

mdash Any sane individual

ldquo

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

There is no Androidmdash Stephanie Riegerldquo

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

httpyfrogcomzob5kndj

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUT ANDROIDIS NOT UNIQUE

IN THIS

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

2009 2010 2011

6 Billion

2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

OVER 80OF THESE ARE

FEATURE PHONESNOT SMARTPHONES

httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

ESPECIALLY TRUE IN DEVELOPING COUNTRIES

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

INTERNET IN KENYA MOBILE = 90

httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

THE REALITY

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will

mdash Scott Jenson

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

copy Brad Frost

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

WE DONrsquoT KNOW

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

TECHNOLOGICALRESTRICTIONS

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

I like an escalator because an escalator can never breakit can only become stairs

mdash Mitch Hedberg

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

MODERN BROWSERS

OLDER BROWSERS

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

MODERN BROWSERS

OLDER BROWSERS

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

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

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

PROGRESSIVE ENHANCEMENT

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

CONTENT

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

ACCESSIBILITY

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

ldquoSPECIAL NEEDSrdquo

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

CAN BECONTEXTUAL

ldquoSPECIAL NEEDSrdquo

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

DONrsquoT LOSE SIGHT OF YOUR USERS

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

Graceful Degradation ProgressiveEnhancement

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

Graceful Degradation ProgressiveEnhancement

ResponsiveWeb Design

MobileFirst

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

NEWER OLDER

Use

r Exp

erie

nce

Browser Age

Graceful Degradation

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Progressive Enhancement

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Content

Semantics

Design

Interactivity

Accessibility

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

HTMLHTML5

Microformats

HTML4

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

EXAMPLES

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt

useful elements and a ton of new APIsltpgt

ltpgtPlease fill out the form below

ltstronggtNote all fields are requiredltstronggtltpgt

ltpgtI like to work with markup languages because

ltstronggtthey are simple and easy to readltstronggt

They also have that certain lti lang=fr title=I

donamp8217t know whatgtje ne sais quoiltigtltpgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltvideo poster=rdquoposterpngrdquogt

ltsource src=rdquovideom4vrdquogt

ltsource src=rdquovideowebmrdquogt

ltsource src=rdquovideoogvrdquogt

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

ltvideogt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt

ltulgt

ltligtlta href=videom4vgtDownload MP4ltagtltligt

ltligtlta href=videowebmgtDownload WebMltagtltligt

ltligtlta href=video ogvgtDownload Oggltagtltligt

ltulgt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with Microformatsltsection class=vcardgt

ltfiguregt

ltimg class=photo src=aaron-gustafsonjpg alt=gt

ltfiguregt

lth1 class=fngtAaron Gustafsonlth1gt

hellip

ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the

lta class=org href=httpwebstandardsorggtWeb

Standards Project (WaSP)ltagt hellipltpgt

ltsectiongt

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with HTML amp ARIAltheader role=rdquobannerrdquogt

lth1gtltimg src=ilogopnggtlth1gt

ltnav role=rdquonavigationrdquogt

ltolgt

ltligtlta href=detailsgtDetailsltagtltligt

ltligtlta href=schedulegtScheduleltagtltligt

ltligtlta href=instructorsgtInstructorsltagtltligt

ltligtlta href=lodginggtLodgingltagtltligt

ltligtlta href=locationgtLocationltagtltligt

ltolgt

ltnavgt

ltheadergt

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt

ltpgtSomething went wrongltpgt

ltdivgt

ltdiv role=alertdialoggt

ltpgtSomething went wrongltpgt

ltimg src=xpng alt=dismiss role=button gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors

p

color red

font-weight bold

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsp

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorshtml[lang] p

color ccc

color rgba( 0 0 0 5 )

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Parsing errors-moz-document url-prefix()

html[lang] p

color ccc

color rgba( 0 0 0 5 )

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

intro

Basic Layout

body[id=css-zen-garden] intro

Advanced Layout

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

intro

Basic Layout

[foo] intro

Advanced Layout

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Parsing errorsmedia screen print refrigerator

IE will get these rules

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Media blocksmedia screen

Styles for screen media only

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Media blocks+media only screen and (max-width450px)

Styles for screen media when browser

is 450px wide or below

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Donrsquot do thismedia

screen and (min-device-width1024px)

and (max-width989px)

screen and (max-device-width480px)

screen and (max-device-width480px)

and (orientationlandscape)

screen and (min-device-width481px)

and (orientationportrait)

Layout for narrower desktop (below 990px)

or

iPhone running iOS 3 (or equivalent)

or

iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view

or

iPad (or equivalent) in ldquoportraitrdquo view

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Mobile First w media queries Universal Layout

media screen

Styles for all screens

media only screen and (min-width481px)

Styles for all screens 480px+ width

media only screen and (min-width754px)

Styles for all screens 754px+ width

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

httpisgdlazyloading_demo

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltinput class=tweet-counter value=140 disabled=disabledgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan id=chars_left_notice class=numericgt

ltstrong id=status-field-char-counter

class=char-countergt140ltstronggt

ltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

hidden

position absolute

left 999em

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140

ltb class=hiddengt characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true

class=tweet-countergt140ltb class=hiddengt

characters remainingltbgtltspangt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Complex interfaces

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Widget logic

Page

JSNoYes

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt

lth2gtOverviewlth2gt

lt-- hellip --gt

lth2gtIngredientslth2gt

lt-- hellip --gt

lth2gtDirectionslth2gt

lt-- hellip --gt

lth2gtNutritionlth2gt

lt-- hellip --gt

ltdivgt

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JS

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNoYes

No

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

Split the content amp

make some tabs

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

Adaptive widget logic

Page

JSNo

YesYes

No

LIVE

Split the content amp

make some tabs

Untab (if tabbed)

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tablist

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

BUILDING ADAPTIVE DESIGNS NOW

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

Text amp HTTP

HTML

CSS

JavaScript

ARIA

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

THANK YOUhttpreadlistscom7d414b24

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson

Further readinghttpadaptivewebdesigninfo

httpblogeasy-designsnethttpmobilewebbestpracticescom

Slides available athttpslidesharenetAaronGustafson

This presentation is licensed underCreative Commons

Attribution-Noncommercial-Share Alike 30except where otherwise noted

flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745

top related