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(
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(
AXNameFrom name_from,
AXDescriptionFrom& description_from,
......
......@@ -70,7 +70,6 @@ class AccessibilityMediaTimeline final : public AXSlider {
String Description(AXNameFrom,
AXDescriptionFrom&,
AXObjectVector* description_objects) const override;
String ValueDescription() const override;
private:
AccessibilityMediaTimeline(LayoutObject*, AXObjectCacheImpl&);
......
......@@ -1722,6 +1722,11 @@ void MediaControlsImpl::MaybeRecordElementsDisplayed() const {
overflow_menu_->MaybeRecordDisplayed();
}
const MediaControlCurrentTimeDisplayElement&
MediaControlsImpl::CurrentTimeDisplay() const {
return *current_time_display_;
}
void MediaControlsImpl::PositionPopupMenu(Element* popup_menu) {
// The popup is positioned slightly on the inside of the bottom right corner.
static constexpr int kPopupMenuMarginPx = 4;
......
......@@ -146,6 +146,9 @@ class MODULES_EXPORT MediaControlsImpl final : public HTMLDivElement,
void MaybeRecordOverflowTimeToAction();
// Accessors for UI elements.
const MediaControlCurrentTimeDisplayElement& CurrentTimeDisplay() const;
virtual void Trace(blink::Visitor*);
// Track the state of the controls.
......
......@@ -24,6 +24,7 @@
#include "core/style/ComputedStyle.h"
#include "modules/media_controls/MediaControlsImpl.h"
#include "modules/media_controls/MediaControlsResourceLoader.h"
#include "modules/media_controls/elements/MediaControlCurrentTimeDisplayElement.h"
#include "modules/media_controls/elements/MediaControlElementsHelper.h"
#include "platform/runtime_enabled_features.h"
#include "public/platform/Platform.h"
......@@ -87,6 +88,9 @@ bool MediaControlTimelineElement::WillRespondToMouseClickEvents() {
void MediaControlTimelineElement::SetPosition(double current_time) {
setValue(String::Number(current_time));
setAttribute(
HTMLNames::aria_valuetextAttr,
AtomicString(GetMediaControls().CurrentTimeDisplay().textContent(true)));
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