Progressive Enhancement & Mobile [Funka 2012]

131
PROGRESSIVE ENHANCEMENT Aaron Gustafson @aarongustafson slideshare.net/AaronGustafson & MOBILE

description

The concept of progressive enhancement is the way forward for web design, especially on mobile devices. Aaron Gustafson shows you how the latest techniques - mobile first, responsive design, and adaptive UI - fit in to the process.

Transcript of Progressive Enhancement & Mobile [Funka 2012]

Page 1: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVEENHANCEMENT

Aaron GustafsonaarongustafsonslidesharenetAaronGustafson

ampMOBILE

BROWSERS ARE A PAIN IN THE ASS

AND THEN THERErsquoSMOBILE

copy Brad Frost

copy Brad Frost

WHAT IS MOBILE

WHAT IS MOBILE

ldquoThere is no WebKit on Mobile

mdash Peter-Paul Koch

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform

consistency

ldquoThere is no Androidmdash Stephanie Rieger

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 2: Progressive Enhancement & Mobile [Funka 2012]

BROWSERS ARE A PAIN IN THE ASS

AND THEN THERErsquoSMOBILE

copy Brad Frost

copy Brad Frost

WHAT IS MOBILE

WHAT IS MOBILE

ldquoThere is no WebKit on Mobile

mdash Peter-Paul Koch

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform

consistency

ldquoThere is no Androidmdash Stephanie Rieger

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 3: Progressive Enhancement & Mobile [Funka 2012]

AND THEN THERErsquoSMOBILE

copy Brad Frost

copy Brad Frost

WHAT IS MOBILE

WHAT IS MOBILE

ldquoThere is no WebKit on Mobile

mdash Peter-Paul Koch

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform

consistency

ldquoThere is no Androidmdash Stephanie Rieger

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 4: Progressive Enhancement & Mobile [Funka 2012]

copy Brad Frost

copy Brad Frost

WHAT IS MOBILE

WHAT IS MOBILE

ldquoThere is no WebKit on Mobile

mdash Peter-Paul Koch

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform

consistency

ldquoThere is no Androidmdash Stephanie Rieger

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 5: Progressive Enhancement & Mobile [Funka 2012]

copy Brad Frost

WHAT IS MOBILE

WHAT IS MOBILE

ldquoThere is no WebKit on Mobile

mdash Peter-Paul Koch

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform

consistency

ldquoThere is no Androidmdash Stephanie Rieger

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 6: Progressive Enhancement & Mobile [Funka 2012]

WHAT IS MOBILE

WHAT IS MOBILE

ldquoThere is no WebKit on Mobile

mdash Peter-Paul Koch

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform

consistency

ldquoThere is no Androidmdash Stephanie Rieger

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 7: Progressive Enhancement & Mobile [Funka 2012]

WHAT IS MOBILE

ldquoThere is no WebKit on Mobile

mdash Peter-Paul Koch

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform

consistency

ldquoThere is no Androidmdash Stephanie Rieger

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 8: Progressive Enhancement & Mobile [Funka 2012]

ldquoThere is no WebKit on Mobile

mdash Peter-Paul Koch

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform

consistency

ldquoThere is no Androidmdash Stephanie Rieger

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 9: Progressive Enhancement & Mobile [Funka 2012]

WebKit vs Acid3

httpwwwquirksmodeorgwebkit_mobilehtml

Surely therersquos platform

consistency

ldquoThere is no Androidmdash Stephanie Rieger

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 10: Progressive Enhancement & Mobile [Funka 2012]

Surely therersquos platform

consistency

ldquoThere is no Androidmdash Stephanie Rieger

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 11: Progressive Enhancement & Mobile [Funka 2012]

ldquoThere is no Androidmdash Stephanie Rieger

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 12: Progressive Enhancement & Mobile [Funka 2012]

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 13: Progressive Enhancement & Mobile [Funka 2012]

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)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 14: Progressive Enhancement & Mobile [Funka 2012]

THE CULPRITSSCREEN SIZE

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 15: Progressive Enhancement & Mobile [Funka 2012]

THE CULPRITSEMBEDDED VIEWS

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 16: Progressive Enhancement & Mobile [Funka 2012]

THE CULPRITSBROWSER CHROME

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 17: Progressive Enhancement & Mobile [Funka 2012]

THE CULPRITSZOOM LEVEL

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 18: Progressive Enhancement & Mobile [Funka 2012]

THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 19: Progressive Enhancement & Mobile [Funka 2012]

WHAT IS MOBILE

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 20: Progressive Enhancement & Mobile [Funka 2012]

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

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 21: Progressive Enhancement & Mobile [Funka 2012]

Umhellip I think Irsquoll just build an iPhone app

kthxbye

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 22: Progressive Enhancement & Mobile [Funka 2012]

NATIVEvs

WEB

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 23: Progressive Enhancement & Mobile [Funka 2012]

NATIVEvs

WEB

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 24: Progressive Enhancement & Mobile [Funka 2012]

copy Brad Frost

copy Brad Frost

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 25: Progressive Enhancement & Mobile [Funka 2012]

copy Brad Frost

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 26: Progressive Enhancement & Mobile [Funka 2012]

WE DONrsquoT KNOW

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 27: Progressive Enhancement & Mobile [Funka 2012]

EVEN WHENWE THINKWE KNOW

WE AREPROBABLY

WRONG

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 28: Progressive Enhancement & Mobile [Funka 2012]

SO HOW DO WE COPE

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 29: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 30: Progressive Enhancement & Mobile [Funka 2012]

TECHNOLOGICALRESTRICTIONS

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 31: Progressive Enhancement & Mobile [Funka 2012]

MCMLXXVII(thatrsquos 1977)

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 32: Progressive Enhancement & Mobile [Funka 2012]

HTML CSS

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 33: Progressive Enhancement & Mobile [Funka 2012]

fault tolerancen a systemrsquos ability to continue to operate when it encounters and unexpected error

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 34: Progressive Enhancement & Mobile [Funka 2012]

BROWSERS IGNORE WHAT

THEY DONrsquoT UNDERSTAND

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 35: Progressive Enhancement & Mobile [Funka 2012]

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

mdash Mitch Hedberg

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 36: Progressive Enhancement & Mobile [Funka 2012]

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

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 37: Progressive Enhancement & Mobile [Funka 2012]

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

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 38: Progressive Enhancement & Mobile [Funka 2012]

GRACEFULDEGRADATION

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 39: Progressive Enhancement & Mobile [Funka 2012]

MODERN BROWSERS

OLDER BROWSERS

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 40: Progressive Enhancement & Mobile [Funka 2012]

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 41: Progressive Enhancement & Mobile [Funka 2012]

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 42: Progressive Enhancement & Mobile [Funka 2012]

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 43: Progressive Enhancement & Mobile [Funka 2012]

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 44: Progressive Enhancement & Mobile [Funka 2012]

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

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 45: Progressive Enhancement & Mobile [Funka 2012]

GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 46: Progressive Enhancement & Mobile [Funka 2012]

OOOH SHINY

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 47: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT

ISNrsquoT ABOUT BROWSERS

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 48: Progressive Enhancement & Mobile [Funka 2012]

BROWSERS AND TECHNOLOGIES COME AND GO

DONrsquoT LOSE SIGHT OF YOUR USERS

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 49: Progressive Enhancement & Mobile [Funka 2012]

DONrsquoT LOSE SIGHT OF YOUR USERS

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 50: Progressive Enhancement & Mobile [Funka 2012]

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 51: Progressive Enhancement & Mobile [Funka 2012]

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 52: Progressive Enhancement & Mobile [Funka 2012]

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 53: Progressive Enhancement & Mobile [Funka 2012]

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 54: Progressive Enhancement & Mobile [Funka 2012]

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 55: Progressive Enhancement & Mobile [Funka 2012]

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 56: Progressive Enhancement & Mobile [Funka 2012]

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 57: Progressive Enhancement & Mobile [Funka 2012]

BASIC ADVANCED

Use

r Exp

erie

nce

Browser amp Device Capabilities

Text amp HTTP

HTML

CSS

JavaScript

ARIA

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 58: Progressive Enhancement & Mobile [Funka 2012]

HTML

HTMLHTML5

Microformats

HTML4

EXAMPLES

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 59: Progressive Enhancement & Mobile [Funka 2012]

HTMLHTML5

Microformats

HTML4

EXAMPLES

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 60: Progressive Enhancement & Mobile [Funka 2012]

EXAMPLES

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 61: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 62: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltulgtltvideogt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 63: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTML

ltimg src=rdquoposterpngrdquo alt=rdquordquogt ltulgt ltligtlta href=videom4vgtDownload MP4ltagtltligt ltligtlta href=videowebmgtDownload WebMltagtltligt ltligtlta href=video ogvgtDownload Oggltagtltligt ltulgt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 64: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with HTMLltinput type=date name=dobgt

I get it I donrsquot get it -(

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 65: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

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 hellipltpgtltsectiongt

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 66: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

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 ltnavgtltheadergt

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 67: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

These are the droids you seekltspan role=buttongtOKltspangt

ltdiv role=alertgt ltpgtSomething went wrongltpgtltdivgt

ltdiv role=alertdialoggt ltpgtSomething went wrongltpgt ltimg src=xpng alt=dismiss role=button gtltdivgt

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 68: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 69: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 70: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 71: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errors

p color red font-weight bold

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 72: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsp color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 73: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorshtml[lang] p color ccc color rgba( 0 0 0 5 )

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 74: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 75: Progressive Enhancement & Mobile [Funka 2012]

intro Basic Layout

body[id=css-zen-garden] intro Advanced Layout

intro Basic Layout

[foo] intro Advanced Layout

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 76: Progressive Enhancement & Mobile [Funka 2012]

intro Basic Layout

[foo] intro Advanced Layout

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 77: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

Parsing errorsimport not-for-IE7-or-belowcss screen

media screen print refrigerator IE will get these rules

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 78: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocksmedia screen Styles for screen media only

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 79: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

Media blocks+media screen and (max-width450px) Styles for screen media when browser is 450px wide or below

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 80: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 81: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media queries Universal Layout

media screen Styles for all screens

media screen and (min-width481px) Styles for all screens 480px+ width

media screen and (min-width754px) Styles for all screens 754px+ width

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 82: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

Mobile First w media querieshd background url(hd-bg-smallpng) repeat-x 50 50hd logo a background url(logo-smallpng) no-repeat 50 0 display block width 240px height 109px hellip media screen and (min-width 481px) hd background url(hd-bgpng) no-repeat 50 52px hd logo a background-image url(logopng) width 342px height 155px

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 83: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 84: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 85: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 86: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan id=chars_left_notice class=numericgt ltstrong id=status-field-char-counter class=char-countergt140ltstronggtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 87: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

hidden position absolute left minus999em

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 88: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript

ltspan class=tweet-countergtmaximum of 140 charactersltspangt

ltspan class=tweet-countergt140 ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 89: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

ltspan aria-live=polite aria-atomic=true class=tweet-countergt140ltb class=hiddengt characters remainingltbgtltspangt

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 90: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 91: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 92: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

role=applicationaria-activedescendant=folder-1

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 93: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIArole=tablist

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 94: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 95: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 96: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

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

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 97: Progressive Enhancement & Mobile [Funka 2012]

PROGRESSIVE ENHANCEMENT amp MOBILE

PE with JavaScript amp ARIA

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 98: Progressive Enhancement & Mobile [Funka 2012]

Text amp HTTP

HTML

CSS

JavaScript

ARIA

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 99: Progressive Enhancement & Mobile [Funka 2012]

Availablenowfrom

easy-readersnet

or me for150 SEK

Progressive Enhancementamp Mobileby 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

Page 100: Progressive Enhancement & Mobile [Funka 2012]

Progressive Enhancementamp Mobileby 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