Upload
aaron-gustafson
View
111
Download
0
Tags:
Embed Size (px)
DESCRIPTION
It seems like new browsers and devices are invented every day. This reality leaves us with a couple paths: ignore them but fall behind, or face ‘em head-on. The problem is, trying to stay on top of these innovations can feel a bit like battling Sauron’s army. (And for those who don’t get the movie quip: very, very daunting.) Fortunately, progressive enhancement is the way forward for web design — especially on mobile devices. By starting simple and building up, we can craft amazing experiences that work regardless of the capabilities or deficiencies of a given device. And Aaron Gustafson is just the man to describe how proven techniques like mobile first, responsive design, and adaptive UI can fit into your process while expanding your skill set. Aaron will talk about: * Shifting your thinking to architect adaptive experiences right away * Designing to take advantage of what’s possible on today’s mobile platforms * Considering alternative ways to interact with UI components you design * Using JavaScript smartly to avoid creating a “house of cards” This talk focuses on designing for mobile - a portion of what his workshop topic will cover.
Citation preview
BUILDING ADAPTIVE DESIGNS NOW
Aaron GustafsonaarongustafsonslidesharenetAaronGustafson
BROWSERS ARE A PAIN IN THE ASS
copy Brad Frost
copy Brad Frost
Just four years ago the majority of our visitors saw our website in Internet Explorer on a Windows computer on a minimum 1024 pixel wide screen Times have really changedldquo
Jason SamuelsIT ManagerNational Council on Family RelationsSource
Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo
The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially
200-400 per yearto 62 today
ldquo
Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo
In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo
830
LETrsquoS TALKMOBILE
FIRST OFFMOBILEIS NOT THEBEST WORD
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BROWSERS ARE A PAIN IN THE ASS
copy Brad Frost
copy Brad Frost
Just four years ago the majority of our visitors saw our website in Internet Explorer on a Windows computer on a minimum 1024 pixel wide screen Times have really changedldquo
Jason SamuelsIT ManagerNational Council on Family RelationsSource
Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo
The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially
200-400 per yearto 62 today
ldquo
Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo
In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo
830
LETrsquoS TALKMOBILE
FIRST OFFMOBILEIS NOT THEBEST WORD
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
copy Brad Frost
copy Brad Frost
Just four years ago the majority of our visitors saw our website in Internet Explorer on a Windows computer on a minimum 1024 pixel wide screen Times have really changedldquo
Jason SamuelsIT ManagerNational Council on Family RelationsSource
Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo
The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially
200-400 per yearto 62 today
ldquo
Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo
In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo
830
LETrsquoS TALKMOBILE
FIRST OFFMOBILEIS NOT THEBEST WORD
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
copy Brad Frost
Just four years ago the majority of our visitors saw our website in Internet Explorer on a Windows computer on a minimum 1024 pixel wide screen Times have really changedldquo
Jason SamuelsIT ManagerNational Council on Family RelationsSource
Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo
The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially
200-400 per yearto 62 today
ldquo
Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo
In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo
830
LETrsquoS TALKMOBILE
FIRST OFFMOBILEIS NOT THEBEST WORD
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
Just four years ago the majority of our visitors saw our website in Internet Explorer on a Windows computer on a minimum 1024 pixel wide screen Times have really changedldquo
Jason SamuelsIT ManagerNational Council on Family RelationsSource
Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo
The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially
200-400 per yearto 62 today
ldquo
Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo
In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo
830
LETrsquoS TALKMOBILE
FIRST OFFMOBILEIS NOT THEBEST WORD
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
Windows users used to comprise 935 of our web visits Now that percentage is 724 Visitors using a Mac have more than tripledldquo
The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially
200-400 per yearto 62 today
ldquo
Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo
In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo
830
LETrsquoS TALKMOBILE
FIRST OFFMOBILEIS NOT THEBEST WORD
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
The percentage visiting from a mobile device or tablet hellip was just01 in 2008 It has since grown exponentially
200-400 per yearto 62 today
ldquo
Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo
In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo
830
LETrsquoS TALKMOBILE
FIRST OFFMOBILEIS NOT THEBEST WORD
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
Four years ago 755 of our web visitors used Internet Explorer That number has fallen to 37 Firefox now comprises 255 Safari 195 and Chrome 153ldquo
In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo
830
LETrsquoS TALKMOBILE
FIRST OFFMOBILEIS NOT THEBEST WORD
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
In the second quarter of 2008 we detected 71 dierent screen resolutions among our visitors In the rst quarter of 2012 we detectedldquo
830
LETrsquoS TALKMOBILE
FIRST OFFMOBILEIS NOT THEBEST WORD
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
LETrsquoS TALKMOBILE
FIRST OFFMOBILEIS NOT THEBEST WORD
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
FIRST OFFMOBILEIS NOT THEBEST WORD
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
of our daily media interactions
21Out of home
79At home
40Out of home
60At home
54
31Out of home
69At home
PC use is motivated by Computer Smartphone Tablet
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
90 of people use multiple screens sequentially
MOBILE IS NOTISOLATED
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtml
60
4
45
3
58
5
56
3
61
4
58
8
48
8
Continued on a PC
Continued on a tablet
Planning a Trip
Managing Finances
Social Networking
Searching for Info
Browsing the Internet
Watching an Online Video
ShoppingOnline
starting place for online activities
65 4763 5965 66 56Started on smartphone
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
httpgooglemobileadsblogspotcouk201208navigating-new-multi-screen-worldhtmlBase Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
Base Total Answering Follow-Up Occasion (Search) ndash PCLaptop (492) Smartphone (216) Tablet not shown due to small base size Q Would you consider your use of Dgt(9Ζamp(WREHSODQQHGRUVSXURIWKHPRPHQWVSRQWDQHRXVDVH6SRQWDQHRXVVHDUFKHV6PDUWSKRQH3ampKLFKRIWKHVHEHVWGHVFULEHVWKLVDFWLYLW 35
Often this is for ldquospur-of-the-momentrdquo activity Spontaneous vs Planned Search
6PDUWSKRQH 3ampDSWRS
of all spontaneous searches on smartphones were to
accomplish a goal
44of all spontaneous
searches on PCs were to accomplish a goal
43
20Planned
80
48Planned
52SpontaneousSpontaneous
MOBILE = OPPORTUNITY
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
PERCEPTION
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
PERCEPTION
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
There is no WebKit on Mobile
mdash Peter-Paul Kochldquo
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
WebKit vs Acid3
httpwwwquirksmodeorgwebkit_mobilehtml
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
Surely therersquos platform consistency
mdash Any sane individual
ldquo
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
There is no Androidmdash Stephanie Riegerldquo
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
httpyfrogcomzob5kndj
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUT ANDROIDIS NOT UNIQUE
IN THIS
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
THE CULPRITSSCREEN SIZE
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
THE CULPRITSEMBEDDED VIEWS
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
THE CULPRITSBROWSER CHROME
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
THE CULPRITSZOOM LEVEL
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
THE CULPRITSZOOM LEVEL(Ok this onersquos on Android)
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
2009 2010 2011
6 Billion
2009 2010 2011httpmobithinkingcommobile-marketing-toolslatest-mobile-statsasubscribers
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
OVER 80OF THESE ARE
FEATURE PHONESNOT SMARTPHONES
httpdevelopintheclouddrdobbscomauthoraspdoc_id=253055ampsection_id=2280
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
ESPECIALLY TRUE IN DEVELOPING COUNTRIES
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
INTERNET IN KENYA MOBILE = 90
httpwwwcckgokerescdownloadsSECTOR_STATISTICS_REPORT_Q4_11-12pdf
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
THE REALITY
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
ldquoThe commoditization of smartphone hardware is just the beginning hellip of a huge new wave of cheap devices about to invade our livesmdasha zombie apocalypse of electronics if you will
mdash Scott Jenson
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
Umhellip I think Irsquoll just build an iPhone app
kthxbye
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
NATIVEvs
WEB
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
NATIVEvs
WEB
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
copy Brad Frost
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
copy Brad Frost
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
WE DONrsquoT KNOW
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
WE DONrsquoT KNOW
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
EVEN WHENWE THINKWE KNOW
WE AREPROBABLY
WRONG
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
SO HOW DO WE COPE
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
PROGRESSIVE ENHANCEMENT
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
TECHNOLOGICALRESTRICTIONS
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
I like an escalator because an escalator can never breakit can only become stairs
mdash Mitch Hedberg
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
GRACEFULDEGRADATION
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
MODERN BROWSERS
OLDER BROWSERS
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
MODERN BROWSERS
OLDER BROWSERS
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
a dynamic web page can never break it can only become a web page
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
PROGRESSIVE ENHANCEMENT
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
CONTENT
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
ACCESSIBILITY
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
ldquoSPECIAL NEEDSrdquo
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
CAN BECONTEXTUAL
ldquoSPECIAL NEEDSrdquo
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
GRACEFUL DEGRADATION PROGRESSIVEENHANCEMENT
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
OOOH SHINY
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
PROGRESSIVE ENHANCEMENT
ISNrsquoT ABOUT BROWSERS
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BROWSERS AND TECHNOLOGIES COME AND GO
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
DONrsquoT LOSE SIGHT OF YOUR USERS
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
Graceful Degradation ProgressiveEnhancement
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
Graceful Degradation ProgressiveEnhancement
ResponsiveWeb Design
MobileFirst
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
NEWER OLDER
Use
r Exp
erie
nce
Browser Age
Graceful Degradation
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Progressive Enhancement
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Content
Semantics
Design
Interactivity
Accessibility
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BASIC ADVANCED
Use
r Exp
erie
nce
Browser amp Device Capabilities
Text amp HTTP
HTML
CSS
JavaScript
ARIA
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
HTML
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
HTMLHTML5
Microformats
HTML4
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
EXAMPLES
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Semantics 101ltpgtHTML5 introduces several ltemgtreallyltemgt
useful elements and a ton of new APIsltpgt
ltpgtPlease fill out the form below
ltstronggtNote all fields are requiredltstronggtltpgt
ltpgtI like to work with markup languages because
ltstronggtthey are simple and easy to readltstronggt
They also have that certain lti lang=fr title=I
donamp8217t know whatgtje ne sais quoiltigtltpgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltvideo poster=rdquoposterpngrdquogt
ltsource src=rdquovideom4vrdquogt
ltsource src=rdquovideowebmrdquogt
ltsource src=rdquovideoogvrdquogt
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
ltvideogt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML
ltimg src=rdquoposterpngrdquo alt=rdquordquogt
ltulgt
ltligtlta href=videom4vgtDownload MP4ltagtltligt
ltligtlta href=videowebmgtDownload WebMltagtltligt
ltligtlta href=video ogvgtDownload Oggltagtltligt
ltulgt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with HTMLltinput type=date name=dobgt
I get it I donrsquot get it -(
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with Microformatsltsection class=vcardgt
ltfiguregt
ltimg class=photo src=aaron-gustafsonjpg alt=gt
ltfiguregt
lth1 class=fngtAaron Gustafsonlth1gt
hellip
ltpgtAaron hellip is ltb class=rolegtGroup Managerltbgt of the
lta class=org href=httpwebstandardsorggtWeb
Standards Project (WaSP)ltagt hellipltpgt
ltsectiongt
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with HTML amp ARIAltheader role=rdquobannerrdquogt
lth1gtltimg src=ilogopnggtlth1gt
ltnav role=rdquonavigationrdquogt
ltolgt
ltligtlta href=detailsgtDetailsltagtltligt
ltligtlta href=schedulegtScheduleltagtltligt
ltligtlta href=instructorsgtInstructorsltagtltligt
ltligtlta href=lodginggtLodgingltagtltligt
ltligtlta href=locationgtLocationltagtltligt
ltolgt
ltnavgt
ltheadergt
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
These are the droids you seekltspan role=buttongtOKltspangt
ltdiv role=alertgt
ltpgtSomething went wrongltpgt
ltdivgt
ltdiv role=alertdialoggt
ltpgtSomething went wrongltpgt
ltimg src=xpng alt=dismiss role=button gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors
p
color red
font-weight bold
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsp
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorshtml[lang] p
color ccc
color rgba( 0 0 0 5 )
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Parsing errors-moz-document url-prefix()
html[lang] p
color ccc
color rgba( 0 0 0 5 )
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
intro
Basic Layout
body[id=css-zen-garden] intro
Advanced Layout
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
intro
Basic Layout
[foo] intro
Advanced Layout
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Parsing errorsmedia screen print refrigerator
IE will get these rules
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Media blocksmedia screen
Styles for screen media only
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Media blocks+media only screen and (max-width450px)
Styles for screen media when browser
is 450px wide or below
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Donrsquot do thismedia
screen and (min-device-width1024px)
and (max-width989px)
screen and (max-device-width480px)
screen and (max-device-width480px)
and (orientationlandscape)
screen and (min-device-width481px)
and (orientationportrait)
Layout for narrower desktop (below 990px)
or
iPhone running iOS 3 (or equivalent)
or
iPhone running iOS 4 (or equivalent) in ldquolandscaperdquo view
or
iPad (or equivalent) in ldquoportraitrdquo view
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Mobile First w media queries Universal Layout
media screen
Styles for all screens
media only screen and (min-width481px)
Styles for all screens 480px+ width
media only screen and (min-width754px)
Styles for all screens 754px+ width
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
httpisgdlazyloading_demo
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltinput class=tweet-counter value=140 disabled=disabledgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan id=chars_left_notice class=numericgt
ltstrong id=status-field-char-counter
class=char-countergt140ltstronggt
ltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
hidden
position absolute
left 999em
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript
ltspan class=tweet-countergtmaximum of 140 charactersltspangt
ltspan class=tweet-countergt140
ltb class=hiddengt characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
ltspan aria-live=polite aria-atomic=true
class=tweet-countergt140ltb class=hiddengt
characters remainingltbgtltspangt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Complex interfaces
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Traditional approachlth1gtPumpkin Pielth1gtltdiv class=containergt ltdiv class=sectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltdivgt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Cleaner approachlth1gtPumpkin Pielth1gtltdiv class=tabbed-interfacegt lth2gtOverviewlth2gt ltimg src=piejpg alt= gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt lth2gtIngredientslth2gt ltulgt ltligt1 (9ltabbr title=inchgtinltabbrgt) unbaked deep dish pie crustltligt ltligt cup white sugarltligt lt-- --gt ltulgt lth2gtDirectionslth2gt lt-- --gtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Widget logic
Page
JSNoYes
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
On DOM readylth1gtPumpkin Pielth1gtltdiv class=tabbed-interface TabInterface-enabledgt ltsectiongt lth2gtOverviewlth2gt ltimg src=piejpg alt=gt ltpgtWhether youre hosting a festive party or a casual get-together with friends our Pumpkin Pie will make entertaining easyltpgt lt-- --gt ltsectiongt lt-- --gt ltul class=tabsgt ltligtlta href=gtOverviewltagtltligt ltligtlta href=gtIngredientsltagtltligt ltligtlta href=gtDirectionsltagtltligt ltligtlta href=gtNutritionltagtltligt ltulgtltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Adaptive UIltdiv class=tabbed-interface data-tab-threshold=800gt
lth2gtOverviewlth2gt
lt-- hellip --gt
lth2gtIngredientslth2gt
lt-- hellip --gt
lth2gtDirectionslth2gt
lt-- hellip --gt
lth2gtNutritionlth2gt
lt-- hellip --gt
ltdivgt
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JS
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNoYes
No
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
Split the content amp
make some tabs
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
Adaptive widget logic
Page
JSNo
YesYes
No
LIVE
Split the content amp
make some tabs
Untab (if tabbed)
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=applicationaria-activedescendant=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tablist
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=truearia-controls=folder-1
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIArole=tabaria-selected=falsearia-controls=folder-4
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
role=tabpanelaria-hidden=falsearia-labelledby=folder-1-tab
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
BUILDING ADAPTIVE DESIGNS NOW
PE with JavaScript amp ARIA
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
Text amp HTTP
HTML
CSS
JavaScript
ARIA
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
THANK YOUhttpreadlistscom7d414b24
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745
Building Adaptive Designs Nowby Aaron GustafsonAaronGustafson
Further readinghttpadaptivewebdesigninfo
httpblogeasy-designsnethttpmobilewebbestpracticescom
Slides available athttpslidesharenetAaronGustafson
This presentation is licensed underCreative Commons
Attribution-Noncommercial-Share Alike 30except where otherwise noted
flickr Photo Creditshttpwwwickrcomphotosaarongustafsongalleries72157629846428745