SlideShare a Scribd company logo
HTML5 and a11y
Sitting in a tree
Bruce Lawson
HTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a tree
Biscuit and Chica photograph by Brittany Shaw. All rights reserved. Used with permission
30 new elements
HTML5 and Accessibility sitting in a tree
Top 20 class names
   1. footer                                       11. button
   2. menu                                          12. main
   3. style1                                       13. style3
4. msonormal                                        14. small
    5. text                                          15. nav
  6. content                                        16. clear
    7. title                                       17. search
   8. style2                                       18. style4
  9. header                                         19. logo
10. copyright                                       20. body
     http://devfiles.myopera.com/articles/572/classlist-url.htm
Top 20 id names
    1. footer                                        11. search
   2. content                                         12. nav
    3. header                                      13. wrapper
      4. logo                                         14. top
  5. container                                      15. table2
     6. main                                        16. layer2
    7. table1                                      17. sidebar
     8. menu                                       18. image1
    9. layer1                                       19. banner
10. autonumber1                                   20. navigation
      http://devfiles.myopera.com/articles/572/idlist-url.htm
HTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a tree
<content> ?
HTML5 forms
      standardise commonly-used
rich form elements – without JavaScript
built-in validation
           (of course you should still validate on the server)

                 <input type=email>
             <input type=url required>
         <input type=range min=10 max=100>
 <input type=date min=2010-01-01 max=2010-12-31>
<input pattern="[0-9][A-Z]{3}" placeholder="9AAA">

     http://people.opera.com/brucel/demo/html5-forms-demo.html
HTML5 and Accessibility sitting in a tree
HTML5 and Accessibility sitting in a tree
<video> and <audio>
Anne van Kesteren annevk at opera.com
Wed Feb 28 05:47:56 PST 2007

Hi,
Opera has some internal expiremental builds with an implementation of a <video> element. The element
exposes a simple API (for the moment) much like the Audio() object:
  play()
  pause()
  Stop()

The idea is that it works like <object> except that it has special <video> semantics much like <img> has
image semantics. In markup you could prolly use it as follows:

 <figure>
  <video src=news-snippet.ogg>
   ...
  </video>
  <legend>HTML5 in BBC News</legend>
 </figure>

I attached a proposal for the element and as you can see there are still some open issues. The element and
its API are of course open for debate. We're not enforcing this upon the world ;-)

Cheers,
          http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2007-February/009702.html
<object width="425" height="344">
  <param name="movie"
value="http://www.example.com/v/9sEI1AUFJKw&hl=en
&fs=1&"></param>
  <param name="allowFullScreen"
value="true"></param>
  <param name="allowscriptaccess"
value="always"></param>
  <embed
src="http://www.example.com/v/9sEI1AUFJKw&hl=en&f
s=1&" type="application/x-shockwave-flash"
allowscriptaccess="always" allowfullscreen="true"
width="425" height="344"></embed>
</object>
<video src=pudding.webm
  controls
  autoplay
  poster=poster.jpg
  width=320 height=240>
    <a href=video.webm>Download movie</a>
</video>
<audio src=jedward.ogg
  controls
  autoplay>
     <a href=jedward.ogg>Download horrid pap</a>
</audio>
<video src=pudding.webm loop>
<audio   src=jedward.ogg   preload>
<audio   src=jedward.ogg   preload=auto>
<audio   src=jedward.ogg   preload=none>
<audio   src=jedward.ogg   preload=metadata>
HTML5 and Accessibility sitting in a tree
powerful (simple) API
controlling <video> with JavaScript
var v = document.getElementByTagName('video')
[0];

v.play();
v.pause();
v.volume = … ;
v.currentTime = … ;
…
events fired by <video>
var v = document.getElementById('player');

v.addEventListener('loadeddata', function() { … }, true)
v.addEventListener('play', function() { … }, true)
v.addEventListener('pause', function() { … }, true)
v.addEventListener('timeupdate', function() { … }, true)
v.addEventListener('ended', function() { … }, true)
…
video as native object...why is it important?

●
    keyboard accessibility built-in
●
    “play nice” with rest of the page
●
    Simple API for controls
HTML5 and Accessibility sitting in a tree
video formats

               webM            Ogg/ Theora    mp4/ h264

Opera            yes               yes

Chrome           yes               yes           Nope
                                             (Chrome.soon)
Firefox      Yes (FF4)             yes

Safari                                            yes

IE9       Yes (if installed)                      yes
audio formats

          mp3      Ogg/ Vobis   wav

Opera                 yes       yes

Chrome     yes        yes

Firefox               yes       yes

Safari     yes                  yes

IE9       yes                   no
Giving everybody video

<video controls autoplay poster=… width=… height=…>
  <source src=pudding.mp4 type=video/mp4>
  <source src=pudding.webm type=video/webm>
  <source src=pudding.ogv type=video/ogg>
  <!-- fallback content -->
</video>
<video controls poster="…" width="…" height="…">
   <source src="movie.mp4" type="video/mp4" />
   <source src="movie.webm" type="video/webm" />
   <source src="movie.ogv" type="video/ogg" />

   <object width="…" height="…" type="application/x-
shockwave-flash" data="player.swf">
      <param name="movie" value="player.swf" />
      <param name="flashvars" value=" … file=movie.mp4" />
      <!-- fallback content -->
   </object>

</video>




       still include fallback for old browsers
            http://camendesign.com/code/video_for_everybody
Help
●
    archive.org converts and hosts creative-commons
    licensed media
●   vid.ly has a free conversion/ hosting service (max 1GB
    source file) see vid.ly/5u4h3e
●   Miro video converter is a drag and drop GUI skin on
    FFMPEG
Full-screen video
●
  Currently, WebkitEnterFullscreen();
●
  May 11, WebKit announced it's implementing Gecko API
  https://wiki.mozilla.org/Gecko:FullScreenAPI
●
  Opera likes this approach, too
<video> accessibility
HTML5 and Accessibility sitting in a tree
WebM release does not support subtitles




WHATWG / W3C RFC will release guidance on subtitles and other
overlays in HTML5 <video> in the near future. WebM intends to follow
that guidance.




 http://code.google.com/p/webm/issues/detail?id=11
 Egg image Kacper "Kangel" Aniołek http://commons.wikimedia.org/wiki/File:Egg.jpg
<track> element

<video controls poster=… width=… height=…>
    <source src=movie.webm type=video/webm>
    <track src=subtitles-en.vtt kind=subtitles srclang=en>
    <track src=subtitles-de.vtt kind=subtitles srclang=de>
    <!-- fallback content -->
</video>


http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-track-element
webVTT

WEBVTT FILE

1
01:23:45,678 --> 01:23:46,789
Hello world!

2
01:23:48,910 --> 01:23:49,101
Hello
World!
WebVTT formatting

 Supports positioning of text
   Supports <b> and <i>
Colouring individual speakers
    Support vertical text
        Supports RTL
 Supports ruby annotations
<track> polyfill
http://www.delphiki.com/html5/playr/
Synchronising media elements
                               @mediagroup
www.whatwg.org/specs/web-apps/current-work/multipage/video.html#synchronising-multiple-
                                  media-elements
getUserMedia API
(previously known as "HTML5 <device>")
my.opera.com/core/blog/2011/03/23/webcam-orientation-preview
WebRTC is a free, open project that enables web browsers
   with Real-Time Communications (RTC) capabilities via
simple Javascript APIs. The WebRTC components have been
           optimized to best serve this purpose.

  The WebRTC initiative is a project supported by Google,
                   Mozilla and Opera.

                       http://sites.google.com/site/webrtc/
