Commit 4ad27b1c authored by Anastasia Helfinstein's avatar Anastasia Helfinstein Committed by Commit Bot

Add Increment and Decrement accessible actions to views::Slider

Bug: 1126920
Change-Id: Ia8357864f15f29266432423c87351c1899725451
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2429518Reviewed-by: default avatarElly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Anastasia Helfinstein <anastasi@google.com>
Cr-Commit-Position: refs/heads/master@{#811370}
parent 6b46225f
......@@ -18,6 +18,7 @@
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkColor.h"
#include "third_party/skia/include/core/SkPaint.h"
#include "ui/accessibility/ax_action_data.h"
#include "ui/accessibility/ax_enums.mojom.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/base/resource/resource_bundle.h"
......@@ -316,6 +317,20 @@ void Slider::GetAccessibleNodeData(ui::AXNodeData* node_data) {
node_data->role = ax::mojom::Role::kSlider;
node_data->SetValue(base::UTF8ToUTF16(
base::StringPrintf("%d%%", static_cast<int>(value_ * 100 + 0.5))));
node_data->AddAction(ax::mojom::Action::kIncrement);
node_data->AddAction(ax::mojom::Action::kDecrement);
}
bool Slider::HandleAccessibleAction(const ui::AXActionData& action_data) {
if (action_data.action == ax::mojom::Action::kIncrement) {
SetValueInternal(value_ + keyboard_increment_, SliderChangeReason::kByUser);
return true;
} else if (action_data.action == ax::mojom::Action::kDecrement) {
SetValueInternal(value_ - keyboard_increment_, SliderChangeReason::kByUser);
return true;
} else {
return views::View::HandleAccessibleAction(action_data);
}
}
void Slider::OnPaint(gfx::Canvas* canvas) {
......
......@@ -122,6 +122,7 @@ class VIEWS_EXPORT Slider : public View, public gfx::AnimationDelegate {
void OnMouseReleased(const ui::MouseEvent& event) override;
bool OnKeyPressed(const ui::KeyEvent& event) override;
void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
bool HandleAccessibleAction(const ui::AXActionData& action_data) override;
void OnFocus() override;
void OnBlur() override;
void VisibilityChanged(View* starting_from, bool is_visible) override;
......
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