SlideShare a Scribd company logo
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

PPT
Html5 vs Flash video
PDF
Html5 Open Video Tutorial
PDF
Taking HTML5 video a step further
PPT
JavaFX vs AJAX vs Flex
PDF
Html5, Native and Platform based Mobile Applications
PDF
HTML5 Multimedia Accessibility
PDF
HTML5 Multimedia: where we are, where we're going
PDF
JS Days Mobile Meow
Html5 vs Flash video
Html5 Open Video Tutorial
Taking HTML5 video a step further
JavaFX vs AJAX vs Flex
Html5, Native and Platform based Mobile Applications
HTML5 Multimedia Accessibility
HTML5 Multimedia: where we are, where we're going
JS Days Mobile Meow

What's hot (20)

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

Similar to State of Media Accessibility in HTML5 (20)

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

More from Silvia Pfeiffer (9)

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

Recently uploaded (20)

PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Electronic commerce courselecture one. Pdf
PPT
Teaching material agriculture food technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
sap open course for s4hana steps from ECC to s4
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Approach and Philosophy of On baking technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Review of recent advances in non-invasive hemoglobin estimation
MYSQL Presentation for SQL database connectivity
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Network Security Unit 5.pdf for BCA BBA.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Digital-Transformation-Roadmap-for-Companies.pptx
Machine learning based COVID-19 study performance prediction
Electronic commerce courselecture one. Pdf
Teaching material agriculture food technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
NewMind AI Weekly Chronicles - August'25 Week I
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
sap open course for s4hana steps from ECC to s4
The AUB Centre for AI in Media Proposal.docx
Approach and Philosophy of On baking technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
Understanding_Digital_Forensics_Presentation.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

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