http://www.whatwg.org/specs/web-apps/current-work/complete/video-conferencing-
                     and-peer-to-peer-communication.html
HTML5 and Accessibility sitting in a tree
All rights reserved corner

 Thanks Takara Tomy for permission to use Gigapudding
                video. Buy the pudding.
  HTML5 nazi-killing Bruce on unicorn picture by Marina
             Lawson. Buy her Dad's book.
Thanks Brittany Shaw for permission to use her Biscuit and
              Chica photo. Buy a rabbit pie.


       All others by me or (I believe) public domain.
brucel@opera.com
     @brucel

More Related Content

What's hot (20)

PDF
HTML5 and friends - Institutional Web Management Workshop 2010
Patrick Lauke
 
PDF
Building an HTML5 Video Player
Jim Jeffers
 
PDF
Keypoints html5
dynamis
 
PDF
State of jQuery '09
jeresig
 
PDF
HTML5 kickstart - Brooklyn Beta workshop 21.10.2010
Patrick Lauke
 
PDF
HTML5, The Open Web, and what it means for you - Altran
Robert Nyman
 
PDF
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
Luciano Resende
 
PDF
So you want to build a Facebook app
kamal.fariz
 
PPTX
Progressive Web Apps - Intro & Learnings
Johannes Weber
 
PDF
Sencha Touch e PhoneGap: SouJava - IBM Maio 2013
Loiane Groner
 
PDF
Fisl 11 - Dicas de Desenvolvimento Web com Ruby
Fabio Akita
 
PDF
HTML5 multimedia - where we are, where we're going
brucelawson
 
PDF
Web Apps and more
Yan Shi
 
PDF
jQuery UI and Plugins
Marc Grabanski
 
ODP
Pyramid Lighter/Faster/Better web apps
Dylan Jay
 
PDF
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Fabio Akita
 
PDF
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dee Sadler
 
PPT
WordPress and Ajax
Ronald Huereca
 
KEY
HTML5 Video Player - HTML5 Dev Conf 2012
steveheffernan
 
PDF
Game Development Using HTML 5
osa_ora
 
HTML5 and friends - Institutional Web Management Workshop 2010
Patrick Lauke
 
Building an HTML5 Video Player
Jim Jeffers
 
Keypoints html5
dynamis
 
State of jQuery '09
jeresig
 
HTML5 kickstart - Brooklyn Beta workshop 21.10.2010
Patrick Lauke
 
HTML5, The Open Web, and what it means for you - Altran
Robert Nyman
 
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
Luciano Resende
 
So you want to build a Facebook app
kamal.fariz
 
Progressive Web Apps - Intro & Learnings
Johannes Weber
 
Sencha Touch e PhoneGap: SouJava - IBM Maio 2013
Loiane Groner
 
Fisl 11 - Dicas de Desenvolvimento Web com Ruby
Fabio Akita
 
HTML5 multimedia - where we are, where we're going
brucelawson
 
Web Apps and more
Yan Shi
 
jQuery UI and Plugins
Marc Grabanski
 
Pyramid Lighter/Faster/Better web apps
Dylan Jay
 
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Fabio Akita
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dee Sadler
 
WordPress and Ajax
Ronald Huereca
 
HTML5 Video Player - HTML5 Dev Conf 2012
steveheffernan
 
Game Development Using HTML 5
osa_ora
 

Similar to HTML5 and Accessibility sitting in a tree (20)

PDF
Disruptive code
brucelawson
 
PDF
HTML5 Multimedia: where we are, where we're going
brucelawson
 
PDF
Schöne neue Welt von HTML5 - MultimediaTreff 28 - Köln 03.12.2011
Patrick Lauke
 
PDF
Html5 oslo-code-camp
brucelawson
 
PDF
Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010
Patrick Lauke
 
PDF
HTML5 and friends - standards>next Manchester 24.11.2010
Patrick Lauke
 
PDF
HTML5 and friends - JISC CETIS Conference 2010 Nottingham 15.11.2010
Patrick Lauke
 
PDF
Leave No One Behind with HTML5 - FFWD.PRO, Croatia
Robert Nyman
 
PDF
Echo HTML5
Nathan Smith
 
PDF
Attractive HTML5~開発者の視点から~
Sho Ito
 
PDF
HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...
Patrick Lauke
 
PDF
Html5 intro
Kevin DeRudder
 
PDF
Speak The Web: The HTML5 Experiments
guestd427df
 
PPTX
The Rich Standard: Getting Familiar with HTML5
Todd Anglin
 
PPTX
Html5 browser api_support
상길 안
 
PDF
Web Directions @media 2010
Patrick Lauke
 
PDF
Multimedia on the web - HTML5 video and audio
Christian Heilmann
 
KEY
HTML5와 모바일
ACCESS
 
PDF
Mobile Web Video
Sarah Allen
 
PDF
WordCamp Thessaloniki2011 The NextWeb
George Kanellopoulos
 
Disruptive code
brucelawson
 
HTML5 Multimedia: where we are, where we're going
brucelawson
 
Schöne neue Welt von HTML5 - MultimediaTreff 28 - Köln 03.12.2011
Patrick Lauke
 
Html5 oslo-code-camp
brucelawson
 
Brave new world of HTML5 - WebTech 2010 Milano 09.11.2010
Patrick Lauke
 
HTML5 and friends - standards>next Manchester 24.11.2010
Patrick Lauke
 
HTML5 and friends - JISC CETIS Conference 2010 Nottingham 15.11.2010
Patrick Lauke
 
Leave No One Behind with HTML5 - FFWD.PRO, Croatia
Robert Nyman
 
Echo HTML5
Nathan Smith
 
Attractive HTML5~開発者の視点から~
Sho Ito
 
HTML5 APIs - native multimedia support and beyond - University of Leeds 05.05...
Patrick Lauke
 
Html5 intro
Kevin DeRudder
 
Speak The Web: The HTML5 Experiments
guestd427df
 
The Rich Standard: Getting Familiar with HTML5
Todd Anglin
 
Html5 browser api_support
상길 안
 
Web Directions @media 2010
Patrick Lauke
 
Multimedia on the web - HTML5 video and audio
Christian Heilmann
 
HTML5와 모바일
ACCESS
 
Mobile Web Video
Sarah Allen
 
WordCamp Thessaloniki2011 The NextWeb
George Kanellopoulos
 
Ad

More from brucelawson (15)

PDF
Bruce Lawson: Progressive Web Apps: the future of Apps
brucelawson
 
PDF
Leveraging HTML 5.0
brucelawson
 
PDF
HTML5 Multimedia Accessibility
brucelawson
 
PDF
Why Open Web Standards are cool and will save the world. Or the Web, at least.
brucelawson
 
PDF
Web Anywhere: Mobile Optimisation With HTML5, CSS3, JavaScript
brucelawson
 
PDF
W3C Widgets: Apps made with Web Standards
brucelawson
 
PDF
Bruce lawson-html5-aria-japan
brucelawson
 
PDF
HTML5 and CSS 3
brucelawson
 
PDF
Bruce lawson Stockholm Geek Meet
brucelawson
 
PDF
Bruce lawson-over-the-air
brucelawson
 
PDF
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
brucelawson
 
ODP
Bruce Lawson HTML5 South By SouthWest presentation
brucelawson
 
ODP
Practical Tips for Mobile Widget development
brucelawson
 
PDF
Bruce Lawson Opera Indonesia
brucelawson
 
PDF
Standards.next: HTML - Are you mything the point?
brucelawson
 
Bruce Lawson: Progressive Web Apps: the future of Apps
brucelawson
 
Leveraging HTML 5.0
brucelawson
 
HTML5 Multimedia Accessibility
brucelawson
 
Why Open Web Standards are cool and will save the world. Or the Web, at least.
brucelawson
 
Web Anywhere: Mobile Optimisation With HTML5, CSS3, JavaScript
brucelawson
 
W3C Widgets: Apps made with Web Standards
brucelawson
 
Bruce lawson-html5-aria-japan
brucelawson
 
HTML5 and CSS 3
brucelawson
 
Bruce lawson Stockholm Geek Meet
brucelawson
 
Bruce lawson-over-the-air
brucelawson
 
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
brucelawson
 
Bruce Lawson HTML5 South By SouthWest presentation
brucelawson
 
Practical Tips for Mobile Widget development
brucelawson
 
Bruce Lawson Opera Indonesia
brucelawson
 
Standards.next: HTML - Are you mything the point?
brucelawson
 
Ad

Recently uploaded (20)

PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 

HTML5 and Accessibility sitting in a tree

  • 1. HTML5 and a11y Sitting in a tree Bruce Lawson
  • 4. Biscuit and Chica photograph by Brittany Shaw. All rights reserved. Used with permission
  • 7. Top 20 class names 1. footer 11. button 2. menu 12. main 3. style1 13. style3 4. msonormal 14. small 5. text 15. nav 6. content 16. clear 7. title 17. search 8. style2 18. style4 9. header 19. logo 10. copyright 20. body http://devfiles.myopera.com/articles/572/classlist-url.htm
  • 8. Top 20 id names 1. footer 11. search 2. content 12. nav 3. header 13. wrapper 4. logo 14. top 5. container 15. table2 6. main 16. layer2 7. table1 17. sidebar 8. menu 18. image1 9. layer1 19. banner 10. autonumber1 20. navigation http://devfiles.myopera.com/articles/572/idlist-url.htm
  • 12. HTML5 forms standardise commonly-used rich form elements – without JavaScript
  • 13. built-in validation (of course you should still validate on the server) <input type=email> <input type=url required> <input type=range min=10 max=100> <input type=date min=2010-01-01 max=2010-12-31> <input pattern="[0-9][A-Z]{3}" placeholder="9AAA"> http://people.opera.com/brucel/demo/html5-forms-demo.html
  • 17. Anne van Kesteren annevk at opera.com Wed Feb 28 05:47:56 PST 2007 Hi, Opera has some internal expiremental builds with an implementation of a <video> element. The element exposes a simple API (for the moment) much like the Audio() object: play() pause() Stop() The idea is that it works like <object> except that it has special <video> semantics much like <img> has image semantics. In markup you could prolly use it as follows: <figure> <video src=news-snippet.ogg> ... </video> <legend>HTML5 in BBC News</legend> </figure> I attached a proposal for the element and as you can see there are still some open issues. The element and its API are of course open for debate. We're not enforcing this upon the world ;-) Cheers, http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2007-February/009702.html
  • 18. <object width="425" height="344"> <param name="movie" value="http://www.example.com/v/9sEI1AUFJKw&hl=en &fs=1&"></param> <param name="allowFullScreen" value="true"></param> <param name="allowscriptaccess" value="always"></param> <embed src="http://www.example.com/v/9sEI1AUFJKw&hl=en&f s=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed> </object>
  • 19. <video src=pudding.webm controls autoplay poster=poster.jpg width=320 height=240> <a href=video.webm>Download movie</a> </video>
  • 20. <audio src=jedward.ogg controls autoplay> <a href=jedward.ogg>Download horrid pap</a> </audio>
  • 22. <audio src=jedward.ogg preload> <audio src=jedward.ogg preload=auto> <audio src=jedward.ogg preload=none> <audio src=jedward.ogg preload=metadata>
  • 25. controlling <video> with JavaScript var v = document.getElementByTagName('video') [0]; v.play(); v.pause(); v.volume = … ; v.currentTime = … ; …
  • 26. events fired by <video> var v = document.getElementById('player'); v.addEventListener('loadeddata', function() { … }, true) v.addEventListener('play', function() { … }, true) v.addEventListener('pause', function() { … }, true) v.addEventListener('timeupdate', function() { … }, true) v.addEventListener('ended', function() { … }, true) …
  • 27. video as native object...why is it important? ● keyboard accessibility built-in ● “play nice” with rest of the page ● Simple API for controls
  • 29. video formats webM Ogg/ Theora mp4/ h264 Opera yes yes Chrome yes yes Nope (Chrome.soon) Firefox Yes (FF4) yes Safari yes IE9 Yes (if installed) yes
  • 30. audio formats mp3 Ogg/ Vobis wav Opera yes yes Chrome yes yes Firefox yes yes Safari yes yes IE9 yes no
  • 31. Giving everybody video <video controls autoplay poster=… width=… height=…> <source src=pudding.mp4 type=video/mp4> <source src=pudding.webm type=video/webm> <source src=pudding.ogv type=video/ogg> <!-- fallback content --> </video>
  • 32. <video controls poster="…" width="…" height="…"> <source src="movie.mp4" type="video/mp4" /> <source src="movie.webm" type="video/webm" /> <source src="movie.ogv" type="video/ogg" /> <object width="…" height="…" type="application/x- shockwave-flash" data="player.swf"> <param name="movie" value="player.swf" /> <param name="flashvars" value=" … file=movie.mp4" /> <!-- fallback content --> </object> </video> still include fallback for old browsers http://camendesign.com/code/video_for_everybody
  • 33. Help ● archive.org converts and hosts creative-commons licensed media ● vid.ly has a free conversion/ hosting service (max 1GB source file) see vid.ly/5u4h3e ● Miro video converter is a drag and drop GUI skin on FFMPEG
  • 34. Full-screen video ● Currently, WebkitEnterFullscreen(); ● May 11, WebKit announced it's implementing Gecko API https://wiki.mozilla.org/Gecko:FullScreenAPI ● Opera likes this approach, too
  • 37. WebM release does not support subtitles WHATWG / W3C RFC will release guidance on subtitles and other overlays in HTML5 <video> in the near future. WebM intends to follow that guidance. http://code.google.com/p/webm/issues/detail?id=11 Egg image Kacper "Kangel" Aniołek http://commons.wikimedia.org/wiki/File:Egg.jpg
  • 38. <track> element <video controls poster=… width=… height=…> <source src=movie.webm type=video/webm> <track src=subtitles-en.vtt kind=subtitles srclang=en> <track src=subtitles-de.vtt kind=subtitles srclang=de> <!-- fallback content --> </video> http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-track-element
  • 39. webVTT WEBVTT FILE 1 01:23:45,678 --> 01:23:46,789 Hello world! 2 01:23:48,910 --> 01:23:49,101 Hello World!
  • 40. WebVTT formatting Supports positioning of text Supports <b> and <i> Colouring individual speakers Support vertical text Supports RTL Supports ruby annotations
  • 42. Synchronising media elements @mediagroup www.whatwg.org/specs/web-apps/current-work/multipage/video.html#synchronising-multiple- media-elements
  • 43. getUserMedia API (previously known as "HTML5 <device>")
  • 45. WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs. The WebRTC components have been optimized to best serve this purpose. The WebRTC initiative is a project supported by Google, Mozilla and Opera. http://sites.google.com/site/webrtc/ http://www.whatwg.org/specs/web-apps/current-work/complete/video-conferencing- and-peer-to-peer-communication.html
  • 47. All rights reserved corner Thanks Takara Tomy for permission to use Gigapudding video. Buy the pudding. HTML5 nazi-killing Bruce on unicorn picture by Marina Lawson. Buy her Dad's book. Thanks Brittany Shaw for permission to use her Biscuit and Chica photo. Buy a rabbit pie. All others by me or (I believe) public domain.