Commit 8f0f9ceb authored by Mounir Lamouri's avatar Mounir Lamouri Committed by Commit Bot

Media Controls: expose current time in timeline accessibility value description.

Instead of the proper value that may have many digits and make no sense
to a human.

Bug: 829627
Change-Id: I467354edc416af46de0f1c625e6b890414f8ae6f
Reviewed-on: https://chromium-review.googlesource.com/998915
Commit-Queue: Mounir Lamouri <mlamouri@chromium.org>
Reviewed-by: default avatarTommy Steimel <steimel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548775}
parent a7713071
<!DOCTYPE html>
<title>Media Controls: timeline accessibility tests</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../media-controls.js"></script>
<video controls></video>
<script>
async_test(t => {
assert_true(internals.runtimeFlags.accessibilityObjectModelEnabled);
var video = document.querySelector('video');
video.src = '../content/test.ogv';
var timeline = timelineElement(video);
assert_not_equals(timeline, null);
video.play().then(t.step_func(() => {
assert_equals(timeline.getAttribute('aria-valuetext'), '0:00');
// Let the video play a bit before checking the aria-valuetext again.
setTimeout(t.step_func_done(() => {
assert_equals(timeline.getAttribute('aria-valuetext'), '0:01');
}), 1500);
}));
});
</script>
...@@ -332,12 +332,6 @@ AXObject* AccessibilityMediaTimeline::Create( ...@@ -332,12 +332,6 @@ AXObject* AccessibilityMediaTimeline::Create(
return new AccessibilityMediaTimeline(layout_object, ax_object_cache); return new AccessibilityMediaTimeline(layout_object, ax_object_cache);
} }
String AccessibilityMediaTimeline::ValueDescription() const {
if (auto* input = ToHTMLInputElementOrNull(layout_object_->GetNode()))
return LocalizedMediaTimeDescription(input->value().ToFloat());
return String();
}
String AccessibilityMediaTimeline::Description( String AccessibilityMediaTimeline::Description(
AXNameFrom name_from, AXNameFrom name_from,
AXDescriptionFrom& description_from, AXDescriptionFrom& description_from,
......
...@@ -70,7 +70,6 @@ class AccessibilityMediaTimeline final : public AXSlider { ...@@ -70,7 +70,6 @@ class AccessibilityMediaTimeline final : public AXSlider {
String Description(AXNameFrom, String Description(AXNameFrom,
AXDescriptionFrom&, AXDescriptionFrom&,
AXObjectVector* description_objects) const override; AXObjectVector* description_objects) const override;
String ValueDescription() const override;
private: private:
AccessibilityMediaTimeline(LayoutObject*, AXObjectCacheImpl&); AccessibilityMediaTimeline(LayoutObject*, AXObjectCacheImpl&);
......
...@@ -1722,6 +1722,11 @@ void MediaControlsImpl::MaybeRecordElementsDisplayed() const { ...@@ -1722,6 +1722,11 @@ void MediaControlsImpl::MaybeRecordElementsDisplayed() const {
overflow_menu_->MaybeRecordDisplayed(); overflow_menu_->MaybeRecordDisplayed();
} }
const MediaControlCurrentTimeDisplayElement&
MediaControlsImpl::CurrentTimeDisplay() const {
return *current_time_display_;
}
void MediaControlsImpl::PositionPopupMenu(Element* popup_menu) { void MediaControlsImpl::PositionPopupMenu(Element* popup_menu) {
// The popup is positioned slightly on the inside of the bottom right corner. // The popup is positioned slightly on the inside of the bottom right corner.
static constexpr int kPopupMenuMarginPx = 4; static constexpr int kPopupMenuMarginPx = 4;
......
...@@ -146,6 +146,9 @@ class MODULES_EXPORT MediaControlsImpl final : public HTMLDivElement, ...@@ -146,6 +146,9 @@ class MODULES_EXPORT MediaControlsImpl final : public HTMLDivElement,
void MaybeRecordOverflowTimeToAction(); void MaybeRecordOverflowTimeToAction();
// Accessors for UI elements.
const MediaControlCurrentTimeDisplayElement& CurrentTimeDisplay() const;
virtual void Trace(blink::Visitor*); virtual void Trace(blink::Visitor*);
// Track the state of the controls. // Track the state of the controls.
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "core/style/ComputedStyle.h" #include "core/style/ComputedStyle.h"
#include "modules/media_controls/MediaControlsImpl.h" #include "modules/media_controls/MediaControlsImpl.h"
#include "modules/media_controls/MediaControlsResourceLoader.h" #include "modules/media_controls/MediaControlsResourceLoader.h"
#include "modules/media_controls/elements/MediaControlCurrentTimeDisplayElement.h"
#include "modules/media_controls/elements/MediaControlElementsHelper.h" #include "modules/media_controls/elements/MediaControlElementsHelper.h"
#include "platform/runtime_enabled_features.h" #include "platform/runtime_enabled_features.h"
#include "public/platform/Platform.h" #include "public/platform/Platform.h"
...@@ -87,6 +88,9 @@ bool MediaControlTimelineElement::WillRespondToMouseClickEvents() { ...@@ -87,6 +88,9 @@ bool MediaControlTimelineElement::WillRespondToMouseClickEvents() {
void MediaControlTimelineElement::SetPosition(double current_time) { void MediaControlTimelineElement::SetPosition(double current_time) {
setValue(String::Number(current_time)); setValue(String::Number(current_time));
setAttribute(
HTMLNames::aria_valuetextAttr,
AtomicString(GetMediaControls().CurrentTimeDisplay().textContent(true)));
RenderBarSegments(); RenderBarSegments();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment