Closed Bug 1622995 Opened 4 years ago Closed 4 years ago

Video controls not in the a11y tree when they're not visually shown

Categories

(Toolkit :: Video/Audio Controls, defect, P1)

defect

Tracking

()

RESOLVED FIXED
81 Branch
Accessibility Severity s2
Tracking Status
firefox81 --- fixed

People

(Reporter: Jamie, Assigned: Jamie)

References

(Blocks 1 open bug)

Details

(Keywords: access)

Attachments

(2 files)

STR (with the NVDA screen reader):

  1. Open this URL: https://www.html5rocks.com/en/tutorials/video/basics/devstories.webm
  2. Use the down arrow key to read the document.
    • Expected: NVDA should report the pause button among other video controls.
    • Actual: Only the picture-in-picture button is reported.

This is a major problem for screen reader users because they can't get to the video to be able to control it. Even though the video itself is focusable, without the controls, it's effectively an unnamed grouping. When the picture-in-picture button is showing, it's possible to focus that, then shift+tab to get to the video grouping and then use keyboard shortcuts to control the video, but that's far from intuitive. Finally, it's impossible to navigate to the controls in browse mode.

While it's generally true that visually hidden things should also be hidden for a11y, I think this is an exception. The fact that these are visually hidden is very much a presentational choice, rather than a semantic one. That is, we aren't saying "the controls are not available". We're saying "the controls are visually hidden because we don't want them to waste space on the screen and/or obscure the video while the video is playing".

Instead of hiding, perhaps we could shift the controls off-screen or use opacity: 0?

For embedded videos, I can't quite work out what the rules are for when controls are hidden. For example, with this URL:
data:text/html,<video src="https://www.html5rocks.com/en/tutorials/video/basics/devstories.webm" controls>
the controls don't seem to get hidden even after play is pressed... usually. I've sometimes seen them hide, but I haven't been able to reliably reproduce that. Adding the autoplay attribute:
data:text/html,<video src="https://www.html5rocks.com/en/tutorials/video/basics/devstories.webm" controls autoplay>
starts with the controls hidden as with the URL in the STR.

Note that this is one issue cited as a reason for using custom video players instead of native video controls. See this article.

That article is pretty damning. This sounds like an awful experience.

It looks like after we animate the opacity down to 0 after a fadeout, we set the hidden attribute on the elements here:

https://searchfox.org/mozilla-central/rev/61f224ec08ddc6f9a93ac45c8c3c5f7159be7c2a/toolkit/content/widgets/videocontrols.js#1480

Digging through hgweb, I believe this was originally added as a performance optimization in bug 484935. I wonder if Gecko has changed enough since then that we could skip the hidden part here.

Hey Jamie, I've attached a patch that makes the hidden elements use opacity: 0 rather than display: none. It looks like it exposes the right things in the Accessibility Inspector, but I'm interested in knowing if it improves the experience for you. What do you think?

Flags: needinfo?(jteh)

Thanks for working on this! This is so, so much better. There are two problems, though:

  1. Some stuff is now exposed which really should be semantically hidden. Specifically:
    • Even when picture-in-picture isn't enabled, I see "This video is playing in Picture-in-Picture mode.". That needs to be both visually and semantically hidden.
    • There's a button labelled simply "Off" with a class of "textTrackItem". I'm guessing that toggles captions and is only meant to be available when captions are available. Again, needs to be hidden both visually and semantically in this case.
  2. The picture-in-picture button is exposed, but it can't be activated (clicked) when the controls are visually hidden. In contrast, the pause and mute buttons can be activated just fine.
Flags: needinfo?(jteh)

