Commit 106249f9 authored by Tommy Li's avatar Tommy Li Committed by Commit Bot

[omnibox] Make ToggleImageButton support accessible names

Currently, ToggleImageButton relies on the tooltip text to provide the
accessible name.

In some circumstances, we want a more explanatory AX name than the
tooltip text, and this is supported by the base Button class.

This CL expands ToggleImageButton to support a different AX name than
the tooltip text, in both toggled and untoggled states.

Bug: 1099788
Change-Id: Icfdcaac4ba50ba233e33663df74a0c32680bce07
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2292724
Auto-Submit: Tommy Li <tommycli@chromium.org>
Reviewed-by: default avatarAllen Bauer <kylixrd@chromium.org>
Commit-Queue: Tommy Li <tommycli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#788644}
parent d424cb32
...@@ -244,6 +244,10 @@ void ToggleImageButton::SetToggledTooltipText(const base::string16& tooltip) { ...@@ -244,6 +244,10 @@ void ToggleImageButton::SetToggledTooltipText(const base::string16& tooltip) {
toggled_tooltip_text_ = tooltip; toggled_tooltip_text_ = tooltip;
} }
void ToggleImageButton::SetToggledAccessibleName(const base::string16& name) {
toggled_accessible_name_ = name;
}
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// ToggleImageButton, ImageButton overrides: // ToggleImageButton, ImageButton overrides:
...@@ -277,7 +281,13 @@ base::string16 ToggleImageButton::GetTooltipText(const gfx::Point& p) const { ...@@ -277,7 +281,13 @@ base::string16 ToggleImageButton::GetTooltipText(const gfx::Point& p) const {
void ToggleImageButton::GetAccessibleNodeData(ui::AXNodeData* node_data) { void ToggleImageButton::GetAccessibleNodeData(ui::AXNodeData* node_data) {
ImageButton::GetAccessibleNodeData(node_data); ImageButton::GetAccessibleNodeData(node_data);
node_data->SetName(GetTooltipText(gfx::Point())); if (!toggled_)
return;
if (!toggled_accessible_name_.empty())
node_data->SetName(toggled_accessible_name_);
else if (!toggled_tooltip_text_.empty())
node_data->SetName(toggled_tooltip_text_);
// Use the visual pressed image as a cue for making this control into an // Use the visual pressed image as a cue for making this control into an
// accessible toggle button. // accessible toggle button.
......
...@@ -133,6 +133,9 @@ class VIEWS_EXPORT ToggleImageButton : public ImageButton { ...@@ -133,6 +133,9 @@ class VIEWS_EXPORT ToggleImageButton : public ImageButton {
// Set the tooltip text displayed when the button is toggled. // Set the tooltip text displayed when the button is toggled.
void SetToggledTooltipText(const base::string16& tooltip); void SetToggledTooltipText(const base::string16& tooltip);
// Set the accessible text used when the button is toggled.
void SetToggledAccessibleName(const base::string16& name);
// Overridden from ImageButton: // Overridden from ImageButton:
const gfx::ImageSkia& GetImage(ButtonState state) const override; const gfx::ImageSkia& GetImage(ButtonState state) const override;
void SetImage(ButtonState state, const gfx::ImageSkia& image) override; void SetImage(ButtonState state, const gfx::ImageSkia& image) override;
...@@ -156,6 +159,10 @@ class VIEWS_EXPORT ToggleImageButton : public ImageButton { ...@@ -156,6 +159,10 @@ class VIEWS_EXPORT ToggleImageButton : public ImageButton {
// this one is shown when toggled. // this one is shown when toggled.
base::string16 toggled_tooltip_text_; base::string16 toggled_tooltip_text_;
// The parent class's accessibility data is used when not toggled, and this
// one is used when toggled.
base::string16 toggled_accessible_name_;
DISALLOW_COPY_AND_ASSIGN(ToggleImageButton); DISALLOW_COPY_AND_ASSIGN(ToggleImageButton);
}; };
......
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