SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

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
Patrick Lauke
 
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
 
Upgrade to HTML5 Video
Upgrade to HTML5 VideoUpgrade to HTML5 Video
Upgrade to HTML5 Video
steveheffernan
 

Mais procurados (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!
 

Semelhante a State of Media Accessibility in HTML5

SEO And Podcasting Presentation
SEO And Podcasting PresentationSEO And Podcasting Presentation
SEO And Podcasting Presentation
Jordan Kasteler
 
Seo And Podcasting Presentation
Seo And Podcasting PresentationSeo And Podcasting Presentation
Seo And Podcasting Presentation
Jordan 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
 
Introduction GStreamer
Introduction GStreamerIntroduction GStreamer
Introduction GStreamer
Shih-Yuan Lee
 
WordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWebWordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWeb
George Kanellopoulos
 
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
 

Semelhante a 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
 

Mais de Silvia Pfeiffer

Mais de 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
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
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
giselly40
 

Último (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 

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