Progressive Enhancement with JavaScript and CSSe Enhancement With JavaScript and CSS
Progressive Enhancement & Mobile [Funka 2012]
-
Upload
aaron-gustafson -
Category
Technology
-
view
104 -
download
0
description
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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