W3C home > Mailing lists > Public > w3c-wai-ua@w3.org > January to March 2011

IER for 2.9.2 autoplay

From: Jim Allan <jimallan@tsbvi.edu>
Date: Thu, 10 Feb 2011 11:17:39 -0600
Message-ID: <AANLkTikGt+PTO_7RkNhyThBwq2ftDgW_3P04+rZTqkr4@mail.gmail.com>
To: WAI-ua <w3c-wai-ua@w3.org>
On Jan 27 meeting, we discussed autoplay and posited several
questions. I wrote to several folks and the HTML5 A11Y taskforce.
Thread got lengthy. I gleaned the following and created the IER which
follows.

AutoPlay
2.9.2 Time-Based Media Load-Only:
The user can load time-based media content such that the first frame
is displayed (if video), but the content is not played until explicit
user request. (Level A)


Intent:
Essentially, autoplay for media is off/paused, until the user
activates 'play'. Prevent media from playing without explicit request
from the user. For example, Uart, a screen reader user, opens a page
with an audio element that starts playing immediately. The user cannot
hear the screen reader because of the noise from the audio element,
and must search through the page to find the 'noisy' element to turn
it off (or pause). Once the screen reader is the sole source of audio
the user can read the page and determine if the audio is important and
choose to play it.

Examples:
1. one could use the same techniques that are used for pop-up blockers
to see if the play() request was from user interaction or a background
script. If isn't from direct user interaction, one could ask the user
to explicitly allow the media to play, perhaps remembering the choice
for the site.
2. playback of a <video> or <audio> element can only be triggered in
response to a user gesture on a touch screen device with no keyboard
(like pop-up blockers). This has caused no end of bug reports because
it is impossible to differentiate script originated "auto play" from
playback triggered by a script after a delay,
3. user global control in the UA, that calls "paused for user
interaction" for all media.

Resources:
1. HTML5 4.8.10.8 Playing the media resource
(http://dev.w3.org/html5/spec/Overview.html#playing-the-media-resource)

=========================================
Notes from stream
http://lists.w3.org/Archives/Public/w3c-wai-ua/2011JanMar/0022.html

1.Opera has  a user preference to disable autoplay (soon to be in
desktop version)
one could use the same techniques that are used for pop-up blockers to
see if the play() request was from user interaction or a background
script. If isn't from direct user interaction, one could ask the user
to explicitly allow the media to play, perhaps remembering the choice
for the site.

However, this kind of thing would be an opt-in setting, since we don't
want to bother users with lots of dialogs by default.

2. what about Flash
We have little to no control over what plug-ins do, the settings I
mention would only apply to HTML <audio> and <video>. The closest
thing we have in Opera is something we call "On Demand Plugins", which
requires manually activating plugins.

(In fact, that we have so little knowledge and control over what
plugins are doing is one of the main reasons for developing <audio>
and <video> in the first place.)

3. iOS
iOS devices have this restriction - playback of a <video> or <audio>
element can only be triggered in response to a user gesture (like
pop-up blockers). This has caused no end of bug reports because it is
impossible to differentiate script originated "auto play" from
playback triggered by a script after a delay,

4. A solution that might perhaps be less prone to breaking sites would
be to just do what the spec calls "paused for user interaction", which
would fire a waiting event and behave similarly to a network stall.

5. 'autoplay' was added specifically so a UA can have a "don't
autoplay" preference

6. have each UA provide a "pause all media elements" API for assistive
technology products so the user can pause playback by touching a key.
I like this idea because it puts control in the hands of the user, the
only one that actually knows when they don't want to hear something
play.

7. I don't think we can solve this problem programmatically in way
that doesn't cause other problems for everyone.

8.  When my browser crashes and I reload it with all the tabs that
were open beforehand, I sometimes have videos start playback in tabs
that I didn't even remember I had open. It would be very good to have
a button: "pause all media elements on any tab", which then avoids me
having to go look through all the tabs to find the one that is causing
the autoplay trouble.
	** the button would pause all currently playing media elements at
that instant - not disable playback altogether.
	**  Maybe another UA function assistive technology products can use
to "resume all media elements"?
9.  'UAs may have a setting "standard play is disabled" which means
that auto-play, play(), the built-in controller, none of them can play
the content.  Instead, the UA must offer some affordance to control
play/pause.'

This is not ideal, especially for audio-only elements, where it's not
obvious what affordance would work, and it is probably not obvious to
the user that something *might* have played (and hence they should
look for the affordance).


10.  Basically it says it's OK to give control completely to the UA
and take it from the markup and scripts.  It has obvious downsides; if
playback is supposed to be accompanied by other page actions, it won't
be, unless the page is written in such a way to do those based on
events.
	**  I don't think this works at all for a page with lots elements, or
with <audio> and <video> elements are are not in the DOM. For example,
what sort of UI would you expect for a page with 50 hidden audio
elements? Or how is a user that can't see the page supposed to quickly
find the noisy element in a page one <audio> element but lots of other
elements?
	***This strawman (which is quite aggressive) should force *en*able
the built-in controller.  So, this is a setting "source-directed play
is disabled" (meaning auto-play, scripts, and so on).  Only the user
gets to choose what to play and when.  Maybe there is some indication
(like what?) of what the page would have played if it had been allowed
(the page is 'trying' to play this element but you've told it not to)?

11. If I click on a link that takes me to a new page whose sole
purpose was to play me an audio (maybe accompanied by other material),
for example, the audio is the primary content.




-- 
Jim Allan, Accessibility Coordinator & Webmaster

Texas School for the Blind and Visually Impaired

1100 W. 45th St., Austin, Texas 78756

voice 512.206.9315    fax: 512.206.9264  http://www.tsbvi.edu/

"We shape our tools and thereafter our tools shape us." McLuhan, 1964
Received on Thursday, 10 February 2011 17:18:14 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 10 February 2011 17:18:20 GMT