Diff
Modified: branches/safari-601.1.46-branch/LayoutTests/ChangeLog (190461 => 190462)
--- branches/safari-601.1.46-branch/LayoutTests/ChangeLog 2015-10-02 07:57:49 UTC (rev 190461)
+++ branches/safari-601.1.46-branch/LayoutTests/ChangeLog 2015-10-02 07:58:53 UTC (rev 190462)
@@ -1,5 +1,21 @@
2015-10-02 Babak Shafiei <[email protected]>
+ Merge r188182.
+
+ 2015-08-07 James Craig <[email protected]>
+
+ REGRESSION(r184722) AX: WebKit video playback toolbar removed from DOM; no longer accessible to VoiceOver
+ https://bugs.webkit.org/show_bug.cgi?id=145684
+
+ Reviewed by Dean Jackson.
+
+ * http/tests/contentextensions/text-track-blocked-expected.txt: Minor update to test case expectation.
+ * media/video-controls-show-on-kb-or-ax-event-expected.txt: Added.
+ * media/video-controls-show-on-kb-or-ax-event.html: New test validates video controls can be displayed without the need for a mouse.
+ * platform/mac/media/track/track-cue-rendering-horizontal-expected.txt: Minor update to test case expectation.
+
+2015-10-02 Babak Shafiei <[email protected]>
+
Merge r188016.
2015-08-05 Zalan Bujtas <[email protected]>
Modified: branches/safari-601.1.46-branch/LayoutTests/http/tests/contentextensions/text-track-blocked-expected.txt (190461 => 190462)
--- branches/safari-601.1.46-branch/LayoutTests/http/tests/contentextensions/text-track-blocked-expected.txt 2015-10-02 07:57:49 UTC (rev 190461)
+++ branches/safari-601.1.46-branch/LayoutTests/http/tests/contentextensions/text-track-blocked-expected.txt 2015-10-02 07:58:53 UTC (rev 190462)
@@ -14,3 +14,5 @@
RenderVideo {VIDEO} at (0,18) size 320x240
layer at (8,26) size 320x240
RenderFlexibleBox {DIV} at (0,0) size 320x240
+layer at (8,256) size 320x10
+ RenderButton {BUTTON} at (0,230) size 320x10 [bgcolor=#C0C0C0] [border: (2px outset #C0C0C0)]
Copied: branches/safari-601.1.46-branch/LayoutTests/media/video-controls-show-on-kb-or-ax-event-expected.txt (from rev 188182, trunk/LayoutTests/media/video-controls-show-on-kb-or-ax-event-expected.txt) (0 => 190462)
--- branches/safari-601.1.46-branch/LayoutTests/media/video-controls-show-on-kb-or-ax-event-expected.txt (rev 0)
+++ branches/safari-601.1.46-branch/LayoutTests/media/video-controls-show-on-kb-or-ax-event-expected.txt 2015-10-02 07:58:53 UTC (rev 190462)
@@ -0,0 +1,6 @@
+This tests that, after the video controls fade out, they can be shown when VoiceOver or a keyboard user clicks the hidden "Show Controls" button.
+
+PASS
+
+
+
Copied: branches/safari-601.1.46-branch/LayoutTests/media/video-controls-show-on-kb-or-ax-event.html (from rev 188182, trunk/LayoutTests/media/video-controls-show-on-kb-or-ax-event.html) (0 => 190462)
--- branches/safari-601.1.46-branch/LayoutTests/media/video-controls-show-on-kb-or-ax-event.html (rev 0)
+++ branches/safari-601.1.46-branch/LayoutTests/media/video-controls-show-on-kb-or-ax-event.html 2015-10-02 07:58:53 UTC (rev 190462)
@@ -0,0 +1,42 @@
+<body>
+<p>
+ This tests that, after the video controls fade out, they can be shown when VoiceOver or a keyboard user clicks the hidden "Show Controls" button.
+</p>
+<p id="result">
+ FAIL: Test did not run.<br>
+</p>
+<video id="video" controls autoplay _onplaying_="playing()" src=""
+<script>
+ if (window.testRunner) {
+ testRunner.waitUntilDone();
+ testRunner.dumpAsText();
+ }
+
+ function playing() {
+
+ // Mouse over the video then mouse out to hide controls more quickly.
+ eventSender.mouseMoveTo(100,100);
+ eventSender.mouseMoveTo(1,1);
+
+ setTimeout(function() {
+ var result = document.getElementById("result");
+ result.innerHTML = "";
+ var root = internals.shadowRoot(document.getElementById("video"))
+
+ var button = root.firstChild.querySelector('button');
+ if (button) {
+ button.focus();
+ eventSender.keyDown(' '); // Use keyboard to press the selected button.
+ } else {
+ result.innerHTML += 'FAIL: "Show Controls" button is not available.<br>';
+ }
+
+ // Verifies the toolbar is back in the DOM.
+ var controls = root.firstChild.querySelector('[role="toolbar"]');
+ result.innerHTML += controls ? 'PASS': 'FAIL: Test ending, but toolbar is not visible.';
+
+ testRunner.notifyDone();
+ }, 300) // Wait for video toolbar to hide.
+ }
+</script>
+</body>
Modified: branches/safari-601.1.46-branch/LayoutTests/platform/mac/media/track/track-cue-rendering-horizontal-expected.txt (190461 => 190462)
--- branches/safari-601.1.46-branch/LayoutTests/platform/mac/media/track/track-cue-rendering-horizontal-expected.txt 2015-10-02 07:57:49 UTC (rev 190461)
+++ branches/safari-601.1.46-branch/LayoutTests/platform/mac/media/track/track-cue-rendering-horizontal-expected.txt 2015-10-02 07:58:53 UTC (rev 190462)
@@ -60,3 +60,5 @@
RenderInline {SPAN} at (0,0) size 275x14 [bgcolor=#000000CC]
RenderText {#text} at (0,0) size 275x14
text run at (0,0) width 275: "Cue 6: should be on top of bottom positioned cue 5."
+layer at (8,238) size 320x10
+ RenderButton {BUTTON} at (0,230) size 320x10 [bgcolor=#C0C0C0] [border: (2px outset #C0C0C0)]
Modified: branches/safari-601.1.46-branch/Source/WebCore/ChangeLog (190461 => 190462)
--- branches/safari-601.1.46-branch/Source/WebCore/ChangeLog 2015-10-02 07:57:49 UTC (rev 190461)
+++ branches/safari-601.1.46-branch/Source/WebCore/ChangeLog 2015-10-02 07:58:53 UTC (rev 190462)
@@ -1,5 +1,38 @@
2015-10-02 Babak Shafiei <[email protected]>
+ Merge r188182.
+
+ 2015-08-07 James Craig <[email protected]>
+
+ REGRESSION(r184722) AX: WebKit video playback toolbar removed from DOM; no longer accessible to VoiceOver
+ https://bugs.webkit.org/show_bug.cgi?id=145684
+
+ Reviewed by Dean Jackson.
+
+ Updated Apple Video controls to add an invisible but focusable button that allows VoiceOver
+ users (and when unblocked, keyboard users) to re-display the video controls.
+
+ Test: media/video-controls-show-on-kb-or-ax-event.html
+
+ * English.lproj/mediaControlsLocalizedStrings.js:
+ * Modules/mediacontrols/mediaControlsApple.css:
+ (audio::-webkit-media-show-controls):
+ (video::-webkit-media-show-controls):
+ * Modules/mediacontrols/mediaControlsApple.js:
+ (Controller.prototype.createControls):
+ (Controller.prototype.handleFullscreenChange):
+ (Controller.prototype.handleShowControlsClick):
+ (Controller.prototype.handleWrapperMouseMove):
+ (Controller.prototype.updateForShowingControls):
+ (Controller.prototype.showControls):
+ (Controller.prototype.hideControls):
+ (Controller.prototype.setNeedsUpdateForDisplayedWidth):
+ * Modules/mediacontrols/mediaControlsiOS.css:
+ (audio::-webkit-media-show-controls):
+ (video::-webkit-media-show-controls):
+
+2015-10-02 Babak Shafiei <[email protected]>
+
Merge r187994.
2015-08-05 Zalan Bujtas <[email protected]>
Modified: branches/safari-601.1.46-branch/Source/WebCore/English.lproj/mediaControlsLocalizedStrings.js (190461 => 190462)
--- branches/safari-601.1.46-branch/Source/WebCore/English.lproj/mediaControlsLocalizedStrings.js 2015-10-02 07:57:49 UTC (rev 190461)
+++ branches/safari-601.1.46-branch/Source/WebCore/English.lproj/mediaControlsLocalizedStrings.js 2015-10-02 07:58:53 UTC (rev 190462)
@@ -27,6 +27,7 @@
'Remaining': 'Remaining',
'Rewind': 'Rewind',
'Rewind ##sec## Seconds': 'Rewind ##sec## Seconds',
+ 'Show Controls': 'Show Controls',
'Stalled': 'Stalled',
'Start Playback': 'Start Playback',
'Subtitles': 'Subtitles',
Modified: branches/safari-601.1.46-branch/Source/WebCore/Modules/mediacontrols/mediaControlsApple.css (190461 => 190462)
--- branches/safari-601.1.46-branch/Source/WebCore/Modules/mediacontrols/mediaControlsApple.css 2015-10-02 07:57:49 UTC (rev 190461)
+++ branches/safari-601.1.46-branch/Source/WebCore/Modules/mediacontrols/mediaControlsApple.css 2015-10-02 07:58:53 UTC (rev 190462)
@@ -104,6 +104,22 @@
opacity: 1;
}
+audio::-webkit-media-show-controls {
+ display: none !important;
+}
+video::-webkit-media-show-controls {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ display: block;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 10px;
+ opacity: 0;
+ -webkit-appearance: none;
+}
+
video::-webkit-media-controls-panel-background-container,
audio::-webkit-media-controls-panel-background-container {
position: absolute;
Modified: branches/safari-601.1.46-branch/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js (190461 => 190462)
--- branches/safari-601.1.46-branch/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js 2015-10-02 07:57:49 UTC (rev 190461)
+++ branches/safari-601.1.46-branch/Source/WebCore/Modules/mediacontrols/mediaControlsApple.js 2015-10-02 07:58:53 UTC (rev 190462)
@@ -495,6 +495,14 @@
wirelessTargetPicker.setAttribute('aria-label', this.UIString('Choose Wireless Display'));
this.listenFor(wirelessTargetPicker, 'click', this.handleWirelessPickerButtonClicked);
+ // Show controls button is an accessibility workaround since the controls are now removed from the DOM. http://webkit.org/b/145684
+ var showControlsButton = this.showControlsButton = document.createElement('button');
+ showControlsButton.setAttribute('pseudo', '-webkit-media-show-controls');
+ showControlsButton.hidden = true;
+ showControlsButton.setAttribute('aria-label', this.UIString('Show Controls'));
+ this.listenFor(showControlsButton, 'click', this.handleShowControlsClick);
+ this.base.appendChild(showControlsButton);
+
if (!Controller.gSimulateWirelessPlaybackTarget)
wirelessTargetPicker.classList.add(this.ClassNames.hidden);
},
@@ -793,6 +801,15 @@
}
},
+ handleShowControlsClick: function(event)
+ {
+ if (!this.video.controls && !this.isFullScreen())
+ return;
+
+ if (this.controlsAreHidden())
+ this.showControls(true);
+ },
+
handleWrapperMouseMove: function(event)
{
if (!this.video.controls && !this.isFullScreen())
@@ -1404,7 +1421,7 @@
}
},
- showControls: function()
+ showControls: function(focusControls)
{
this.updateShouldListenForPlaybackTargetAvailabilityEvent();
if (!this.video.controls && !this.isFullScreen())
@@ -1414,7 +1431,10 @@
if (this.shouldHaveControls() && !this.controls.panel.parentElement) {
this.base.appendChild(this.controls.inlinePlaybackPlaceholder);
this.base.appendChild(this.controls.panel);
+ if (focusControls)
+ this.controls.playButton.focus();
}
+ this.showControlsButton.hidden = true;
},
hideControls: function()
@@ -1427,6 +1447,7 @@
this.controls.panel.classList.remove(this.ClassNames.show);
if (this.controls.panelBackground)
this.controls.panelBackground.classList.remove(this.ClassNames.show);
+ this.showControlsButton.hidden = false;
},
setNeedsUpdateForDisplayedWidth: function()
Modified: branches/safari-601.1.46-branch/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.css (190461 => 190462)
--- branches/safari-601.1.46-branch/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.css 2015-10-02 07:57:49 UTC (rev 190461)
+++ branches/safari-601.1.46-branch/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.css 2015-10-02 07:58:53 UTC (rev 190462)
@@ -132,6 +132,22 @@
opacity: 1;
}
+audio::-webkit-media-show-controls {
+ display: none !important;
+}
+video::-webkit-media-show-controls {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ display: block;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 10px;
+ opacity: 0;
+ -webkit-appearance: none;
+}
+
audio::-webkit-media-controls-panel,
video::-webkit-media-controls-panel {
box-sizing: border-box;