SlideShare a Scribd company logo
1 of 45
Download to read offline
State
        of
Media Accessibility
    in HTML5
 Silvia Pfeiffer              OVC 2010

 Annodex, Xiph, Vquence, Mozilla
The HTML5 <video> tag
Example:
<video poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
</video>
Accessibility Aspects

A … Vision-impaired users
B … Hard-of-hearing users
C … Deaf-blind users
D … Learning Disabilities
A…


  Vision-
impaired
    users
Vision-impaired users


    Described video
“descriptive narration of key
     visual elements”
(Extended) Audio description




http://web.mac.com/eric.carlson/w3c/NC
        AM/extended-audio.html
Open Audio Description

<video poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
</video>
In-band Audio Description
Multitrack with the original content:
<video poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
</video>

Needs JS such as:
if (video.audiotracks[1].kind == “descriptions”)
desc = video.audiotracks[1]; // => AudioTrack
External Audio Description
Needs markup such as:

<video poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
<audiotrack kind=”descriptions” srclang=”en”>
<source src=”description.ogg” type=”audio/ogg”>
<source src=”description.mp3” type=”audio/mp3”>
</audiotrack>
</video>
Combined with JS such as:

audiotrack =
getElementsByTagName(“audiotrack”)[0].track;
audiotrack.mode = SHOWING;
alert(audiotrack.kind);     // => “descriptions”
alert(audiotrack.language); // => “en”
(Extended) Text description




http://www.annodex.net/~silvia/itext/eleph
          ant_no_skin_v2.html
In-band Text Description
Multitrack with the original content:
<video poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
</video>

Specified markup:
if (video.tracks[1].kind == “descriptions”)
description = video.tracks[1]; // => TimedTrack
External Text Description

Specified extra Markup:

<video poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
<track kind=”descriptions” srclang=”en”
src=”descriptions.wsrt” label=”English
Descriptions”>
</video>
Select specified new JavaScript:

track = getElementsByTagName(“track”)
[0].track;
track.mode = SHOWING;
alert(track.kind);     // => “descriptions”
alert(track.language); // => “en”
File format: WebSRT

00:00:00.00 --> 00:00:05.00
The orange open movie project presents

00:00:05.01 --> 00:00:12.00
Introductory titles are showing on the background
of a water pool with fishes swimming and
mechanical objects lying on a stone floor.

00:00:11.01 --> 00:00:14.80
elephants dream
Vision-impaired users

            Navigation
                and
            Interaction
activate / deactivate descriptions


1. description.mode = HIDDEN / SHOWING;
2. @controls should include features to “turn on
audio descriptions”
navigate within and into the content


 “a fragment identifier can be used to
        indicate a start position”
   Specified media fragment URIs:
 http://example.com/video.ogv#t=40
          keyboard control
navigate between alternative content


  multiple tracks at different resolution
@controls allow navigation between them
navigate out of content


   hyperlinks in cues
B…


Hard-of-hearing
          users
Hard-of-hearing users


         Captions
“time-synchronized text cues”
(Enhanced) Captions




http://www.youtube.com/watch?
        v=dtyXYjXNI2w
Open Captions

<video poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
</video>
In-band Captions
Multitrack with the original content:
<video poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
</video>

Specified new JS:
if (video.tracks[1].kind == “captions”)
caption = video.tracks[1]; // => TimedTrack
External Captions

Specified new markup:

<video poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
<track kind=”captions” srclang=”en”
src=”captions.wsrt”>
</video>
Specified new JavaScript:

track = getElementsByTagName(“track”)
[0].track;
track.mode = SHOWING;
alert(track.kind);     // => “captions”
alert(track.language); // => “en”
Proposed file format: WebSRT
00:00:15,000 --> 00:00:17,951
At the left we can see...

00:00:18,166 --> 00:00:20,083
At the right we can see the...

00:00:20,119 --> 00:00:21,962
...the head-snarlers

00:00:21,999 --> 00:00:24,368
Everything is safe.
Perfectly safe.
Hard-of-hearing users



    Transcripts
Linked Transcripts




http://localhost/~silvia/mozilla/a11y_best_
      practice/demo2_transcript.html
Linked Transcripts

<video poster=“video.png” controls aria-
describedby=”transcript” src=“video.ogv”>
</video>
<div id="transcript" style="overflow-y:scroll;">
<p id="c1" class="cue" data-time="15.0">Proog:
At the left we can see... At the right we can see
the... the head-snarlers.Everything is safe.
Perfectly safe. Emo? Emo!</p>
</div>
Navigate video from transcript:

cues[i].addEventListener("click",
function(evt) {
var start =
parseFloat(this.getAttribute("data-time"));
video.currentTime = start;
video.play();
}, false);
Navigate transcript from video:

video.addEventListener("timeupdate",
function(evt) {
  for (i=0; i<cues.length; i++) {
    if (video.currentTime >=
parseFloat(cues[i].getAttribute(“data-time")) &&
        video.currentTime <
parseFloat(cues[i+1].getAttribute("data-time")))
   {
      // scroll cues[i] to center of display
    }
   }
}, false);
Hard-of-hearing users

                 Sign
              translation
                 video
              http://www.youtube.c
                    om/watch?
                 v=IZjBqVn4AQI
In-band Sign Language
Multitrack with the original content:
<video poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
</video>

Needs new JS such as:
if (video.videotracks[1].kind == “signing”)
caption = video.videotracks[1]; // => VideoTrack
External Sign Language
Needs new markup such as:

<video poster=“video.png” controls>
<source src=“video.ogv” type=”video/ogg”>
<source src=“video.mp4” type=”video/mp4”>
<videotrack kind=”signing” srclang=”asl”>
<source src=”signing.ogv” type=”video/ogg”>
<source src=”signing.mp4” type=”video/mp4”>
</videotrack>
</video>
Combined with new JavaScript, e.g.:

track = getElementsByTagName(“videotrack”)
[0].track;
videotrack.mode = SHOWING;
alert(videotrack.kind);     // => “signing”
alert(videotrack.language); // => “asl”
C…


Deaf-blind
     users
Transcription with text description and
caption information rendered to braille
D…


      Learning
Disabilities and
    other needs
Special Needs




        Clear audio
“amplify speech separately”
Special Needs



         Time-scale
         modification
    “speed up/slow down
        audio without
       changing pitch”
Special Needs

            Attaching
           Explanations
             “learning
              through
            additional
             material”
Status in HTML5
                                                              User        User
Feature                          Markup     JavaScript WebSRT Preferences Interface
(ext) audio description OPEN     OK
(ext) audio description IN-
BAND                                        TODO                    recommended
(ext) audio description
EXTERNAL                         TODO       TODO                    recommended
(ext) text description IN-BAND              TimedTrack              recommended
(ext) text description
EXTERNAL                         <track>      TimedTrack Yes          recommended
                                              mode=
activate/deactivate video                     SHOWING/
descriptions                     @controls HIDDEN                     recommended
                                 media
navigate into and within         fragment video.curre
content                          URI          ntTime                              insufficient
navigate between tracks          insufficient mode                                insufficient
navigate out of content                                  insufficient
Status in HTML5
                                                          User            User
Feature                  Markup         JavaScript WebSRT Preferences     Interface
Open captions            OK
In-band (enhanced)
captions                                TimedTrack          recommended
External (enhanced)
captions                 <track>        TimedTrack          recommended
plain transcript         OK
                         Aria-
                         describedby,   currentTime,
linked transcript        data-time      data-time    possible
In-band sign language                   TODO                  recommended
external sign language   TODO           TODO                  recommended
slow down content        possible       possible                          possible
In-band clear audio                     possible              possible    possible
External clear audio     possible       possible              possible    possible

More Related Content

What's hot

HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012
HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012
HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012Patrick Lauke
 
JS Days HTML5 Flash and the Battle for Faster Cat Videos
JS Days HTML5 Flash and the Battle for Faster Cat VideosJS Days HTML5 Flash and the Battle for Faster Cat Videos
JS Days HTML5 Flash and the Battle for Faster Cat VideosGreg Schechter
 
HTML5, Flash, and the Battle For Faster Cat Videos
HTML5, Flash, and the Battle For Faster Cat VideosHTML5, Flash, and the Battle For Faster Cat Videos
HTML5, Flash, and the Battle For Faster Cat VideosGreg Schechter
 
HTML5 Real-Time and Connectivity
HTML5 Real-Time and ConnectivityHTML5 Real-Time and Connectivity
HTML5 Real-Time and ConnectivityPeter Lubbers
 
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...Patrick Lauke
 
'THE AGE OF DATA STREAMING' by DENIS BURYACHKOVSKY at OdessaJS'2020
'THE AGE OF DATA STREAMING' by DENIS BURYACHKOVSKY at OdessaJS'2020'THE AGE OF DATA STREAMING' by DENIS BURYACHKOVSKY at OdessaJS'2020
'THE AGE OF DATA STREAMING' by DENIS BURYACHKOVSKY at OdessaJS'2020OdessaJS Conf
 
[edUiconf] HTML5 does all that… and i can haz cheeseburger? You bet!
[edUiconf] HTML5 does all that… and i can haz cheeseburger? You bet![edUiconf] HTML5 does all that… and i can haz cheeseburger? You bet!
[edUiconf] HTML5 does all that… and i can haz cheeseburger? You bet!Christopher Schmitt
 
Zend con 2016 bdd with behat for beginners
Zend con 2016   bdd with behat for beginnersZend con 2016   bdd with behat for beginners
Zend con 2016 bdd with behat for beginnersAdam Englander
 
OSDC 2008 talk: An open source "YouTube"
OSDC 2008 talk:  An open source "YouTube"OSDC 2008 talk:  An open source "YouTube"
OSDC 2008 talk: An open source "YouTube"Silvia Pfeiffer
 
Managing modular software for your nu get, c++ and java development
Managing modular software for your nu get, c++ and java developmentManaging modular software for your nu get, c++ and java development
Managing modular software for your nu get, c++ and java developmentBaruch Sadogursky
 
Composer - The missing package manager for PHP
Composer - The missing package manager for PHPComposer - The missing package manager for PHP
Composer - The missing package manager for PHPTareq Hasan
 
Real-Time Communication Testing Evolution with WebRTC
Real-Time Communication Testing Evolution with WebRTCReal-Time Communication Testing Evolution with WebRTC
Real-Time Communication Testing Evolution with WebRTCAlexandre Gouaillard
 
HTML55 media api
HTML55 media apiHTML55 media api
HTML55 media apiRan Bar-Zik
 
Upgrade to HTML5 Video
Upgrade to HTML5 VideoUpgrade to HTML5 Video
Upgrade to HTML5 Videosteveheffernan
 
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010Patrick Lauke
 

What's hot (20)

HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012
HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012
HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012
 
JS Days HTML5 Flash and the Battle for Faster Cat Videos
JS Days HTML5 Flash and the Battle for Faster Cat VideosJS Days HTML5 Flash and the Battle for Faster Cat Videos
JS Days HTML5 Flash and the Battle for Faster Cat Videos
 
HTML5, Flash, and the Battle For Faster Cat Videos
HTML5, Flash, and the Battle For Faster Cat VideosHTML5, Flash, and the Battle For Faster Cat Videos
HTML5, Flash, and the Battle For Faster Cat Videos
 
HTML5 Real-Time and Connectivity
HTML5 Real-Time and ConnectivityHTML5 Real-Time and Connectivity
HTML5 Real-Time and Connectivity
 
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
 
Looking into HTML5 + CSS3
Looking into HTML5 + CSS3Looking into HTML5 + CSS3
Looking into HTML5 + CSS3
 
'THE AGE OF DATA STREAMING' by DENIS BURYACHKOVSKY at OdessaJS'2020
'THE AGE OF DATA STREAMING' by DENIS BURYACHKOVSKY at OdessaJS'2020'THE AGE OF DATA STREAMING' by DENIS BURYACHKOVSKY at OdessaJS'2020
'THE AGE OF DATA STREAMING' by DENIS BURYACHKOVSKY at OdessaJS'2020
 
[edUiconf] HTML5 does all that… and i can haz cheeseburger? You bet!
[edUiconf] HTML5 does all that… and i can haz cheeseburger? You bet![edUiconf] HTML5 does all that… and i can haz cheeseburger? You bet!
[edUiconf] HTML5 does all that… and i can haz cheeseburger? You bet!
 
Zend con 2016 bdd with behat for beginners
Zend con 2016   bdd with behat for beginnersZend con 2016   bdd with behat for beginners
Zend con 2016 bdd with behat for beginners
 
OSDC 2008 talk: An open source "YouTube"
OSDC 2008 talk:  An open source "YouTube"OSDC 2008 talk:  An open source "YouTube"
OSDC 2008 talk: An open source "YouTube"
 
HTML5 Design
HTML5 DesignHTML5 Design
HTML5 Design
 
[amigos] HTML5 and CSS3
[amigos] HTML5 and CSS3[amigos] HTML5 and CSS3
[amigos] HTML5 and CSS3
 
Managing modular software for your nu get, c++ and java development
Managing modular software for your nu get, c++ and java developmentManaging modular software for your nu get, c++ and java development
Managing modular software for your nu get, c++ and java development
 
Composer - The missing package manager for PHP
Composer - The missing package manager for PHPComposer - The missing package manager for PHP
Composer - The missing package manager for PHP
 
Real-Time Communication Testing Evolution with WebRTC
Real-Time Communication Testing Evolution with WebRTCReal-Time Communication Testing Evolution with WebRTC
Real-Time Communication Testing Evolution with WebRTC
 
Scaling Django
Scaling DjangoScaling Django
Scaling Django
 
HTML55 media api
HTML55 media apiHTML55 media api
HTML55 media api
 
Upgrade to HTML5 Video
Upgrade to HTML5 VideoUpgrade to HTML5 Video
Upgrade to HTML5 Video
 
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
audio, video and canvas in HTML5 - standards>next Manchester 29.09.2010
 
GWT Extreme!
GWT Extreme!GWT Extreme!
GWT Extreme!
 

Similar to State of Media Accessibility in HTML5

Making the HTML5 Video element interactive
Making the HTML5 Video element interactiveMaking the HTML5 Video element interactive
Making the HTML5 Video element interactiveCharles Hudson
 
HTML5 Video Accessibility: Updates, Features, & Guidelines
HTML5 Video Accessibility: Updates, Features, & GuidelinesHTML5 Video Accessibility: Updates, Features, & Guidelines
HTML5 Video Accessibility: Updates, Features, & Guidelines3Play Media
 
SEO And Podcasting Presentation
SEO And Podcasting PresentationSEO And Podcasting Presentation
SEO And Podcasting PresentationJordan Kasteler
 
Seo And Podcasting Presentation
Seo And Podcasting PresentationSeo And Podcasting Presentation
Seo And Podcasting PresentationJordan Kasteler
 
HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...
HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...
HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...Patrick Lauke
 
HTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're goingHTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're goingbrucelawson
 
Introduction GStreamer
Introduction GStreamerIntroduction GStreamer
Introduction GStreamerShih-Yuan Lee
 
HTML5 Multimedia
HTML5 MultimediaHTML5 Multimedia
HTML5 MultimediaSiddhi
 
WordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWebWordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWebGeorge Kanellopoulos
 
Getting ahead of the curve - Scalable, Accessible, Enterprise-class Video on ...
Getting ahead of the curve - Scalable, Accessible, Enterprise-class Video on ...Getting ahead of the curve - Scalable, Accessible, Enterprise-class Video on ...
Getting ahead of the curve - Scalable, Accessible, Enterprise-class Video on ...John Foliot
 
MALT Wiki and oEmbed
MALT Wiki and oEmbedMALT Wiki and oEmbed
MALT Wiki and oEmbedNick Freear
 
HTML5 Accessibility CSUN 2012
HTML5 Accessibility CSUN 2012HTML5 Accessibility CSUN 2012
HTML5 Accessibility CSUN 2012Steven Faulkner
 
Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]Aaron Gustafson
 
Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...
Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...
Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...Jie Bao
 
HTML5 Multimedia Support
HTML5 Multimedia SupportHTML5 Multimedia Support
HTML5 Multimedia SupportHenry Osborne
 

Similar to State of Media Accessibility in HTML5 (20)

HTML5 Audio & Video
HTML5 Audio & VideoHTML5 Audio & Video
HTML5 Audio & Video
 
Making the HTML5 Video element interactive
Making the HTML5 Video element interactiveMaking the HTML5 Video element interactive
Making the HTML5 Video element interactive
 
HTML5 Video Accessibility: Updates, Features, & Guidelines
HTML5 Video Accessibility: Updates, Features, & GuidelinesHTML5 Video Accessibility: Updates, Features, & Guidelines
HTML5 Video Accessibility: Updates, Features, & Guidelines
 
Html5 intro
Html5 introHtml5 intro
Html5 intro
 
SEO And Podcasting Presentation
SEO And Podcasting PresentationSEO And Podcasting Presentation
SEO And Podcasting Presentation
 
Seo And Podcasting Presentation
Seo And Podcasting PresentationSeo And Podcasting Presentation
Seo And Podcasting Presentation
 
HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...
HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...
HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...
 
HTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're goingHTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're going
 
HTML5와 모바일
HTML5와 모바일HTML5와 모바일
HTML5와 모바일
 
Introduction GStreamer
Introduction GStreamerIntroduction GStreamer
Introduction GStreamer
 
HTML5 Multimedia
HTML5 MultimediaHTML5 Multimedia
HTML5 Multimedia
 
WordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWebWordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWeb
 
Getting ahead of the curve - Scalable, Accessible, Enterprise-class Video on ...
Getting ahead of the curve - Scalable, Accessible, Enterprise-class Video on ...Getting ahead of the curve - Scalable, Accessible, Enterprise-class Video on ...
Getting ahead of the curve - Scalable, Accessible, Enterprise-class Video on ...
 
MALT Wiki and oEmbed
MALT Wiki and oEmbedMALT Wiki and oEmbed
MALT Wiki and oEmbed
 
Word camp nextweb
Word camp nextwebWord camp nextweb
Word camp nextweb
 
Word camp nextweb
Word camp nextwebWord camp nextweb
Word camp nextweb
 
HTML5 Accessibility CSUN 2012
HTML5 Accessibility CSUN 2012HTML5 Accessibility CSUN 2012
HTML5 Accessibility CSUN 2012
 
Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
Crafting Rich Experiences with Progressive Enhancement [Beyond Tellerrand 2011]
 
Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...
Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...
Integration of Domain-Specific and Domain-Independent Ontologies for Colonosc...
 
HTML5 Multimedia Support
HTML5 Multimedia SupportHTML5 Multimedia Support
HTML5 Multimedia Support
 

More from Silvia Pfeiffer

Asymmetrical Interfaces in Telehealth
Asymmetrical Interfaces in TelehealthAsymmetrical Interfaces in Telehealth
Asymmetrical Interfaces in TelehealthSilvia Pfeiffer
 
WebRTC beyond Audio and Video
WebRTC beyond Audio and Video  WebRTC beyond Audio and Video
WebRTC beyond Audio and Video Silvia Pfeiffer
 
Video Accessibility HTML5
Video Accessibility HTML5Video Accessibility HTML5
Video Accessibility HTML5Silvia Pfeiffer
 
Scaling a Social Media Campaign
Scaling a Social Media CampaignScaling a Social Media Campaign
Scaling a Social Media CampaignSilvia Pfeiffer
 
Nsw Public Sphere1: Video for Politicians and Government
Nsw Public Sphere1: Video for Politicians and GovernmentNsw Public Sphere1: Video for Politicians and Government
Nsw Public Sphere1: Video for Politicians and GovernmentSilvia Pfeiffer
 
Public Sphere3: ICT innovation is easy - commercialisation is hard
Public Sphere3: ICT innovation is easy - commercialisation is hardPublic Sphere3: ICT innovation is easy - commercialisation is hard
Public Sphere3: ICT innovation is easy - commercialisation is hardSilvia Pfeiffer
 
Open Video Conference: HTML and the video tag
Open Video Conference: HTML and the video tagOpen Video Conference: HTML and the video tag
Open Video Conference: HTML and the video tagSilvia Pfeiffer
 
OSDC 2009, Metavidwiki: when you need a web video solution
OSDC 2009, Metavidwiki: when you need a web video solutionOSDC 2009, Metavidwiki: when you need a web video solution
OSDC 2009, Metavidwiki: when you need a web video solutionSilvia Pfeiffer
 

More from Silvia Pfeiffer (9)

Asymmetrical Interfaces in Telehealth
Asymmetrical Interfaces in TelehealthAsymmetrical Interfaces in Telehealth
Asymmetrical Interfaces in Telehealth
 
WebRTC beyond Audio and Video
WebRTC beyond Audio and Video  WebRTC beyond Audio and Video
WebRTC beyond Audio and Video
 
Video Accessibility HTML5
Video Accessibility HTML5Video Accessibility HTML5
Video Accessibility HTML5
 
Scaling a Social Media Campaign
Scaling a Social Media CampaignScaling a Social Media Campaign
Scaling a Social Media Campaign
 
Nsw Public Sphere1: Video for Politicians and Government
Nsw Public Sphere1: Video for Politicians and GovernmentNsw Public Sphere1: Video for Politicians and Government
Nsw Public Sphere1: Video for Politicians and Government
 
Public Sphere3: ICT innovation is easy - commercialisation is hard
Public Sphere3: ICT innovation is easy - commercialisation is hardPublic Sphere3: ICT innovation is easy - commercialisation is hard
Public Sphere3: ICT innovation is easy - commercialisation is hard
 
Open Video Conference: HTML and the video tag
Open Video Conference: HTML and the video tagOpen Video Conference: HTML and the video tag
Open Video Conference: HTML and the video tag
 
Launch VQmetrics
Launch VQmetricsLaunch VQmetrics
Launch VQmetrics
 
OSDC 2009, Metavidwiki: when you need a web video solution
OSDC 2009, Metavidwiki: when you need a web video solutionOSDC 2009, Metavidwiki: when you need a web video solution
OSDC 2009, Metavidwiki: when you need a web video solution
 

Recently uploaded

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Recently uploaded (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

State of Media Accessibility in HTML5

  • 1. State of Media Accessibility in HTML5 Silvia Pfeiffer OVC 2010 Annodex, Xiph, Vquence, Mozilla
  • 2. The HTML5 <video> tag Example: <video poster=“video.png” controls> <source src=“video.ogv” type=”video/ogg”> <source src=“video.mp4” type=”video/mp4”> </video>
  • 3. Accessibility Aspects A … Vision-impaired users B … Hard-of-hearing users C … Deaf-blind users D … Learning Disabilities
  • 5. Vision-impaired users Described video “descriptive narration of key visual elements”
  • 7. Open Audio Description <video poster=“video.png” controls> <source src=“video.ogv” type=”video/ogg”> <source src=“video.mp4” type=”video/mp4”> </video>
  • 8. In-band Audio Description Multitrack with the original content: <video poster=“video.png” controls> <source src=“video.ogv” type=”video/ogg”> <source src=“video.mp4” type=”video/mp4”> </video> Needs JS such as: if (video.audiotracks[1].kind == “descriptions”) desc = video.audiotracks[1]; // => AudioTrack
  • 9. External Audio Description Needs markup such as: <video poster=“video.png” controls> <source src=“video.ogv” type=”video/ogg”> <source src=“video.mp4” type=”video/mp4”> <audiotrack kind=”descriptions” srclang=”en”> <source src=”description.ogg” type=”audio/ogg”> <source src=”description.mp3” type=”audio/mp3”> </audiotrack> </video>
  • 10. Combined with JS such as: audiotrack = getElementsByTagName(“audiotrack”)[0].track; audiotrack.mode = SHOWING; alert(audiotrack.kind); // => “descriptions” alert(audiotrack.language); // => “en”
  • 12. In-band Text Description Multitrack with the original content: <video poster=“video.png” controls> <source src=“video.ogv” type=”video/ogg”> <source src=“video.mp4” type=”video/mp4”> </video> Specified markup: if (video.tracks[1].kind == “descriptions”) description = video.tracks[1]; // => TimedTrack
  • 13. External Text Description Specified extra Markup: <video poster=“video.png” controls> <source src=“video.ogv” type=”video/ogg”> <source src=“video.mp4” type=”video/mp4”> <track kind=”descriptions” srclang=”en” src=”descriptions.wsrt” label=”English Descriptions”> </video>
  • 14. Select specified new JavaScript: track = getElementsByTagName(“track”) [0].track; track.mode = SHOWING; alert(track.kind); // => “descriptions” alert(track.language); // => “en”
  • 15. File format: WebSRT 00:00:00.00 --> 00:00:05.00 The orange open movie project presents 00:00:05.01 --> 00:00:12.00 Introductory titles are showing on the background of a water pool with fishes swimming and mechanical objects lying on a stone floor. 00:00:11.01 --> 00:00:14.80 elephants dream
  • 16. Vision-impaired users Navigation and Interaction
  • 17. activate / deactivate descriptions 1. description.mode = HIDDEN / SHOWING; 2. @controls should include features to “turn on audio descriptions”
  • 18. navigate within and into the content “a fragment identifier can be used to indicate a start position” Specified media fragment URIs: http://example.com/video.ogv#t=40 keyboard control
  • 19. navigate between alternative content multiple tracks at different resolution @controls allow navigation between them
  • 20. navigate out of content hyperlinks in cues
  • 22. Hard-of-hearing users Captions “time-synchronized text cues”
  • 24. Open Captions <video poster=“video.png” controls> <source src=“video.ogv” type=”video/ogg”> <source src=“video.mp4” type=”video/mp4”> </video>
  • 25. In-band Captions Multitrack with the original content: <video poster=“video.png” controls> <source src=“video.ogv” type=”video/ogg”> <source src=“video.mp4” type=”video/mp4”> </video> Specified new JS: if (video.tracks[1].kind == “captions”) caption = video.tracks[1]; // => TimedTrack
  • 26. External Captions Specified new markup: <video poster=“video.png” controls> <source src=“video.ogv” type=”video/ogg”> <source src=“video.mp4” type=”video/mp4”> <track kind=”captions” srclang=”en” src=”captions.wsrt”> </video>
  • 27. Specified new JavaScript: track = getElementsByTagName(“track”) [0].track; track.mode = SHOWING; alert(track.kind); // => “captions” alert(track.language); // => “en”
  • 28. Proposed file format: WebSRT 00:00:15,000 --> 00:00:17,951 At the left we can see... 00:00:18,166 --> 00:00:20,083 At the right we can see the... 00:00:20,119 --> 00:00:21,962 ...the head-snarlers 00:00:21,999 --> 00:00:24,368 Everything is safe. Perfectly safe.
  • 29. Hard-of-hearing users Transcripts
  • 31. Linked Transcripts <video poster=“video.png” controls aria- describedby=”transcript” src=“video.ogv”> </video> <div id="transcript" style="overflow-y:scroll;"> <p id="c1" class="cue" data-time="15.0">Proog: At the left we can see... At the right we can see the... the head-snarlers.Everything is safe. Perfectly safe. Emo? Emo!</p> </div>
  • 32. Navigate video from transcript: cues[i].addEventListener("click", function(evt) { var start = parseFloat(this.getAttribute("data-time")); video.currentTime = start; video.play(); }, false);
  • 33. Navigate transcript from video: video.addEventListener("timeupdate", function(evt) { for (i=0; i<cues.length; i++) { if (video.currentTime >= parseFloat(cues[i].getAttribute(“data-time")) && video.currentTime < parseFloat(cues[i+1].getAttribute("data-time"))) { // scroll cues[i] to center of display } } }, false);
  • 34. Hard-of-hearing users Sign translation video http://www.youtube.c om/watch? v=IZjBqVn4AQI
  • 35. In-band Sign Language Multitrack with the original content: <video poster=“video.png” controls> <source src=“video.ogv” type=”video/ogg”> <source src=“video.mp4” type=”video/mp4”> </video> Needs new JS such as: if (video.videotracks[1].kind == “signing”) caption = video.videotracks[1]; // => VideoTrack
  • 36. External Sign Language Needs new markup such as: <video poster=“video.png” controls> <source src=“video.ogv” type=”video/ogg”> <source src=“video.mp4” type=”video/mp4”> <videotrack kind=”signing” srclang=”asl”> <source src=”signing.ogv” type=”video/ogg”> <source src=”signing.mp4” type=”video/mp4”> </videotrack> </video>
  • 37. Combined with new JavaScript, e.g.: track = getElementsByTagName(“videotrack”) [0].track; videotrack.mode = SHOWING; alert(videotrack.kind); // => “signing” alert(videotrack.language); // => “asl”
  • 39. Transcription with text description and caption information rendered to braille
  • 40. D… Learning Disabilities and other needs
  • 41. Special Needs Clear audio “amplify speech separately”
  • 42. Special Needs Time-scale modification “speed up/slow down audio without changing pitch”
  • 43. Special Needs Attaching Explanations “learning through additional material”
  • 44. Status in HTML5 User User Feature Markup JavaScript WebSRT Preferences Interface (ext) audio description OPEN OK (ext) audio description IN- BAND TODO recommended (ext) audio description EXTERNAL TODO TODO recommended (ext) text description IN-BAND TimedTrack recommended (ext) text description EXTERNAL <track> TimedTrack Yes recommended mode= activate/deactivate video SHOWING/ descriptions @controls HIDDEN recommended media navigate into and within fragment video.curre content URI ntTime insufficient navigate between tracks insufficient mode insufficient navigate out of content insufficient
  • 45. Status in HTML5 User User Feature Markup JavaScript WebSRT Preferences Interface Open captions OK In-band (enhanced) captions TimedTrack recommended External (enhanced) captions <track> TimedTrack recommended plain transcript OK Aria- describedby, currentTime, linked transcript data-time data-time possible In-band sign language TODO recommended external sign language TODO TODO recommended slow down content possible possible possible In-band clear audio possible possible possible External clear audio possible possible possible possible