Upload
aaron-gustafson
View
108
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Everyone’s going gaga over HTML5 and the plethora of how-tos and demos available on the web are inspirational, but often leave us with more questions than answers. In this session, Aaron Gustafson will focus his attention on HTML5 as a markup language, provide you with a solid context for its enhanced semantics, and show you simple, effective ways you can put it to use on your site today.
Citation preview
Aaron GustafsonEasy Designs, [email protected]/AaronGustafson
Smart Markup for Smarter Websites
HTML5 gives you more controlover your documentsand apps
Paving our “cowpaths”
The process is ongoing…
…but the end is near.
2004 2014
June 2004WhatWG begins work on Web Applications 1.0
2007Work begins at W3C
2014HTML5 Standard?
May 2011HTML5 to Last Call
You can use it now
fault tolerancen. a system’s ability to continue to operate when it encounters and unexpected error.
Browsers ignore what they don’t
understand.
For example<input type="date" name="dob"/>
For example<video poster=”poster.png”> <source src=”video.m4v”/> <source src=”video.webm”/> <source src=”video.ogv”/> <img src=”poster.png” alt=””/> <ul> <li><a href="video.m4v">Download MP4</a></li> <li><a href="video.webm">Download WebM</a></li> <li><a href="video ogv">Download Ogg</a></li> </ul></video>
Now back to those cowpaths…
A great idea that we lost.
<fig> <img src="photo.jpeg" alt=""/> <caption>Photo of Albert Einstein</caption></fig>
The original concept in HTML3: http://www.w3.org/MarkUp/html3/figures.html
Albert Einstein
Microformats brought it back.
<div class="figure"> <img class="image" src="photo.jpeg" alt=""/> <p class="caption">Albert Einstein</p></div>
The original “figure” microformat.
Albert Einstein
HTML5 re-imagined it.
<figure> <img src="photo.jpeg" alt=""/> <legend>Albert Einstein</legend></figure>
The original HTML5 figure.
Albert Einstein
Microformats adapted.
<div class="figure"> <img class="image" src="photo.jpeg" alt=""/> <p class="captionlegend">Albert Einstein</p></div>
The revised (and now draft) “figure” microformat: http://microformats.org/wiki/figure
Albert Einstein
Microformats adapted.
<figure> <img src="photo.jpeg" alt=""/> <figcaption>Albert Einstein</figcaption></figure>
The current (dare I say final?) HTML5 figure.
Albert Einstein
What’s the easiest way towrite HTML5?
<!DOCTYPE html>
Use the new doctype
The HTML4 Lexicon
a
abbr
address area
blockquote
body
br
button
caption
code
col colgroup
dd
del
dfn
div
dl dt
fieldsetform
h1 h2 h3 h4 h5 h6
head
html
i
iframe img
input
ins
kbd
label
legend
li
link
map
meta
noscript
object ol
optgroupoption
pparam
pre q samp
script
select
span
style
sub
table
tbody
td
textarea
tfoot
th
thead
title
tr
ul
var
base
bdo b
cite
em
hr menu
small
strongsup
The HTML5 Lexicon
a
abbr
address area
blockquote
body
br
button
caption
code
col colgroup
dd
del
dfn
div
dl dt
fieldsetform
h1 h2 h3 h4 h5 h6
head
html
i
iframe img
input
ins
kbd
label
legend
li
link
map
meta
noscript
object ol
optgroupoption
pparam
pre q samp
script
select
span
style
sub
table
tbody
td
textarea
tfoot
th
thead
title
tr
ul
var
base
bdo b
cite
em
hr menu
small
strong
article
aside
audiocanvas
command
datalist
details
embed
figcaptionfigure
footerheader
hgroup
keygen
mark meter
nav
output progress
rprt
ruby
section
source
summary
time
video
wbr
sup
Our focus today
a
abbr
address area
blockquote
body
br
button
caption
code
col colgroup
dd
del
dfn
div
dl dt
fieldsetform
h1 h2 h3 h4 h5 h6
head
html
i
iframe img
input
ins
kbd
label
legend
li
link
map
meta
noscript
object ol
optgroupoption
pparam
pre q samp
script
select
span
style
sub
table
tbody
td
textarea
tfoot
th
thead
title
tr
ul
var
base
bdo b
cite
em
hr menu
small
strong
article
aside
audiocanvas
command
datalist
details
embed
figcaptionfigure
footerheader
hgroup
keygen
mark meter
nav
output progress
rprt
ruby
section
source
summary
time
video
wbr
sup
If only life were simpler…
Simplification
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
The html element
<html lang="en">
Simplification
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Character encoding
<meta charset="utf-8" />
Simplification
<link rel="stylesheet" href="style-original.css" type="text/css" /><style type=”text/css”> /* … */</style><script type=”text/javascript” src=”myscript.js”></script>
Styles and scripts
<link rel="stylesheet" href="style-original.css" /><style> /* … */</style><script src=”myscript.js”></script>
Metamorphosis
Nip/tuck
<p>HTML5 introduces several <em>really</em> useful elements and a ton of new APIs.</p>
The em elementRepresents a span of text text with emphatic stress.
<p>Please fill out the form below. <strong>Note: allfields are required.</strong></p>
The strong elementRepresents a span of text of great importance.
Evil incarnateThe small elementRepresents so-called “fine print” (e.g. disclaimers, caveats, etc.).
ClarificationThe cite elementThe title of a cited work (e.g. a book, magazine, or journal).
<p>In <cite>Web Form Design</cite>, Luke Wroblewski draws on original research, his considerable experience at Yahoo! and eBay, and the perspectives of many of the field’s leading designers to show you everything you need to know about designing effective and engaging Web forms.</p>
Resurrection
<p>This presentation is about <b>HTML5</b>.</p>
The b elementRepresents a span of text offset from its surrounding content, but of no extra importance.
<p>The <code>b</code> and <code>i</code> elementshave been legitimized in HTML5. <i>Go figure.</i></p>
The i elementRepresents a span of text in an alternate voice or mood.
Deeper meaningThe hr elementRepresents a paragraph-level thematic break.
Raw materials
The section elementRepresents a section of a document, typically with a title or heading.
The article elementRepresents a section of content that forms an independent part of a document or site.
<section> <!-- pretty much anything can go here --></section>
<article> <!-- pretty much anything can go here --></article>
Organization
section38
section > article39
40
article41
article > section42
The header elementRepresents the header of a section.
The footer elementRepresents the footer of a section.
<header> <!-- titles, etc. go here --></header>
<footer> <!-- meta/supplementary information goes here --></footer>
Organization
44
header45
46
footer47
article48
article > header49
article50
article > footer51
The nav elementDemarcates a group of navigational links.
<nav> <ol> <li><a href="#details">Details</a></li> <li><a href="#lodging">Lodging</a></li> <li><a href="#location">Location</a></li> <li><a href="#topics">Topics</a></li> <li><a href="#contact">Contact Us</a></li> </ol> <p><a href="register">Register Now</a> <b>Only 5 spaces left</b></p></nav>
Organization
53
nav54
55
nav56
The aside elementDemarcates content that is tangentially related to the primary content.
<article>
<!-- main content -->
<aside> <!-- something related --> </aside>
</article>
Organization
58
aside59
The details elementA UI control for hiding optional content. Must contain a summary element, followed by other content.
<details> <summary>This is the visible description</summary> <p>This content would be hidden by default.</p></details>
It’s not implemented in any browser yet, this is just an example of how it could work. (Ripped from http://2010.full-frontal.org).
Organization
The figure elementA unit of content (typically referenced by the primary content) that is self-contained. May contain a figcaption element and other content.
<figure id="fig-2"> <table> <caption>2011 Forecast Earnings</caption> <!-- a bunch of data --> </table></figure>
<figure id="fig-1"> <img src="photo.jpeg" alt=""/> <figcaption>Photo of Albert Einstein</figcaption></figure>
Organization
Refining the outline
<h1> HTML5<p> HTML5 is currently under development...<p> Like its immediate predecessors, HTML...
<h2> W3C standardization process<p> The Web Hypertext Application...<p> The HTML5 specification...<p> According to the W3C timetable...<p> Ian Hickson, editor of the HTML5...
<h2> Markup<p> HTML5 introduces a number of...<p> The HTML5 syntax is no longer...
A snippet of the Wikipedia entry on HTML5: http://en.wikipedia.org/wiki/HTML5
1 HTML51.1 W3C standardization process1.2 Markup
Implicit sections
<h1> HTML5<p> HTML5 is currently under development...<p> Like its immediate predecessors, HTML...
<h2> W3C standardization process<p> The Web Hypertext Application...<p> The HTML5 specification...<p> According to the W3C timetable...<p> Ian Hickson, editor of the HTML5...
<h2> Markup<p> HTML5 introduces a number of...<p> The HTML5 syntax is no longer...
A snippet of the Wikipedia entry on HTML5: http://en.wikipedia.org/wiki/HTML5
sect
ion
sect
ion
1 HTML51.1 W3C standardization process1.2 Markup
Explicit sections
<h1> HTML5<p> HTML5 is currently under development...<p> Like its immediate predecessors, HTML...
<h1> W3C standardization process<p> The Web Hypertext Application...<p> The HTML5 specification...<p> According to the W3C timetable...<p> Ian Hickson, editor of the HTML5...
<h1> Markup<p> HTML5 introduces a number of...<p> The HTML5 syntax is no longer...
A snippet of the Wikipedia entry on HTML5: http://en.wikipedia.org/wiki/HTML5
sect
ion
sect
ion
1 HTML51.1 W3C standardization process1.2 Markup
Explicit sections
<h1> HTML5<p> HTML5 is currently under development...<p> Like its immediate predecessors, HTML...
<h4> W3C standardization process<p> The Web Hypertext Application...<p> The HTML5 specification...<p> According to the W3C timetable...<p> Ian Hickson, editor of the HTML5...
<h6> Markup<p> HTML5 introduces a number of...<p> The HTML5 syntax is no longer...
A snippet of the Wikipedia entry on HTML5: http://en.wikipedia.org/wiki/HTML5
1 HTML51.1 W3C standardization process1.2 Markup
sect
ion
sect
ion
Explicit sections
Create explicit sections in an outline.๏ section (obviously)๏ article๏ aside๏ footer๏ header๏ nav
Sectioning elements
1 Title1.1 Subtitle
<h1> Title<h2> Subtitle<p> Text content continues...<p> Text content continues...<p> Text content continues...<p> Text content continues...<p> Text content continues...<p> Text content continues...<p> Text content continues...
Outline limitations
<h1> Title<h2> Subtitle<p> Text content continues...<p> Text content continues...<p> Text content continues...<p> Text content continues...<p> Text content continues...<p> Text content continues...<p> Text content continues...
hgro
up
1 Title
Heading groups FTW!
Establish a new outline.๏ body (obviously)๏ blockquote๏ details๏ fieldset๏ figure๏ td
Sectioning roots
1 Title1.1 Section heading
<h1> Title<p> Text content continues...<p> Text content continues...
<h2> Section heading<p> Text content continues...<blockquote> <h2> Rooted heading <p> Text content continues... <p> Text content continues...<p> Text content continues...<p> Text content continues...
Rooted sections
New elements to consider
The time elementRepresents a date and/or time.
When?
74
time75
The time elementRepresents a date and/or time.
When?
<time>October 25, 2010 8:11 PM</time>
The time elementRepresents a date and/or time.
When?
<time>October 25, 2010 8:11 PM</time>
<time datetime="2010-10-25T20:11:00-05:00"> October 25, 2010 8:11 PM</time>
The time elementRepresents a date and/or time.
When?
<time>October 25, 2010 8:11 PM</time>
<time datetime="2010-10-25T20:11:00-05:00"> October 25, 2010 8:11 PM</time>
<time datetime="2010-10-25T20:11:00-05:00" pubdate="pubdate">October 25, 2010 8:11 PM</time>
The mark elementRepresents a run of text in one document marked or highlighted for reference purposes, due to its relevance in another context.
<ol id="search-results"> <li> <h3><a href="...">Web Upgrade <mark>HTML5</mark> May Weaken Privacy</a></h3> <p>The new language, <mark>HTML5</mark>, could give marketers access to many more details about users' online activities.</p> </li></ol>
Highlighting
80
81
mark82
83
mark
More usable forms
<input type=”datetime”>A UI control for selecting a date and time that includes timezone information.
<input type=”datetime-local”>A UI control for selecting a date and time that does not include timezone information.
<input type=”date”>A UI control for selecting a date with access to all date components (day, month and year).
<input type=” month”>A UI control for selecting a date that provides access to month and year only.
<input type=”time”>A UI control for selecting a time that does not include timezone information.
<input type=”week”>A UI control for selecting a date that provides access to week and year only.
Dates and times
<input type="date" name="dob"/>
Safari
Opera
Dates and times
<input type=”number”>A UI control for selecting a number.
<input type=”range”>A UI control for selecting an imprecise number.
Numbers
<input type="number" name="foo"/>
<input type="range" min="1" max="11" name="foo"/>
Numbers
<input type=”email”>A UI control for entering an email.
<input type=”url”>A UI control for entering a URL.
<input type=”tel”>A UI control for entering a telephone number.
New types
New types
<input type="email" …/> <input type="url" …/>
autocompleteTells the User Agent whether or not the value should be stored.
autofocusTells the User Agent to bring focus to the form control on page load.
formAn id reference to the form to which a given control belongs.
requiredIndicated the form control must be provided a value.
placeholderOffers users a short hint about the required value.
UI control attributes
min and maxLower and upper boundary for an element value (dates, time, and numbers only).
stepThe granularity of values allowed (dates, time, and numbers only).
Value control
<input type="range" min="1" max="11" step="0.5" .../>
patternA regular expression pattern that the User Agent should validate the input against.
Value control
<input type="text" pattern="\d{6}\w{3}" placeholder="6 digits followed by 3 letters" .../>
patternAn id reference to a datalist element containing acceptable values.
Value control
<input type="text" list="countries" name="country"/><datalist id="countries"> <option>Afghanistan</option> <option>Åland Islands</option> <!-- ... --></datalist>
95
Truth based on perspective
?
<button>Tweet</button>
<button>Tweet</button><a class=”button”>Tweet</a>
?
<button>Search Mail</button>
<button>Search Mail</button><div>Search Mail</div>
ARIA maps the OS to the web
Semantics+
Landmarks help users navigate quickly
The role attributeDefines the part an element is playing (assuming it’s different than the semantics would otherwise imply).
<section id="main" role="main"> <!-- The primary content for the page would go here --></section>
All the site’s a play...
<header role="banner">
<nav role="navigation">
<form role="search">
<section role="main">
<footer role="contentinfo">
<nav role="navigation">
<aside role="complementary">
Landmark rolesapplicationA region of the page representing a unique software unit executing a set of tasks for its users. It is an area where assistive technologies should also return browse navigation keys back over to the web application in this region.
bannerA region that contains the prime heading or internal title of a page.
complementaryA supporting section of the document that remains meaningful even when separated from the main content.
contentinfoMetadata that applies to the parent document.
formA region of the document that represents a collection of form-associated elements.
mainnavigationsearch
Landmark rolesmainThe main content of a document.
navigationA collection of navigational elements (usually links) for navigating the document or related documents.
searchThe search tool of a web document.
Structural rolesarticlecolumnheaderdefinitiondirectorydocumentgroupheadingimglistlistitemmathnotepresentationregionrowrowheaderseparator
<article role="article">
Structural rolesarticleA section of a page that forms an independent part of a document, page, or site.
groupA set of user interface objects which are not intended to be included in a page summary or table of contents by assistive technologies.
noteA section whose content is parenthetic or ancillary to the main content of the resource.
presentationAn element whose implicit native semantics will not be mapped to the accessibility API.
regionA large perceivable section of a web page or document, that the author feels is important enough to be included in a page summary or table of contents.
separatorA divider that separates and distinguishes sections of content or groups of menu items.
Semantic comparisonAd-hoc ARIA Role HTML5
#header, #top banner header (kind of)
#main, #content main none
#extra, .sidebar complementary, note aside
#footer, #bottom contentinfo footer
#nav navigation nav
.hentry article article
What is this!?
<span role="button">OK</span>
Widget roles
<span role="button">OK</span>
Widget roles
(of course <button>OK</button> would be better)
<span role="button">OK</span>
Widget roles
(of course <button>OK</button> would be better)
<div role="alert"> <p>Something went wrong.</p></div>
<span role="button">OK</span>
Widget roles
(of course <button>OK</button> would be better)
<div role="alert"> <p>Something went wrong.</p></div>
<div role="alertdialog"> <p>Something went wrong.</p> <img src="x.png" alt="dismiss" role="button" /></div>
<a class=”button”>Tweet</a>
<a role=”button”>Tweet</a>
role="application"aria-activedescendant="folder-1"
role="tablist"
role="tab"aria-selected="true"aria-controls="folder-1"
role="tab"aria-selected="false"aria-controls="folder-4"
role="tabpanel"aria-hidden="false"aria-labelledby="folder-1-tab"
What’s going on!?
<span> <img src="bold-off.png" alt="bold" /></span><span> <img src="bold-on.png" alt="bold" /></span>
B(off)
B(on)
Widget states
<span> <img src="bold-off.png" alt="not bold" /></span><span> <img src="bold-on.png" alt="bold" /></span>
B(off)
B(on)
Widget states
<span role="button" aria-pressed="false"> <img src="bold-off.png" alt="not bold" /></span><span role="button" aria-pressed="true"> <img src="bold-on.png" alt="bold" /></span>
B(off)
B(on)
Widget states
aria-busyaria-checkedaria-disabledaria-expandedaria-grabbedaria-hiddenaria-invalidaria-pressedaria-selectedaria-valuenow (the W3C defines this as a “property”)aria-valuetext (ditto)
Widget states
Highlighting living content
Live regions
Live regions
<input class="tweet-counter" value="140" disabled="disabled">
Live regions
<span id="chars_left_notice" class="numeric"> <strong id="status-field-char-counter" class="char-counter">140</strong></span>
Live regions
<span class="tweet-counter">140 <b class="hidden"> characters remaining</b></span>
.hidden { position: absolute; left: −999em;}
Live regions
<span class="tweet-counter">maximum of 140 characters</span>
<span class="tweet-counter">140 <b class="hidden"> characters remaining</b></span>
Live regions
<span aria-live="polite" aria-atomic="true" class="tweet-counter">140<b class="hidden"> characters remaining</b></span>
Live regions
Notification optionsoffchange not announced
politechange announced after user completes her current activity
assertiveuser agent should interrupt the user’s activity, but not immediately
Who is Supporting WAI-ARIA?
Music to our ears
The audio element
<audio src="my.oga" controls="controls"></audio>
Can you hear me now?
Can you hear me now?Browser .aac .mp3 .oga .wav
Chrome 6+ YES YES YES NO
Firefox 3.6+ NO NO YES YES
Internet Explorer 9+ YES YES NO YES
Opera 10.5+ NO NO YES YES
Safari 5+ YES YES NO YES
<audio controls="controls"> <source src="my.mp3"/> <source src="my.oga"/> <!-- fallback --></audio>
Can you hear me now?
Available attributessrcURL for the audio file.
autoplayA boolean specifying whether or not the file should play as soon as it can.
loopA boolean specifying whether or not playback of the file should be repeated.
controlsA boolean that tells the browser to use its default media controls.
preloadTells the browser what to content to preload. Options: “none,” “metadata,” and “auto.”
autobuffer (deprecated)A boolean defining whether the file should be buffered in advance. Replaced by preload.
<audio controls="controls" autobuffer="autobuffer" preload="auto"> <source src="my.mp3"/> <source src="my.oga"/> <!-- fallback --></audio>
Can you hear me now?
<audio controls="controls" autobuffer="autobuffer" preload="auto"> <source src="my.mp3"/> <source src="my.oga"/> <ul> <li><a href="my.mp3">Download as audio/mp3</a></li> <li><a href="my.oga">Download as audio/ogg</a></li> </ul></audio>
Fallback options
<audio controls="controls" autobuffer="autobuffer" preload="auto"> <source src="my.mp3"/> <source src="my.oga"/> <object …> <!-- flash player goes here --> </object></audio>
Fallback options
$('audio').each(function(){ var $audio = $(this), media = {}, formats = []; $audio.find('source').each(function(){ var src = $(this).attr('src'), ext = src.split('.').pop(); media[ext] = src; formats.push(ext); }); $audio.jPlayer({ swfPath: '/vendors/jPlayer', ready: function(){ $audio.jPlayer('setMedia', media); }, supplied: formats.join(', ') }); });
Fallback options
Using jQuery & jPlayer
$('audio').each(function(){ var audio = this, $button = $('<button>Play</button>') .click(function(){ audio.play(); }); $(this) .removeAttr('controls') .after($button); });
Roll your own
Using jQuery
Opiate of the masses
The video element
<video src="my.ogv" controls="controls"></video>
Elementary, my dear Watson
Not so elementaryVideo file = container file (like ZIP)
๏ 1 video track๏ 1 (or more) audio tracks๏ metadata๏ subtitle/caption tracks (optional)
Not so elementaryVideo formatsFlash Video (.flv)Prior to 2008, the only video format supported in Adobe Flash.
MPEG 4 (.m4v or .mp4)Based on QuickTime; iTunes uses this format.
Ogg (.ogv)Open source container format.
WebM (.webm)New format announced in May 2010.
Not so elementaryVideo codecsH.264Used primarily in MPEG 4. Only video codec natively supported on iOS. Patented.
TheoraUsed primarily in Ogg. Royalty free. Supported in Firefox 3.5+ (in Ogg).
VP8Used primarily in WebM. Owned by Google, but licensed royalty-free.
Not so elementaryAudio codecsMP3Nearly universal in usage, but was part of FLV. Patented.
AAC (Advanced Audio Coding)Used primarily in MP4. Patented.
VorbisUsed in Ogg audio & video as well as WebM. Royalty-free.
Not so elementaryBrowser .m4v
(AAC + H.264)
.ogv(Vorbis + Theora)
.webm(Vorbis + VP8)
Chrome 3+(for now)
3+ 6+
Firefox NO 3.5+ 4+
Internet Explorer 9+ NO MAYBE
Opera NO 10.5+ 10.6+
Safari 3.1+ MAYBE MAYBE
<video controls="controls" width="640" height="480"> <source src="my.m4v"/> <source src="my.webm"/> <source src="my.ogv"/> <!-- fallback --></video>
Format juggling
<video controls="controls" width="640" height="480" poster="my.png"> <source src="my.m4v"/> <source src="my.webm"/> <source src="my.ogv"/> <!-- fallback --></video>
A good first impression
<video controls="controls" width="640" height="480" poster="my.png"> <source src="my.m4v" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'/> <source src="my.webm" type='video/webm; codecs="vp8, vorbis"'/> <source src="my.ogv" type='video/ogg; codecs="theora, vorbis"'/> <!-- fallback --></video>
Kindness to strangers
Note: The MPEG 4 codec will depend on the encoding “profiles” you use.
Available attributessrcURL for the audio file.
autoplayA boolean specifying whether or not the file should play as soon as it can.
loopA boolean specifying whether or not playback of the file should be repeated.
controlsA boolean that tells the browser to use its default media controls.
posterThe image to be shown while the video is not activated.
preloadTells the browser what to content to preload. Options: “none,” “metadata,” and “auto.”
autobuffer (deprecated)A boolean defining whether the file should be buffered in advance. Replaced by preload.
AddType video/ogg .ogvAddType video/mp4 .mp4AddType video/webm .webm
No MIME, no service
<video width="600" height="400" poster="/r/2-5.png" controls="controls" preload="none"> <source src="/r/2-5.m4v" type="video/mp4"/> <source src="/r/2-5.webm" type="video/webm"/> <source src="/r/2-5.ogv" type="video/ogg"/> <img src="/r/2-5.png" width="600" height="400" alt=""/> <ul> <li><a href="/r/2-5.m4v">Download as video/mp4</a></li> <li><a href="/r/2-5.webm">Download as video/webm</a></li> <li><a href="/r/2-5.ogv">Download as video/ogg</a></li> </ul></video>
Fallback options
<video width="600" height="400" poster="/r/2-5.png" controls="controls" preload="none"> <source src="/r/2-5.m4v" type="video/mp4"/> <source src="/r/2-5.webm" type="video/webm"/> <source src="/r/2-5.ogv" type="video/ogg"/> <object width="600" height="400" type="application/x-shockwave-flash" data="flowplayer-3.2.1.swf"> <param name="movie" value="flowplayer-3.2.1.swf"/> <param name="allowfullscreen" value="true"/> <param name="flashvars" value='config={"clip": {"url": "/r/2-5.m4v", "autoPlay":false, "autoBuffering":true}}'/> <img src="/r/2-5.png" width="600" height="400" alt=""/> <ul><!-- links --></ul> </object></video>
Fallback options
For More:@AaronGustafson
http://adaptivewebdesign.infohttp://easy-designs.nethttp://easy-reader.net
Slides available athttp://slideshare.net/AaronGustafson
This presentation is licensed underCreative Commons Attribution-Noncommercial-Share Alike 3.0
flickr Photo Credits“2008 06 11 - 3257 - Washington DC - N Portal Dr at 16th St.” by thisisbossi
“Aruba” by Salvatore.Freni“IMG_6200” by pcutler
“Construction material” by raisin bun“TOC” by D'Arcy Norman
“HTML5 logo in Braille” by Ted Drake“Dual Samsung Monitors” by steve-uk
“Statue of liberty” by gadl“Lego creation” by MiikaS
“iFlickr touch screen” by exfordy“Green Plant” by kevin1024“08-jan-28” by sashafatcat
“Revere EIGHT - 8mm…” by Kevitivity