Re: Media controller - no *accessibility* issue? Re: A11Y-ACTION-339: Forward roc's demo and explain why he thinks the accesssibility issue of dropping mediacontroller is moot

Hi Chaals, all,

Chiming in to bring another perspective based on work done in the past few months within the Multi-Device Timing Community Group [3] on cross-device synchronization.

> From: Chaals McCathie Nevile <chaals@yandex-team.ru>
[...]
> Robert O'Callahan suggests that basic synchronisation can be handled
> easily in Javascript, and made a "proof of concept" demo [1] - that I
> didn't get to try in the low-bandwidth conditions I wanted, but which
> shows how to make one track pause to let another get in synch. This
> effectively covers the major use cases we have, I think.

There is indeed a lot that can be achieved in JavaScript already, both for single-device and cross-device synchronization. I see that Robert O'Callahan uses play/pause commands in his demo, this can be improved by adjusting the "playbackrate" to achieve echoless audio synchronization on multiple devices. See a MediaSync video demo at [4] (hmm, it might not be accessible, apologies for that). The demo page also references a MediaSync report [5] that discusses playbackrate support in different browsers and platforms.

For what it's worth, I find it useful to have a few figures in mind when talking about synchronization:
- within 100ms is apparently what you would need for signing use cases
- within 25ms is frame accuracy, roughly what you need to have "lip sync", meaning the feeling that audio played on one device is in sync with a video played on another device
- within 10ms is roughly what you need to play audio in sync across devices without hearing an echo. That's probably the best synchronization that can be achieved in Web browsers.


[...]
> It is worthwhile for people to take a look, and make sure they agree with
> me and that I didn't miss something obvious. My personal feeling at this
> stage is that there is little value in us continuing to argue
> mediacontroller is necessary for accessibility - although I will claim it
> is "nice to have".

I personally agree with the conclusion that MediaController is not absolutely necessary for accessibility use cases in a single device environment, although some improvements in playbackrate implementations might help to achieve proper synchronization in JavaScript.

However, I also believe that there are accessibility use cases that would require lip sync in a cross-device environment, such as watching TV (or going to the cinema) with others and listening to a clear audio track on the headset connected to your mobile device while others listen to the default audio track. I don't see such requirements for multi-device scenarios in the Media Accessibility User Requirements spec [6] for the time being, although I remember discussions with PFWG on that when the Second Screen Working Group got created.

In other words, MediaController may be "nice to have" from an accessibility perspective, but deprecating it could perhaps also be a good occasion to build a "nicer to have" solution that addresses multi-devices accessibility scenarios.

The Timing Object spec [7] proposes a solution to "replace" MediaController. It is worth noting that it is still at early stages and, while easy to use, not necessarily easy to implement. I'd be interested to hear what people think of that proposal. For those interested, it will be discussed at TPAC during the Web and TV IG F2F on Monday and I proposed a breakout session on cross-device synchronization on Wednesday [8].

Thanks,
Francois.

> 
> [1] http://people.mozilla.org/~roc/videosync.html
> [2] https://github.com/whatwg/html/issues/192#issuecomment-147069727

[3] https://www.w3.org/community/webtiming/
[4] http://webtiming.github.io/mediasync/
[5] https://docs.google.com/document/d/1d2P3o3RZmilBx1MzMFFDDj5JnF8Yoi-t9EkJKzV90Ak/edit?usp=sharing
[6] https://w3c.github.io/pfwg/media-accessibility-reqs/
[7] http://webtiming.github.io/timingobject/
[8] http://www.w3.org/wiki/TPAC/2015/SessionIdeas#Cross-device_Synchronization

Received on Thursday, 22 October 2015 17:55:28 UTC