(In reply to Mike Conley (:mconley) (:⚙️) from comment #2)

Digging through hgweb, I believe this was originally added as a performance optimization in bug 484935. I wonder if Gecko has changed enough since then that we could skip the hidden part here.

I expect CPU use would be from updating the scrubber. It's tempting not to update it at all when the controls are hidden, but then the value read by AT when focusing it would be wrong, too. I guess we could try to avoid updating it while it's not focused, though that won't track AT focus.

Jamie, what's the best solution here? I'm particularly interested in figuring out how we can update this value (so it's correct when the user wants to find it) without it doing annoying announcements when it changes (or, ideally, churning CPU when not visible to sighted users or focused with the keyboard / AT). Do we need to set aria-live=none or something on the scrubber? (does that even work?).

Also, the opacity: 0 thing helps AT users but doesn't help keyboard users. I sort of take issue with the article here in that, AIUI, not allowing other things to be tab-focusable was an intentional decision when they were implemented, because it's a poor way of controlling the video. You can accomplish play/pause with spacebar, and seeking with the arrow keys. The other items are keyboard-focusable because they have no other keyboard-accessible way of accomplishing them (apart from, on Windows, bringing up the context menu). It's not clear to me from the article why that is not deemed a sufficient solution. Do you have ideas/opinions here?

(that said, AFAICT there's no focus style for the buttons at all on macOS and when they are hidden I can't get them to come up with the keyboard, both of which are also pretty terrible.)

Hey Jamie, I've attached a patch that makes the hidden elements use opacity: 0 rather than display: none. It looks like it exposes the right things in the Accessibility Inspector, but I'm interested in knowing if it improves the experience for you. What do you think?

Presumably we need to then give them pointer-events: none to avoid them accidentally activating when users click on a blank part of the video, right? Or are they off-screen anyway?

Do we have bugs on file for all the other issues identified in the article (inasmuch as we agree they are issues) ?

Flags: needinfo?(jteh)

(In reply to :Gijs (he/him) from comment #4)

Jamie, what's the best solution here? I'm particularly interested in figuring out how we can update this value (so it's correct when the user wants to find it) without it doing annoying announcements when it changes (or, ideally, churning CPU when not visible to sighted users or focused with the keyboard / AT). Do we need to set aria-live=none or something on the scrubber? (does that even work?).

Urgh. There isn't really a good solution here. AT don't always set focus to a control when they're interested in it (e.g. speaking it in browse mode), so we can't just wait for it to get focus. Even if they did set focus, we'd still report the wrong value initially (before focus caught up).

As for the annoying announcements, there's currently no fix for that either; see point 7 in bug 1496851 comment 3. I think we should consider that a separate issue, though, and we could probably work across the industry to come up with a fix across the stack.

Also, the opacity: 0 thing helps AT users but doesn't help keyboard users. I sort of take issue with the article here in that, AIUI, not allowing other things to be tab-focusable was an intentional decision when they were implemented, because it's a poor way of controlling the video. You can accomplish play/pause with spacebar, and seeking with the arrow keys.

Making more of these controls focusable is covered at length in bug 494175. I don't want to deep dive on that here, but the problem in a nutshell is that while focusing things might be less efficient, the current solution is completely undiscoverable. New users have no way of knowing that you can press left and right arrows to seek and up and down arrows to change volume while focused on the Play/pause button. With the current situation where the controls are invisible, it's even more problematic for screen reader users because all they get is an unnamed grouping; they don't even know it's associated with a video.

Regarding non-AT keyboard users, I'd argue that focusing the controls should make them show just like mousing over them does.

Presumably we need to then give them pointer-events: none to avoid them accidentally activating when users click on a blank part of the video, right?

I guess I see why that could be problematic for mouse users, but the problem is that doing that would prevent AT from activating them, since "activation" on the web is inherently tied to click events.

Flags: needinfo?(jteh)

(In reply to James Teh [:Jamie] from comment #5)

Jamie, what's the best solution here? I'm particularly interested in figuring out how we can update this value (so it's correct when the user wants to find it) without it doing annoying announcements when it changes (or, ideally, churning CPU when not visible to sighted users or focused with the keyboard / AT). Do we need to set aria-live=none or something on the scrubber? (does that even work?).

Urgh. There isn't really a good solution here.

Forgot to note that while there isn't a good solution, there might be a suboptimal solution we can live with. When the slider is not focused, we could still expose it, but expose an empty value. That way, an AT user still knows it's there and can focus it to query it and interact with it. Once focused, we set the value.

Assignee: nobody → mconley
Priority: -- → P1

Updating the Accessibility Team's impact assessment to conform with the new triage guidelines. See https://wiki.mozilla.org/Accessibility/Triage for descriptions of these whiteboard flags.

Whiteboard: [access-p1] → [access-s2]

Given the problems with opacity: 0 (real mouse clicks on the video going through to the controls), I wonder if we can move these off-screen instead? Programmatic clicks should still work then, but real mouse clicks won't.

(In reply to James Teh [:Jamie] from comment #5)

Presumably we need to then give them pointer-events: none to avoid them accidentally activating when users click on a blank part of the video, right?

I guess I see why that could be problematic for mouse users, but the problem is that doing that would prevent AT from activating them, since "activation" on the web is inherently tied to click events.

Apparently, programmatic clicks still work when pointer-events: none is used:

data:text/html,<button onclick="alert('hi');" style="pointer-events: none;">blahblahblahblah

I can activate that with a screen reader, but routing the mouse and clicking it does nothing.

Stealing this from you, Mike, since the a11y team are working on video controls. Hope you don't mind. :) Thanks for your patch, though; it's definitely given me a good starting point for working on this.

Assignee: mconley → jteh
Pushed by jteh@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a4a25c487d34
Expose video controls to a11y even when visually hidden. r=MarcoZ,Gijs

Backed out changeset a4a25c487d34 (bug 1622995) for disable_controls_reposition.html failures.

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&selectedTaskRun=Vey6bEhNSwq883aN6rgSIg.0&fromchange=8c18ca347e76b3ab2e40e3c32209a2d3791ed875&searchStr=web-platform-tests-reftest&tochange=0b1d5c36d85f4b7a8063f5d9412723f6b14234ab

Backout link: https://hg.mozilla.org/integration/autoland/rev/869379d186dfafdd1cbbd4c46c834fd50334c475

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=313510362&repo=autoland&lineNumber=3712

[task 2020-08-20T01:44:31.344Z] 01:44:31     INFO - TEST-START | /webvtt/rendering/cues-with-video/processing-model/disable_controls_reposition.html
[task 2020-08-20T01:44:31.354Z] 01:44:31     INFO - PID 1251 | [Parent 1251, Main Thread] WARNING: NS_ENSURE_TRUE(rootFrame) failed: file /builds/worker/checkouts/gecko/dom/base/nsGlobalWindowOuter.cpp, line 4249
[task 2020-08-20T01:44:31.561Z] 01:44:31     INFO - PID 1251 | [1259, MainThread] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp, line 202
[task 2020-08-20T01:44:31.561Z] 01:44:31     INFO - PID 1251 | [1259, MainThread] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp, line 202
[task 2020-08-20T01:44:31.561Z] 01:44:31     INFO - PID 1251 | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to /var/folders/h_/dtv29fsn3_z9htkfcq64msp4000017/T/tmppA1pvt/runtests_leaks_1133_tab_pid1259.log
[task 2020-08-20T01:44:31.561Z] 01:44:31     INFO - PID 1251 | [1259, MainThread] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp, line 202
[task 2020-08-20T01:44:31.561Z] 01:44:31     INFO - PID 1251 | [1259, MainThread] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp, line 202
[task 2020-08-20T01:44:31.561Z] 01:44:31     INFO - PID 1251 | [1259, Main Thread] WARNING: XPCOM_MEM_BLOAT_LOG is set, disabling native allocations.: file /builds/worker/checkouts/gecko/tools/profiler/core/platform.cpp, line 246
[task 2020-08-20T01:44:31.634Z] 01:44:31     INFO - PID 1251 | 1597887871631	Marionette	INFO	Testing http://web-platform.test:8000/webvtt/rendering/cues-with-video/processing-model/disable_controls_reposition.html == http://web-platform.test:8000/webvtt/rendering/cues-with-video/processing-model/disable_controls_reposition-ref.html
[task 2020-08-20T01:44:32.032Z] 01:44:32     INFO - PID 1247 | [Parent 1247, Main Thread] WARNING: Extra shutdown CC: 'i < NORMAL_SHUTDOWN_COLLECTIONS', file /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp, line 3359
[task 2020-08-20T01:44:32.059Z] 01:44:32     INFO - PID 1247 | [Parent 1247, Main Thread] WARNING: NS_ENSURE_TRUE(Preferences::InitStaticMembers()) failed: file /builds/worker/checkouts/gecko/modules/libpref/Preferences.cpp, line 4349
[task 2020-08-20T01:44:32.100Z] 01:44:32     INFO - PID 1251 | [Child 1257, Main Thread] WARNING: Can't add a range if the end is older that the start.: file /builds/worker/checkouts/gecko/dom/html/TimeRanges.cpp, line 73
[task 2020-08-20T01:44:32.100Z] 01:44:32     INFO - PID 1251 | [Child 1257, Main Thread] WARNING: Can't add a range if the end is older that the start.: file /builds/worker/checkouts/gecko/dom/html/TimeRanges.cpp, line 73
[task 2020-08-20T01:44:32.146Z] 01:44:32     INFO - PID 1251 | [Child 1257, Main Thread] WARNING: Can't add a range if the end is older that the start.: file /builds/worker/checkouts/gecko/dom/html/TimeRanges.cpp, line 73
[task 2020-08-20T01:44:32.154Z] 01:44:32     INFO - PID 1251 | [Child 1257, Main Thread] WARNING: Can't add a range if the end is older that the start.: file /builds/worker/checkouts/gecko/dom/html/TimeRanges.cpp, line 73
[task 2020-08-20T01:44:32.166Z] 01:44:32     INFO - Browser exited with return code 0
[task 2020-08-20T01:44:32.166Z] 01:44:32     INFO - PROCESS LEAKS /var/folders/h_/dtv29fsn3_z9htkfcq64msp4000017/T/tmpuD9xgf/runtests_leaks_1133.log
[task 2020-08-20T01:44:32.167Z] 01:44:32     INFO - leakcheck | Processing log file /var/folders/h_/dtv29fsn3_z9htkfcq64msp4000017/T/tmpuD9xgf/runtests_leaks_1133.log for scope /css/css-text/tab-size
[task 2020-08-20T01:44:32.167Z] 01:44:32     INFO - TEST-INFO | leakcheck | default process: leak threshold set at 2100 bytes
[task 2020-08-20T01:44:32.167Z] 01:44:32     INFO - TEST-INFO | leakcheck | forkserver process: leak threshold set at 0 bytes
[task 2020-08-20T01:44:32.167Z] 01:44:32     INFO - TEST-INFO | leakcheck | gmplugin process: leak threshold set at 20000 bytes
[task 2020-08-20T01:44:32.167Z] 01:44:32     INFO - TEST-INFO | leakcheck | gpu process: leak threshold set at 0 bytes
[task 2020-08-20T01:44:32.168Z] 01:44:32     INFO - TEST-INFO | leakcheck | plugin process: leak threshold set at 0 bytes
[task 2020-08-20T01:44:32.168Z] 01:44:32     INFO - TEST-INFO | leakcheck | rdd process: leak threshold set at 400 bytes
[task 2020-08-20T01:44:32.168Z] 01:44:32     INFO - TEST-INFO | leakcheck | socket process: leak threshold set at 0 bytes
[task 2020-08-20T01:44:32.168Z] 01:44:32     INFO - TEST-INFO | leakcheck | tab process: leak threshold set at 10000 bytes
[task 2020-08-20T01:44:32.168Z] 01:44:32     INFO - TEST-INFO | leakcheck | vr process: leak threshold set at 0 bytes
[task 2020-08-20T01:44:32.168Z] 01:44:32     INFO - leakcheck | Processing leak log file /var/folders/h_/dtv29fsn3_z9htkfcq64msp4000017/T/tmpuD9xgf/runtests_leaks_1133.log
[task 2020-08-20T01:44:32.168Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.169Z] 01:44:32     INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, default process 1247
[task 2020-08-20T01:44:32.169Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.169Z] 01:44:32     INFO -      |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
[task 2020-08-20T01:44:32.169Z] 01:44:32     INFO -      |                                      | Per-Inst   Leaked|   Total      Rem|
[task 2020-08-20T01:44:32.169Z] 01:44:32     INFO -    0 |TOTAL                                 |       39        0|  884535        0|
[task 2020-08-20T01:44:32.181Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.181Z] 01:44:32     INFO - nsTraceRefcnt::DumpStatistics: 1905 entries
[task 2020-08-20T01:44:32.181Z] 01:44:32     INFO - TEST-PASS | leakcheck | default no leaks detected!
[task 2020-08-20T01:44:32.181Z] 01:44:32     INFO - PID 1251 | [Child 1257, Main Thread] WARNING: Can't add a range if the end is older that the start.: file /builds/worker/checkouts/gecko/dom/html/TimeRanges.cpp, line 73
[task 2020-08-20T01:44:32.182Z] 01:44:32     INFO - leakcheck | Processing leak log file /var/folders/h_/dtv29fsn3_z9htkfcq64msp4000017/T/tmpuD9xgf/runtests_leaks_1133_tab_pid1249.log
[task 2020-08-20T01:44:32.182Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.182Z] 01:44:32     INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, tab process 1249
[task 2020-08-20T01:44:32.183Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.183Z] 01:44:32     INFO -      |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
[task 2020-08-20T01:44:32.183Z] 01:44:32     INFO -      |                                      | Per-Inst   Leaked|   Total      Rem|
[task 2020-08-20T01:44:32.184Z] 01:44:32     INFO -    0 |TOTAL                                 |       39        0|   86880        0|
[task 2020-08-20T01:44:32.184Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.184Z] 01:44:32     INFO - nsTraceRefcnt::DumpStatistics: 815 entries
[task 2020-08-20T01:44:32.189Z] 01:44:32     INFO - TEST-PASS | leakcheck | tab no leaks detected!
[task 2020-08-20T01:44:32.190Z] 01:44:32     INFO - leakcheck | Processing leak log file /var/folders/h_/dtv29fsn3_z9htkfcq64msp4000017/T/tmpuD9xgf/runtests_leaks_1133_tab_pid1256.log
[task 2020-08-20T01:44:32.190Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.190Z] 01:44:32     INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, tab process 1256
[task 2020-08-20T01:44:32.190Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.190Z] 01:44:32     INFO -      |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
[task 2020-08-20T01:44:32.190Z] 01:44:32     INFO -      |                                      | Per-Inst   Leaked|   Total      Rem|
[task 2020-08-20T01:44:32.191Z] 01:44:32     INFO -    0 |TOTAL                                 |       36        0|   15723        0|
[task 2020-08-20T01:44:32.191Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.191Z] 01:44:32     INFO - nsTraceRefcnt::DumpStatistics: 379 entries
[task 2020-08-20T01:44:32.191Z] 01:44:32     INFO - TEST-PASS | leakcheck | tab no leaks detected!
[task 2020-08-20T01:44:32.191Z] 01:44:32     INFO - leakcheck | Processing leak log file /var/folders/h_/dtv29fsn3_z9htkfcq64msp4000017/T/tmpuD9xgf/runtests_leaks_1133_tab_pid1253.log
[task 2020-08-20T01:44:32.191Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.191Z] 01:44:32     INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, tab process 1253
[task 2020-08-20T01:44:32.191Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.191Z] 01:44:32     INFO -      |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
[task 2020-08-20T01:44:32.191Z] 01:44:32     INFO -      |                                      | Per-Inst   Leaked|   Total      Rem|
[task 2020-08-20T01:44:32.191Z] 01:44:32     INFO -    0 |TOTAL                                 |       38        0|  200101        0|
[task 2020-08-20T01:44:32.192Z] 01:44:32     INFO - PID 1251 | [Child 1257, Main Thread] WARNING: Can't add a range if the end is older that the start.: file /builds/worker/checkouts/gecko/dom/html/TimeRanges.cpp, line 73
[task 2020-08-20T01:44:32.197Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.198Z] 01:44:32     INFO - nsTraceRefcnt::DumpStatistics: 882 entries
[task 2020-08-20T01:44:32.199Z] 01:44:32     INFO - TEST-PASS | leakcheck | tab no leaks detected!
[task 2020-08-20T01:44:32.199Z] 01:44:32     INFO - leakcheck | Processing leak log file /var/folders/h_/dtv29fsn3_z9htkfcq64msp4000017/T/tmpuD9xgf/runtests_leaks_1133_tab_pid1250.log
[task 2020-08-20T01:44:32.199Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.199Z] 01:44:32     INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, tab process 1250
[task 2020-08-20T01:44:32.199Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.199Z] 01:44:32     INFO -      |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
[task 2020-08-20T01:44:32.199Z] 01:44:32     INFO -      |                                      | Per-Inst   Leaked|   Total      Rem|
[task 2020-08-20T01:44:32.199Z] 01:44:32     INFO -    0 |TOTAL                                 |       37        0|   38405        0|
[task 2020-08-20T01:44:32.203Z] 01:44:32     INFO - 
[task 2020-08-20T01:44:32.203Z] 01:44:32     INFO - nsTraceRefcnt::DumpStatistics: 747 entries
[task 2020-08-20T01:44:32.203Z] 01:44:32     INFO - TEST-PASS | leakcheck | tab no leaks detected!
[task 2020-08-20T01:44:32.205Z] 01:44:32     INFO - Closing logging queue
[task 2020-08-20T01:44:32.205Z] 01:44:32     INFO - queue closed
[task 2020-08-20T01:44:32.244Z] 01:44:32     INFO - PID 1251 | [Child 1257, Main Thread] WARNING: Can't add a range if the end is older that the start.: file /builds/worker/checkouts/gecko/dom/html/TimeRanges.cpp, line 73
[task 2020-08-20T01:44:32.266Z] 01:44:32     INFO - Application command: /Users/cltbld/tasks/task_1597887035/build/application/Firefox NightlyDebug.app/Contents/MacOS/firefox --marionette about:blank -foreground -profile /var/folders/h_/dtv29fsn3_z9htkfcq64msp4000017/T/tmp5jgwyK
[task 2020-08-20T01:44:32.283Z] 01:44:32     INFO - Starting runner
[task 2020-08-20T01:44:32.358Z] 01:44:32     INFO - PID 1251 | [Child 1257, Main Thread] WARNING: Can't add a range if the end is older that the start.: file /builds/worker/checkouts/gecko/dom/html/TimeRanges.cpp, line 73
[task 2020-08-20T01:44:32.438Z] 01:44:32     INFO - PID 1251 | [Child 1257, Main Thread] WARNING: Can't add a range if the end is older that the start.: file /builds/worker/checkouts/gecko/dom/html/TimeRanges.cpp, line 73
[task 2020-08-20T01:44:32.438Z] 01:44:32     INFO - PID 1260 | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to /var/folders/h_/dtv29fsn3_z9htkfcq64msp4000017/T/tmp5jgwyK/runtests_leaks_1133.log
[task 2020-08-20T01:44:32.439Z] 01:44:32     INFO - PID 1260 | [1260, Main Thread] WARNING: XPCOM_MEM_BLOAT_LOG is set, disabling native allocations.: file /builds/worker/checkouts/gecko/tools/profiler/core/platform.cpp, line 246
[task 2020-08-20T01:44:32.544Z] 01:44:32     INFO - PID 1251 | 1597887872501	Marionette	INFO	[37] Emitted TestRendered event
[task 2020-08-20T01:44:33.487Z] 01:44:33     INFO - PID 1251 | 1597887873479	Marionette	INFO	No differences allowed
[task 2020-08-20T01:44:33.547Z] 01:44:33     INFO - TEST-UNEXPECTED-FAIL | /webvtt/rendering/cues-with-video/processing-model/disable_controls_reposition.html | Testing http://web-platform.test:8000/webvtt/rendering/cues-with-video/processing-model/disable_controls_reposition.html == http://web-platform.test:8000/webvtt/rendering/cues-with-video/processing-model/disable_controls_reposition-ref.html
[task 2020-08-20T01:44:33.548Z] 01:44:33     INFO - Found 15000 pixels different, maximum difference per channel 255
[task 2020-08-20T01:44:33.548Z] 01:44:33     INFO - REFTEST   IMAGE 1 (TEST): data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwA...
[task 2020-08-20T01:44:33.548Z] 01:44:33     INFO - REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAA....
[task 2020-08-20T01:44:33.548Z] 01:44:33     INFO - TEST-INFO took 2222ms
Flags: needinfo?(jteh)
Flags: needinfo?(jteh)
Pushed by jteh@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/173c59907b33
Expose video controls to a11y even when visually hidden. r=MarcoZ,Gijs,heycam
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 81 Branch
Accessibility Severity: --- → s2
Whiteboard: [access-s2]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: