summaryrefslogtreecommitdiffstats
path: root/views/controls
diff options
context:
space:
mode:
authordmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-03 23:13:49 +0000
committerdmazzoni@chromium.org <dmazzoni@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-03 23:13:49 +0000
commitc45dde3c15cddbca7795cab1c28fa472148b01b1 (patch)
tree74f32f6537b87946703839e7e2dfde2f2a2f9063 /views/controls
parent7c8f18ab4383e497f0ba3663156abf81ea5af3e6 (diff)
downloadchromium_src-c45dde3c15cddbca7795cab1c28fa472148b01b1.zip
chromium_src-c45dde3c15cddbca7795cab1c28fa472148b01b1.tar.gz
chromium_src-c45dde3c15cddbca7795cab1c28fa472148b01b1.tar.bz2
Refactor Views accessibility.
BUG=none TEST=none Review URL: http://codereview.chromium.org/6581010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76825 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/controls')
-rw-r--r--views/controls/button/button.cc20
-rw-r--r--views/controls/button/button.h7
-rw-r--r--views/controls/button/button_dropdown.cc16
-rw-r--r--views/controls/button/button_dropdown.h4
-rw-r--r--views/controls/button/checkbox.cc11
-rw-r--r--views/controls/button/checkbox.h3
-rw-r--r--views/controls/button/custom_button.cc19
-rw-r--r--views/controls/button/custom_button.h2
-rw-r--r--views/controls/button/menu_button.cc16
-rw-r--r--views/controls/button/menu_button.h4
-rw-r--r--views/controls/button/native_button_win.cc26
-rw-r--r--views/controls/button/radio_button.cc6
-rw-r--r--views/controls/button/radio_button.h14
-rw-r--r--views/controls/combobox/combobox.cc15
-rw-r--r--views/controls/combobox/combobox.h26
-rw-r--r--views/controls/image_view.cc7
-rw-r--r--views/controls/image_view.h9
-rw-r--r--views/controls/label.cc12
-rw-r--r--views/controls/label.h5
-rw-r--r--views/controls/label_unittest.cc13
-rw-r--r--views/controls/link.cc6
-rw-r--r--views/controls/link.h16
-rw-r--r--views/controls/menu/menu_controller.cc6
-rw-r--r--views/controls/menu/menu_item_view.cc18
-rw-r--r--views/controls/menu/menu_item_view.h6
-rw-r--r--views/controls/menu/menu_scroll_view_container.cc16
-rw-r--r--views/controls/menu/menu_scroll_view_container.h14
-rw-r--r--views/controls/menu/submenu_view.cc50
-rw-r--r--views/controls/menu/submenu_view.h24
-rw-r--r--views/controls/native_control.cc4
-rw-r--r--views/controls/native_control_gtk.cc6
-rw-r--r--views/controls/native_control_win.cc6
-rw-r--r--views/controls/progress_bar.cc10
-rw-r--r--views/controls/progress_bar.h8
-rw-r--r--views/controls/progress_bar_unittest.cc17
-rw-r--r--views/controls/resize_area.cc5
-rw-r--r--views/controls/resize_area.h13
-rw-r--r--views/controls/scrollbar/scroll_bar.cc5
-rw-r--r--views/controls/scrollbar/scroll_bar.h2
-rw-r--r--views/controls/separator.cc5
-rw-r--r--views/controls/separator.h11
-rw-r--r--views/controls/single_split_view.cc10
-rw-r--r--views/controls/single_split_view.h7
-rw-r--r--views/controls/tabbed_pane/tabbed_pane.cc18
-rw-r--r--views/controls/tabbed_pane/tabbed_pane.h24
-rw-r--r--views/controls/textfield/native_textfield_win.cc8
-rw-r--r--views/controls/textfield/textfield.cc26
-rw-r--r--views/controls/textfield/textfield.h10
-rw-r--r--views/controls/tree/tree_view.cc10
-rw-r--r--views/controls/tree/tree_view.h3
50 files changed, 325 insertions, 274 deletions
diff --git a/views/controls/button/button.cc b/views/controls/button/button.cc
index 7b6cc75..6d18204 100644
--- a/views/controls/button/button.cc
+++ b/views/controls/button/button.cc
@@ -3,7 +3,9 @@
// found in the LICENSE file.
#include "views/controls/button/button.h"
+
#include "base/utf_string_conversions.h"
+#include "ui/base/accessibility/accessible_view_state.h"
namespace views {
@@ -18,8 +20,12 @@ void Button::SetTooltipText(const std::wstring& tooltip_text) {
TooltipTextChanged();
}
-void Button::SetAccessibleKeyboardShortcut(const std::wstring& shortcut) {
- accessible_shortcut_ = WideToUTF16Hack(shortcut);
+void Button::SetAccessibleName(const string16& name) {
+ accessible_name_ = name;
+}
+
+void Button::SetAccessibleKeyboardShortcut(const string16& shortcut) {
+ accessible_shortcut_ = shortcut;
}
////////////////////////////////////////////////////////////////////////////////
@@ -33,12 +39,10 @@ bool Button::GetTooltipText(const gfx::Point& p, std::wstring* tooltip) {
return true;
}
-string16 Button::GetAccessibleKeyboardShortcut() {
- return accessible_shortcut_;
-}
-
-AccessibilityTypes::Role Button::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_PUSHBUTTON;
+void Button::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_PUSHBUTTON;
+ state->name = accessible_name_;
+ state->keyboard_shortcut = accessible_shortcut_;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/views/controls/button/button.h b/views/controls/button/button.h
index 263e45f..0c9c6c7 100644
--- a/views/controls/button/button.h
+++ b/views/controls/button/button.h
@@ -36,13 +36,13 @@ class Button : public View {
int mouse_event_flags() const { return mouse_event_flags_; }
- void SetAccessibleKeyboardShortcut(const std::wstring& shortcut);
+ void SetAccessibleName(const string16& name);
+ void SetAccessibleKeyboardShortcut(const string16& shortcut);
// Overridden from View:
virtual bool GetTooltipText(const gfx::Point& p,
std::wstring* tooltip) OVERRIDE;
- virtual string16 GetAccessibleKeyboardShortcut() OVERRIDE;
- virtual AccessibilityTypes::Role GetAccessibleRole() OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
protected:
// Construct the Button with a Listener. The listener can be NULL. This can be
@@ -61,6 +61,7 @@ class Button : public View {
string16 tooltip_text_;
// Accessibility data.
+ string16 accessible_name_;
string16 accessible_shortcut_;
// The id tag associated with this button. Used to disambiguate buttons in
diff --git a/views/controls/button/button_dropdown.cc b/views/controls/button/button_dropdown.cc
index d2f69e2..a5f7ab1 100644
--- a/views/controls/button/button_dropdown.cc
+++ b/views/controls/button/button_dropdown.cc
@@ -8,6 +8,7 @@
#include "base/message_loop.h"
#include "base/utf_string_conversions.h"
#include "grit/app_strings.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/l10n/l10n_util.h"
#include "views/controls/menu/view_menu_delegate.h"
#include "views/widget/widget.h"
@@ -165,16 +166,11 @@ void ButtonDropDown::ShowDropDownMenu(gfx::NativeView window) {
//
////////////////////////////////////////////////////////////////////////////////
-string16 ButtonDropDown::GetAccessibleDefaultAction() {
- return l10n_util::GetStringUTF16(IDS_APP_ACCACTION_PRESS);
-}
-
-AccessibilityTypes::Role ButtonDropDown::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_BUTTONDROPDOWN;
-}
-
-AccessibilityTypes::State ButtonDropDown::GetAccessibleState() {
- return AccessibilityTypes::STATE_HASPOPUP;
+void ButtonDropDown::GetAccessibleState(ui::AccessibleViewState* state) {
+ CustomButton::GetAccessibleState(state);
+ state->role = ui::AccessibilityTypes::ROLE_BUTTONDROPDOWN;
+ state->default_action = l10n_util::GetStringUTF16(IDS_APP_ACCACTION_PRESS);
+ state->state = ui::AccessibilityTypes::STATE_HASPOPUP;
}
} // namespace views
diff --git a/views/controls/button/button_dropdown.h b/views/controls/button/button_dropdown.h
index 07b8276..32f2c5c 100644
--- a/views/controls/button/button_dropdown.h
+++ b/views/controls/button/button_dropdown.h
@@ -26,9 +26,7 @@ class ButtonDropDown : public ImageButton {
virtual ~ButtonDropDown();
// Accessibility accessors, overridden from View.
- virtual string16 GetAccessibleDefaultAction() OVERRIDE;
- virtual AccessibilityTypes::Role GetAccessibleRole() OVERRIDE;
- virtual AccessibilityTypes::State GetAccessibleState() OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
private:
// Overridden from CustomButton
diff --git a/views/controls/button/checkbox.cc b/views/controls/button/checkbox.cc
index 719dfd8..2a34cc5 100644
--- a/views/controls/button/checkbox.cc
+++ b/views/controls/button/checkbox.cc
@@ -5,6 +5,7 @@
#include "views/controls/button/checkbox.h"
#include "base/logging.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/gfx/canvas.h"
#include "views/controls/label.h"
@@ -158,12 +159,10 @@ void Checkbox::OnBlur() {
label_->set_paint_as_focused(false);
}
-AccessibilityTypes::Role Checkbox::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_CHECKBUTTON;
-}
-
-AccessibilityTypes::State Checkbox::GetAccessibleState() {
- return checked() ? AccessibilityTypes::STATE_CHECKED : 0;
+void Checkbox::GetAccessibleState(ui::AccessibleViewState* state) {
+ Button::GetAccessibleState(state);
+ state->role = ui::AccessibilityTypes::ROLE_CHECKBUTTON;
+ state->state = checked() ? ui::AccessibilityTypes::STATE_CHECKED : 0;
}
std::string Checkbox::GetClassName() const {
diff --git a/views/controls/button/checkbox.h b/views/controls/button/checkbox.h
index 71d218d..801b0fd 100644
--- a/views/controls/button/checkbox.h
+++ b/views/controls/button/checkbox.h
@@ -57,8 +57,7 @@ class Checkbox : public NativeButton {
virtual void OnBlur() OVERRIDE;
// Accessibility accessors, overridden from View.
- virtual AccessibilityTypes::Role GetAccessibleRole() OVERRIDE;
- virtual AccessibilityTypes::State GetAccessibleState() OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
// Overridden from NativeButton:
virtual void SetLabel(const std::wstring& label) OVERRIDE;
diff --git a/views/controls/button/custom_button.cc b/views/controls/button/custom_button.cc
index 1696d14..fc349a2 100644
--- a/views/controls/button/custom_button.cc
+++ b/views/controls/button/custom_button.cc
@@ -4,9 +4,11 @@
#include "views/controls/button/custom_button.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/animation/throb_animation.h"
#include "ui/base/keycodes/keyboard_codes.h"
#include "views/screen.h"
+#include "views/widget/widget.h"
namespace views {
@@ -57,24 +59,23 @@ void CustomButton::SetAnimationDuration(int duration) {
////////////////////////////////////////////////////////////////////////////////
// CustomButton, View overrides:
-AccessibilityTypes::State CustomButton::GetAccessibleState() {
- int state = 0;
+void CustomButton::GetAccessibleState(ui::AccessibleViewState* state) {
+ Button::GetAccessibleState(state);
switch (state_) {
case BS_HOT:
- state = AccessibilityTypes::STATE_HOTTRACKED;
+ state->state = ui::AccessibilityTypes::STATE_HOTTRACKED;
break;
case BS_PUSHED:
- state = AccessibilityTypes::STATE_PRESSED;
+ state->state = ui::AccessibilityTypes::STATE_PRESSED;
break;
case BS_DISABLED:
- state = AccessibilityTypes::STATE_UNAVAILABLE;
+ state->state = ui::AccessibilityTypes::STATE_UNAVAILABLE;
break;
case BS_NORMAL:
case BS_COUNT:
// No additional accessibility state set for this button state.
break;
}
- return state;
}
void CustomButton::SetEnabled(bool enabled) {
@@ -248,8 +249,10 @@ void CustomButton::SetHotTracked(bool flag) {
if (state_ != BS_DISABLED)
SetState(flag ? BS_HOT : BS_NORMAL);
- if (flag)
- NotifyAccessibilityEvent(AccessibilityTypes::EVENT_FOCUS);
+ if (flag) {
+ GetWidget()->NotifyAccessibilityEvent(
+ this, ui::AccessibilityTypes::EVENT_FOCUS, true);
+ }
}
bool CustomButton::IsHotTracked() const {
diff --git a/views/controls/button/custom_button.h b/views/controls/button/custom_button.h
index 17dafbf..1a0f75e 100644
--- a/views/controls/button/custom_button.h
+++ b/views/controls/button/custom_button.h
@@ -48,7 +48,7 @@ class CustomButton : public Button,
void SetAnimationDuration(int duration);
// Overridden from View:
- virtual AccessibilityTypes::State GetAccessibleState() OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
virtual void SetEnabled(bool enabled) OVERRIDE;
virtual bool IsEnabled() const OVERRIDE;
virtual bool IsFocusable() const OVERRIDE;
diff --git a/views/controls/button/menu_button.cc b/views/controls/button/menu_button.cc
index f88b106..db138bb 100644
--- a/views/controls/button/menu_button.cc
+++ b/views/controls/button/menu_button.cc
@@ -7,6 +7,7 @@
#include "base/utf_string_conversions.h"
#include "grit/app_strings.h"
#include "grit/app_resources.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/dragdrop/drag_drop_types.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h"
@@ -260,16 +261,11 @@ void MenuButton::OnMouseExited(const MouseEvent& event) {
//
////////////////////////////////////////////////////////////////////////////////
-string16 MenuButton::GetAccessibleDefaultAction() {
- return l10n_util::GetStringUTF16(IDS_APP_ACCACTION_PRESS);
-}
-
-AccessibilityTypes::Role MenuButton::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_BUTTONMENU;
-}
-
-AccessibilityTypes::State MenuButton::GetAccessibleState() {
- return AccessibilityTypes::STATE_HASPOPUP;
+void MenuButton::GetAccessibleState(ui::AccessibleViewState* state) {
+ CustomButton::GetAccessibleState(state);
+ state->role = ui::AccessibilityTypes::ROLE_BUTTONMENU;
+ state->default_action = l10n_util::GetStringUTF16(IDS_APP_ACCACTION_PRESS);
+ state->state = ui::AccessibilityTypes::STATE_HASPOPUP;
}
std::string MenuButton::GetClassName() const {
diff --git a/views/controls/button/menu_button.h b/views/controls/button/menu_button.h
index 55f5a89..c6f3092 100644
--- a/views/controls/button/menu_button.h
+++ b/views/controls/button/menu_button.h
@@ -58,9 +58,7 @@ class MenuButton : public TextButton {
virtual bool OnKeyReleased(const KeyEvent& e);
// Accessibility accessors, overridden from View.
- virtual string16 GetAccessibleDefaultAction() OVERRIDE;
- virtual AccessibilityTypes::Role GetAccessibleRole() OVERRIDE;
- virtual AccessibilityTypes::State GetAccessibleState() OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
// Returns views/MenuButton.
virtual std::string GetClassName() const;
diff --git a/views/controls/button/native_button_win.cc b/views/controls/button/native_button_win.cc
index fbba56a..2783c84 100644
--- a/views/controls/button/native_button_win.cc
+++ b/views/controls/button/native_button_win.cc
@@ -11,6 +11,7 @@
#include "base/win/scoped_comptr.h"
#include "base/win/win_util.h"
#include "base/win/windows_version.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "views/controls/button/checkbox.h"
#include "views/controls/button/native_button.h"
#include "views/controls/button/radio_button.h"
@@ -71,18 +72,19 @@ void NativeButtonWin::UpdateDefault() {
}
void NativeButtonWin::UpdateAccessibleName() {
- string16 name;
- if (native_button_->GetAccessibleName(&name)) {
- base::win::ScopedComPtr<IAccPropServices> pAccPropServices;
- HRESULT hr = CoCreateInstance(CLSID_AccPropServices, NULL, CLSCTX_SERVER,
- IID_IAccPropServices, reinterpret_cast<void**>(&pAccPropServices));
- if (SUCCEEDED(hr)) {
- VARIANT var;
- var.vt = VT_BSTR;
- var.bstrVal = SysAllocString(name.c_str());
- hr = pAccPropServices->SetHwndProp(native_view(), OBJID_WINDOW,
- CHILDID_SELF, PROPID_ACC_NAME, var);
- }
+ ui::AccessibleViewState state;
+ native_button_->GetAccessibleState(&state);
+ string16 name = state.name;
+ base::win::ScopedComPtr<IAccPropServices> pAccPropServices;
+ HRESULT hr = CoCreateInstance(
+ CLSID_AccPropServices, NULL, CLSCTX_SERVER,
+ IID_IAccPropServices, reinterpret_cast<void**>(&pAccPropServices));
+ if (SUCCEEDED(hr)) {
+ VARIANT var;
+ var.vt = VT_BSTR;
+ var.bstrVal = SysAllocString(name.c_str());
+ hr = pAccPropServices->SetHwndProp(native_view(), OBJID_WINDOW,
+ CHILDID_SELF, PROPID_ACC_NAME, var);
}
}
diff --git a/views/controls/button/radio_button.cc b/views/controls/button/radio_button.cc
index 4074da4..f162f2c 100644
--- a/views/controls/button/radio_button.cc
+++ b/views/controls/button/radio_button.cc
@@ -5,6 +5,7 @@
#include "views/controls/button/radio_button.h"
#include "base/logging.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "views/widget/root_view.h"
namespace views {
@@ -60,8 +61,9 @@ void RadioButton::SetChecked(bool checked) {
////////////////////////////////////////////////////////////////////////////////
// RadioButton, View overrides:
-AccessibilityTypes::Role RadioButton::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_RADIOBUTTON;
+void RadioButton::GetAccessibleState(ui::AccessibleViewState* state) {
+ Checkbox::GetAccessibleState(state);
+ state->role = ui::AccessibilityTypes::ROLE_RADIOBUTTON;
}
View* RadioButton::GetSelectedViewForGroup(int group_id) {
diff --git a/views/controls/button/radio_button.h b/views/controls/button/radio_button.h
index 7ea35f5..5ff6f76 100644
--- a/views/controls/button/radio_button.h
+++ b/views/controls/button/radio_button.h
@@ -22,16 +22,18 @@ class RadioButton : public Checkbox {
virtual ~RadioButton();
// Overridden from Checkbox:
- virtual void SetChecked(bool checked);
+ virtual void SetChecked(bool checked) OVERRIDE;
// Overridden from View:
- virtual AccessibilityTypes::Role GetAccessibleRole();
- virtual View* GetSelectedViewForGroup(int group_id);
- virtual bool IsGroupFocusTraversable() const;
- virtual void OnMouseReleased(const MouseEvent& event, bool canceled);
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
+ virtual View* GetSelectedViewForGroup(int group_id) OVERRIDE;
+ virtual bool IsGroupFocusTraversable() const OVERRIDE;
+ virtual void OnMouseReleased(const MouseEvent& event, bool canceled)
+ OVERRIDE;
protected:
- virtual std::string GetClassName() const;
+ // Overridden from View:
+ virtual std::string GetClassName() const OVERRIDE;
// Overridden from NativeButton:
virtual NativeButtonWrapper* CreateWrapper();
diff --git a/views/controls/combobox/combobox.cc b/views/controls/combobox/combobox.cc
index be7d719..2f77942 100644
--- a/views/controls/combobox/combobox.cc
+++ b/views/controls/combobox/combobox.cc
@@ -6,6 +6,7 @@
#include "base/logging.h"
#include "base/utf_string_conversions.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/keycodes/keyboard_codes.h"
#include "ui/base/models/combobox_model.h"
#include "views/controls/combobox/native_combobox_wrapper.h"
@@ -52,6 +53,10 @@ void Combobox::SelectionChanged() {
listener_->ItemChanged(this, prev_selected_item, selected_item_);
}
+void Combobox::SetAccessibleName(const string16& name) {
+ accessible_name_ = name;
+}
+
////////////////////////////////////////////////////////////////////////////////
// Combobox, View overrides:
@@ -89,12 +94,10 @@ void Combobox::OnPaintFocusBorder(gfx::Canvas* canvas) {
View::OnPaintFocusBorder(canvas);
}
-AccessibilityTypes::Role Combobox::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_COMBOBOX;
-}
-
-string16 Combobox::GetAccessibleValue() {
- return model_->GetItemAt(selected_item_);
+void Combobox::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_COMBOBOX;
+ state->name = accessible_name_;
+ state->value = model_->GetItemAt(selected_item_);
}
void Combobox::OnFocus() {
diff --git a/views/controls/combobox/combobox.h b/views/controls/combobox/combobox.h
index 1de06d6..c50fadd 100644
--- a/views/controls/combobox/combobox.h
+++ b/views/controls/combobox/combobox.h
@@ -58,20 +58,23 @@ class Combobox : public View {
// Accessor for |model_|.
ComboboxModel* model() const { return model_; }
+ // Set the accessible name of the combo box.
+ void SetAccessibleName(const string16& name);
+
// Overridden from View:
- virtual gfx::Size GetPreferredSize();
- virtual void Layout();
- virtual void SetEnabled(bool enabled);
- virtual bool SkipDefaultKeyEventProcessing(const KeyEvent& e);
- virtual void OnPaintFocusBorder(gfx::Canvas* canvas);
- virtual AccessibilityTypes::Role GetAccessibleRole() OVERRIDE;
- virtual string16 GetAccessibleValue() OVERRIDE;
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+ virtual void Layout() OVERRIDE;
+ virtual void SetEnabled(bool enabled) OVERRIDE;
+ virtual bool SkipDefaultKeyEventProcessing(const KeyEvent& e) OVERRIDE;
+ virtual void OnPaintFocusBorder(gfx::Canvas* canvas) OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
protected:
- virtual void OnFocus();
+ // Overridden from View:
+ virtual void OnFocus() OVERRIDE;
virtual void ViewHierarchyChanged(bool is_add, View* parent,
- View* child);
- virtual std::string GetClassName() const;
+ View* child) OVERRIDE;
+ virtual std::string GetClassName() const OVERRIDE;
// The object that actually implements the native combobox.
NativeComboboxWrapper* native_wrapper_;
@@ -86,6 +89,9 @@ class Combobox : public View {
// The current selection.
int selected_item_;
+ // The accessible name of the text field.
+ string16 accessible_name_;
+
DISALLOW_COPY_AND_ASSIGN(Combobox);
};
diff --git a/views/controls/image_view.cc b/views/controls/image_view.cc
index 7f05e97..bc86e55 100644
--- a/views/controls/image_view.cc
+++ b/views/controls/image_view.cc
@@ -6,6 +6,7 @@
#include "base/logging.h"
#include "base/utf_string_conversions.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/insets.h"
@@ -126,8 +127,9 @@ void ImageView::OnPaint(gfx::Canvas* canvas) {
}
}
-AccessibilityTypes::Role ImageView::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_GRAPHIC;
+void ImageView::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_GRAPHIC;
+ state->name = tooltip_text_;
}
void ImageView::SetHorizontalAlignment(Alignment ha) {
@@ -154,7 +156,6 @@ ImageView::Alignment ImageView::GetVerticalAlignment() {
void ImageView::SetTooltipText(const std::wstring& tooltip) {
tooltip_text_ = WideToUTF16Hack(tooltip);
- SetAccessibleName(WideToUTF16Hack(tooltip));
}
std::wstring ImageView::GetTooltipText() {
diff --git a/views/controls/image_view.h b/views/controls/image_view.h
index b1791ac..cde4bfd 100644
--- a/views/controls/image_view.h
+++ b/views/controls/image_view.h
@@ -75,10 +75,11 @@ class ImageView : public View {
std::wstring GetTooltipText();
// Overriden from View
- virtual gfx::Size GetPreferredSize();
- virtual void OnPaint(gfx::Canvas* canvas);
- virtual AccessibilityTypes::Role GetAccessibleRole();
- virtual bool GetTooltipText(const gfx::Point& p, std::wstring* tooltip);
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+ virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
+ virtual bool GetTooltipText(const gfx::Point& p, std::wstring* tooltip)
+ OVERRIDE;
private:
// Compute the image origin given the desired size and the receiver alignment
diff --git a/views/controls/label.cc b/views/controls/label.cc
index 1b105f0..6fedc80 100644
--- a/views/controls/label.cc
+++ b/views/controls/label.cc
@@ -12,6 +12,7 @@
#include "base/string_split.h"
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/text/text_elider.h"
#include "ui/gfx/canvas_skia.h"
@@ -106,7 +107,6 @@ void Label::SetText(const std::wstring& text) {
text_ = WideToUTF16Hack(text);
url_set_ = false;
text_size_valid_ = false;
- SetAccessibleName(WideToUTF16Hack(text));
PreferredSizeChanged();
SchedulePaint();
}
@@ -250,12 +250,10 @@ void Label::SizeToFit(int max_width) {
SizeToPreferredSize();
}
-AccessibilityTypes::Role Label::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_STATICTEXT;
-}
-
-AccessibilityTypes::State Label::GetAccessibleState() {
- return AccessibilityTypes::STATE_READONLY;
+void Label::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_STATICTEXT;
+ state->state = ui::AccessibilityTypes::STATE_READONLY;
+ state->name = text_;
}
void Label::SetHasFocusBorder(bool has_focus_border) {
diff --git a/views/controls/label.h b/views/controls/label.h
index d916659..a0ef7d2 100644
--- a/views/controls/label.h
+++ b/views/controls/label.h
@@ -79,7 +79,7 @@ class Label : public View {
virtual void OnPaintBackground(gfx::Canvas* canvas);
// Set the font.
- void SetFont(const gfx::Font& font);
+ virtual void SetFont(const gfx::Font& font);
// Set the label text.
void SetText(const std::wstring& text);
@@ -180,8 +180,7 @@ class Label : public View {
void SizeToFit(int max_width);
// Accessibility accessors, overridden from View.
- virtual AccessibilityTypes::Role GetAccessibleRole();
- virtual AccessibilityTypes::State GetAccessibleState();
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
// Gets/sets the flag to determine whether the label should be collapsed when
// it's hidden (not visible). If this flag is true, the label will return a
diff --git a/views/controls/label_unittest.cc b/views/controls/label_unittest.cc
index 6d2ba91..a7b2ac2 100644
--- a/views/controls/label_unittest.cc
+++ b/views/controls/label_unittest.cc
@@ -5,6 +5,7 @@
#include "base/i18n/rtl.h"
#include "base/utf_string_conversions.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/canvas.h"
#include "views/border.h"
@@ -159,13 +160,11 @@ TEST(LabelTest, Accessibility) {
string16 test_text(ASCIIToUTF16("My special text."));
label.SetText(UTF16ToWideHack(test_text));
- EXPECT_EQ(AccessibilityTypes::ROLE_STATICTEXT, label.GetAccessibleRole());
-
- string16 name;
- EXPECT_TRUE(label.GetAccessibleName(&name));
- EXPECT_EQ(test_text, name);
-
- EXPECT_TRUE(AccessibilityTypes::STATE_READONLY & label.GetAccessibleState());
+ ui::AccessibleViewState state;
+ label.GetAccessibleState(&state);
+ EXPECT_EQ(ui::AccessibilityTypes::ROLE_STATICTEXT, state.role);
+ EXPECT_EQ(test_text, state.name);
+ EXPECT_TRUE(ui::AccessibilityTypes::STATE_READONLY & state.state);
}
TEST(LabelTest, SingleLineSizing) {
diff --git a/views/controls/link.cc b/views/controls/link.cc
index de7512b..c6e22f1 100644
--- a/views/controls/link.cc
+++ b/views/controls/link.cc
@@ -9,6 +9,7 @@
#endif
#include "base/logging.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/keycodes/keyboard_codes.h"
#include "ui/gfx/color_utils.h"
#include "ui/gfx/font.h"
@@ -148,8 +149,9 @@ bool Link::SkipDefaultKeyEventProcessing(const KeyEvent& e) {
(e.key_code() == ui::VKEY_RETURN);
}
-AccessibilityTypes::Role Link::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_LINK;
+void Link::GetAccessibleState(ui::AccessibleViewState* state) {
+ Label::GetAccessibleState(state);
+ state->role = ui::AccessibilityTypes::ROLE_LINK;
}
void Link::SetFont(const gfx::Font& font) {
diff --git a/views/controls/link.h b/views/controls/link.h
index 4c9cb8f..e616317 100644
--- a/views/controls/link.h
+++ b/views/controls/link.h
@@ -46,16 +46,16 @@ class Link : public Label {
const LinkController* GetController();
// Overridden from View:
- virtual bool OnMousePressed(const MouseEvent& event);
- virtual bool OnMouseDragged(const MouseEvent& event);
+ virtual bool OnMousePressed(const MouseEvent& event) OVERRIDE;
+ virtual bool OnMouseDragged(const MouseEvent& event) OVERRIDE;
virtual void OnMouseReleased(const MouseEvent& event,
- bool canceled);
- virtual bool OnKeyPressed(const KeyEvent& e);
- virtual bool SkipDefaultKeyEventProcessing(const KeyEvent& e);
+ bool canceled) OVERRIDE;
+ virtual bool OnKeyPressed(const KeyEvent& e) OVERRIDE;
+ virtual bool SkipDefaultKeyEventProcessing(const KeyEvent& e) OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
- // Accessibility accessors, overridden from View:
- virtual AccessibilityTypes::Role GetAccessibleRole();
- virtual void SetFont(const gfx::Font& font);
+ // Overridden from Label:
+ virtual void SetFont(const gfx::Font& font) OVERRIDE;
// Set whether the link is enabled.
virtual void SetEnabled(bool f);
diff --git a/views/controls/menu/menu_controller.cc b/views/controls/menu/menu_controller.cc
index 906bd40..075b92e 100644
--- a/views/controls/menu/menu_controller.cc
+++ b/views/controls/menu/menu_controller.cc
@@ -760,8 +760,10 @@ void MenuController::SetSelection(MenuItemView* menu_item,
// Notify an accessibility focus event on all menu items except for the root.
if (menu_item &&
(MenuDepth(menu_item) != 1 ||
- menu_item->GetType() != MenuItemView::SUBMENU))
- menu_item->NotifyAccessibilityEvent(AccessibilityTypes::EVENT_FOCUS);
+ menu_item->GetType() != MenuItemView::SUBMENU)) {
+ menu_item->GetWidget()->NotifyAccessibilityEvent(
+ menu_item, ui::AccessibilityTypes::EVENT_FOCUS, true);
+ }
}
// static
diff --git a/views/controls/menu/menu_item_view.cc b/views/controls/menu/menu_item_view.cc
index ed44c3a..c729c2e 100644
--- a/views/controls/menu/menu_item_view.cc
+++ b/views/controls/menu/menu_item_view.cc
@@ -6,6 +6,7 @@
#include "base/utf_string_conversions.h"
#include "grit/app_strings.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/models/menu_model.h"
#include "ui/gfx/canvas.h"
@@ -116,27 +117,23 @@ bool MenuItemView::GetTooltipText(const gfx::Point& p, std::wstring* tooltip) {
return false;
}
-AccessibilityTypes::Role MenuItemView::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_MENUITEM;
-}
-
-AccessibilityTypes::State MenuItemView::GetAccessibleState() {
- int state = 0;
+void MenuItemView::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_MENUITEM;
+ state->name = GetAccessibleNameForMenuItem(title_, GetAcceleratorText());
switch (GetType()) {
case SUBMENU:
- state |= AccessibilityTypes::STATE_HASPOPUP;
+ state->state |= ui::AccessibilityTypes::STATE_HASPOPUP;
break;
case CHECKBOX:
case RADIO:
- state |= GetDelegate()->IsItemChecked(GetCommand()) ?
- AccessibilityTypes::STATE_CHECKED : 0;
+ state->state |= GetDelegate()->IsItemChecked(GetCommand()) ?
+ ui::AccessibilityTypes::STATE_CHECKED : 0;
break;
case NORMAL:
case SEPARATOR:
// No additional accessibility states currently for these menu states.
break;
}
- return state;
}
// static
@@ -320,7 +317,6 @@ SubmenuView* MenuItemView::CreateSubmenu() {
void MenuItemView::SetTitle(const std::wstring& title) {
title_ = WideToUTF16Hack(title);
- SetAccessibleName(GetAccessibleNameForMenuItem(title_, GetAcceleratorText()));
pref_size_.SetSize(0, 0); // Triggers preferred size recalculation.
}
diff --git a/views/controls/menu/menu_item_view.h b/views/controls/menu/menu_item_view.h
index 5b5e09c..89eab3c 100644
--- a/views/controls/menu/menu_item_view.h
+++ b/views/controls/menu/menu_item_view.h
@@ -93,9 +93,9 @@ class MenuItemView : public View {
virtual ~MenuItemView();
// Overridden from View:
- virtual bool GetTooltipText(const gfx::Point& p, std::wstring* tooltip);
- virtual AccessibilityTypes::Role GetAccessibleRole();
- virtual AccessibilityTypes::State GetAccessibleState();
+ virtual bool GetTooltipText(const gfx::Point& p, std::wstring* tooltip)
+ OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
// Returns the preferred height of menu items. This is only valid when the
// menu is about to be shown.
diff --git a/views/controls/menu/menu_scroll_view_container.cc b/views/controls/menu/menu_scroll_view_container.cc
index 6089838..7a644b1 100644
--- a/views/controls/menu/menu_scroll_view_container.cc
+++ b/views/controls/menu/menu_scroll_view_container.cc
@@ -10,6 +10,7 @@
#include <Vssym32.h>
#endif
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/gfx/canvas_skia.h"
#include "ui/gfx/color_utils.h"
#include "views/border.h"
@@ -162,7 +163,8 @@ class MenuScrollViewContainer::MenuScrollView : public View {
// MenuScrollViewContainer ----------------------------------------------------
-MenuScrollViewContainer::MenuScrollViewContainer(SubmenuView* content_view) {
+MenuScrollViewContainer::MenuScrollViewContainer(SubmenuView* content_view)
+ : content_view_(content_view) {
scroll_up_button_ = new MenuScrollButton(content_view, true);
scroll_down_button_ = new MenuScrollButton(content_view, false);
AddChildView(scroll_up_button_);
@@ -266,14 +268,16 @@ gfx::Size MenuScrollViewContainer::GetPreferredSize() {
return prefsize;
}
-AccessibilityTypes::Role MenuScrollViewContainer::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_MENUBAR;
-}
+void MenuScrollViewContainer::GetAccessibleState(
+ ui::AccessibleViewState* state) {
+ // Get the name from the submenu view.
+ content_view_->GetAccessibleState(state);
-AccessibilityTypes::State MenuScrollViewContainer::GetAccessibleState() {
+ // Now change the role.
+ state->role = ui::AccessibilityTypes::ROLE_MENUBAR;
// Some AT (like NVDA) will not process focus events on menu item children
// unless a parent claims to be focused.
- return AccessibilityTypes::STATE_FOCUSED;
+ state->state = ui::AccessibilityTypes::STATE_FOCUSED;
}
} // namespace views
diff --git a/views/controls/menu/menu_scroll_view_container.h b/views/controls/menu/menu_scroll_view_container.h
index 5472091..48914af 100644
--- a/views/controls/menu/menu_scroll_view_container.h
+++ b/views/controls/menu/menu_scroll_view_container.h
@@ -24,12 +24,11 @@ class MenuScrollViewContainer : public View {
View* scroll_up_button() const { return scroll_up_button_; }
// View overrides.
- virtual void OnPaintBackground(gfx::Canvas* canvas);
- virtual void Layout();
- virtual void OnBoundsChanged();
- virtual gfx::Size GetPreferredSize();
- virtual AccessibilityTypes::Role GetAccessibleRole();
- virtual AccessibilityTypes::State GetAccessibleState();
+ virtual void OnPaintBackground(gfx::Canvas* canvas) OVERRIDE;
+ virtual void Layout() OVERRIDE;
+ virtual void OnBoundsChanged() OVERRIDE;
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
private:
class MenuScrollView;
@@ -41,6 +40,9 @@ class MenuScrollViewContainer : public View {
// The scroll view.
MenuScrollView* scroll_view_;
+ // The content view.
+ SubmenuView* content_view_;
+
DISALLOW_COPY_AND_ASSIGN(MenuScrollViewContainer);
};
diff --git a/views/controls/menu/submenu_view.cc b/views/controls/menu/submenu_view.cc
index 7c1f69e..fb78762 100644
--- a/views/controls/menu/submenu_view.cc
+++ b/views/controls/menu/submenu_view.cc
@@ -4,12 +4,14 @@
#include "views/controls/menu/submenu_view.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/gfx/canvas.h"
#include "views/controls/menu/menu_config.h"
#include "views/controls/menu/menu_controller.h"
#include "views/controls/menu/menu_host.h"
#include "views/controls/menu/menu_scroll_view_container.h"
#include "views/widget/root_view.h"
+#include "views/widget/widget.h"
// Height of the drop indicator. This should be an even number.
static const int kDropIndicatorHeight = 2;
@@ -125,8 +127,10 @@ void SubmenuView::OnBoundsChanged() {
SchedulePaint();
}
-AccessibilityTypes::Role SubmenuView::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_MENUPOPUP;
+void SubmenuView::GetAccessibleState(ui::AccessibleViewState* state) {
+ // Inherit most of the state from the parent menu item, except the role.
+ GetMenuItem()->GetAccessibleState(state);
+ state->role = ui::AccessibilityTypes::ROLE_MENUPOPUP;
}
void SubmenuView::PaintChildren(gfx::Canvas* canvas) {
@@ -233,10 +237,14 @@ void SubmenuView::ShowAt(gfx::NativeWindow parent,
if (host_) {
host_->ShowMenuHost(do_capture);
- GetScrollViewContainer()->NotifyAccessibilityEvent(
- AccessibilityTypes::EVENT_MENUSTART);
-
- NotifyAccessibilityEvent(AccessibilityTypes::EVENT_MENUPOPUPSTART);
+ GetScrollViewContainer()->GetWidget()->NotifyAccessibilityEvent(
+ GetScrollViewContainer(),
+ ui::AccessibilityTypes::EVENT_MENUSTART,
+ true);
+ GetWidget()->NotifyAccessibilityEvent(
+ this,
+ ui::AccessibilityTypes::EVENT_MENUPOPUPSTART,
+ true);
return;
}
@@ -247,10 +255,14 @@ void SubmenuView::ShowAt(gfx::NativeWindow parent,
ScrollRectToVisible(gfx::Rect(gfx::Point(), gfx::Size(1, 1)));
host_->Init(parent, bounds, scroll_view_container_, do_capture);
- GetScrollViewContainer()->NotifyAccessibilityEvent(
- AccessibilityTypes::EVENT_MENUSTART);
-
- NotifyAccessibilityEvent(AccessibilityTypes::EVENT_MENUPOPUPSTART);
+ GetScrollViewContainer()->GetWidget()->NotifyAccessibilityEvent(
+ GetScrollViewContainer(),
+ ui::AccessibilityTypes::EVENT_MENUSTART,
+ true);
+ GetWidget()->NotifyAccessibilityEvent(
+ this,
+ ui::AccessibilityTypes::EVENT_MENUPOPUPSTART,
+ true);
}
void SubmenuView::Reposition(const gfx::Rect& bounds) {
@@ -260,10 +272,14 @@ void SubmenuView::Reposition(const gfx::Rect& bounds) {
void SubmenuView::Close() {
if (host_) {
- NotifyAccessibilityEvent(AccessibilityTypes::EVENT_MENUPOPUPEND);
-
- GetScrollViewContainer()->NotifyAccessibilityEvent(
- AccessibilityTypes::EVENT_MENUEND);
+ GetWidget()->NotifyAccessibilityEvent(
+ this,
+ ui::AccessibilityTypes::EVENT_MENUPOPUPEND,
+ true);
+ GetScrollViewContainer()->GetWidget()->NotifyAccessibilityEvent(
+ GetScrollViewContainer(),
+ ui::AccessibilityTypes::EVENT_MENUEND,
+ true);
host_->DestroyMenuHost();
host_ = NULL;
@@ -308,12 +324,6 @@ MenuScrollViewContainer* SubmenuView::GetScrollViewContainer() {
scroll_view_container_ = new MenuScrollViewContainer(this);
// Otherwise MenuHost would delete us.
scroll_view_container_->set_parent_owned(false);
-
- // Use the parent menu item accessible name for the menu view.
- string16 accessible_name;
- GetMenuItem()->GetAccessibleName(&accessible_name);
- scroll_view_container_->SetAccessibleName(accessible_name);
- SetAccessibleName(accessible_name);
}
return scroll_view_container_;
}
diff --git a/views/controls/menu/submenu_view.h b/views/controls/menu/submenu_view.h
index cbe2674..c16c081 100644
--- a/views/controls/menu/submenu_view.h
+++ b/views/controls/menu/submenu_view.h
@@ -50,15 +50,15 @@ class SubmenuView : public View {
// Positions and sizes the child views. This tiles the views vertically,
// giving each child the available width.
- virtual void Layout();
- virtual gfx::Size GetPreferredSize();
+ virtual void Layout() OVERRIDE;
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
// View method. Overridden to schedule a paint. We do this so that when
// scrolling occurs, everything is repainted correctly.
- virtual void OnBoundsChanged();
+ virtual void OnBoundsChanged() OVERRIDE;
// Override from View.
- virtual AccessibilityTypes::Role GetAccessibleRole();
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
// Painting.
void PaintChildren(gfx::Canvas* canvas);
@@ -66,16 +66,16 @@ class SubmenuView : public View {
// Drag and drop methods. These are forwarded to the MenuController.
virtual bool GetDropFormats(
int* formats,
- std::set<OSExchangeData::CustomFormat>* custom_formats);
- virtual bool AreDropTypesRequired();
- virtual bool CanDrop(const OSExchangeData& data);
- virtual void OnDragEntered(const DropTargetEvent& event);
- virtual int OnDragUpdated(const DropTargetEvent& event);
- virtual void OnDragExited();
- virtual int OnPerformDrop(const DropTargetEvent& event);
+ std::set<OSExchangeData::CustomFormat>* custom_formats) OVERRIDE;
+ virtual bool AreDropTypesRequired() OVERRIDE;
+ virtual bool CanDrop(const OSExchangeData& data) OVERRIDE;
+ virtual void OnDragEntered(const DropTargetEvent& event) OVERRIDE;
+ virtual int OnDragUpdated(const DropTargetEvent& event) OVERRIDE;
+ virtual void OnDragExited() OVERRIDE;
+ virtual int OnPerformDrop(const DropTargetEvent& event) OVERRIDE;
// Scrolls on menu item boundaries.
- virtual bool OnMouseWheel(const MouseWheelEvent& e);
+ virtual bool OnMouseWheel(const MouseWheelEvent& e) OVERRIDE;
// Returns true if the menu is showing.
bool IsShowing();
diff --git a/views/controls/native_control.cc b/views/controls/native_control.cc
index 34e243e..08d6843 100644
--- a/views/controls/native_control.cc
+++ b/views/controls/native_control.cc
@@ -12,6 +12,7 @@
#include "base/logging.h"
#include "base/scoped_ptr.h"
+#include "ui/base/accessibility/accessibility_types.h"
#include "ui/base/keycodes/keyboard_codes.h"
#include "ui/base/keycodes/keyboard_code_conversion_win.h"
#include "ui/base/l10n/l10n_util_win.h"
@@ -281,7 +282,8 @@ void NativeControl::OnFocus() {
if (container_) {
DCHECK(container_->GetControl());
::SetFocus(container_->GetControl());
- NotifyAccessibilityEvent(AccessibilityTypes::EVENT_FOCUS, false);
+ GetWidget()->NotifyAccessibilityEvent(
+ this, ui::AccessibilityTypes::EVENT_FOCUS, false);
}
}
diff --git a/views/controls/native_control_gtk.cc b/views/controls/native_control_gtk.cc
index a17c4cb..88035c1 100644
--- a/views/controls/native_control_gtk.cc
+++ b/views/controls/native_control_gtk.cc
@@ -7,7 +7,9 @@
#include <gtk/gtk.h>
#include "base/logging.h"
+#include "ui/base/accessibility/accessibility_types.h"
#include "views/focus/focus_manager.h"
+#include "views/widget/widget.h"
namespace views {
@@ -66,8 +68,8 @@ void NativeControlGtk::VisibilityChanged(View* starting_from, bool is_visible) {
void NativeControlGtk::OnFocus() {
DCHECK(native_view());
gtk_widget_grab_focus(native_view());
-
- parent()->NotifyAccessibilityEvent(AccessibilityTypes::EVENT_FOCUS);
+ GetWidget()->NotifyAccessibilityEvent(
+ parent(), ui::AccessibilityTypes::EVENT_FOCUS, true);
}
void NativeControlGtk::NativeControlCreated(GtkWidget* native_control) {
diff --git a/views/controls/native_control_win.cc b/views/controls/native_control_win.cc
index 7e7312b..13a8c2b 100644
--- a/views/controls/native_control_win.cc
+++ b/views/controls/native_control_win.cc
@@ -7,10 +7,12 @@
#include <windowsx.h>
#include "base/logging.h"
+#include "ui/base/accessibility/accessibility_types.h"
#include "ui/base/l10n/l10n_util_win.h"
#include "ui/base/view_prop.h"
#include "ui/base/win/hwnd_util.h"
#include "views/focus/focus_manager.h"
+#include "views/widget/widget.h"
using ui::ViewProp;
@@ -112,8 +114,8 @@ void NativeControlWin::OnFocus() {
parent_view->HasFocus();
// Send the accessibility focus notification.
- parent_view->NotifyAccessibilityEvent(AccessibilityTypes::EVENT_FOCUS,
- send_native_event);
+ parent_view->GetWidget()->NotifyAccessibilityEvent(
+ parent_view, ui::AccessibilityTypes::EVENT_FOCUS, send_native_event);
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/views/controls/progress_bar.cc b/views/controls/progress_bar.cc
index a6aabb1..e460e27 100644
--- a/views/controls/progress_bar.cc
+++ b/views/controls/progress_bar.cc
@@ -11,6 +11,7 @@
#include "base/utf_string_conversions.h"
#include "third_party/skia/include/effects/SkGradientShader.h"
#include "third_party/skia/include/effects/SkBlurMaskFilter.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/gfx/canvas_skia.h"
#include "ui/gfx/color_utils.h"
#include "ui/gfx/font.h"
@@ -310,12 +311,9 @@ void ProgressBar::SetEnabled(bool enabled) {
// TODO(denisromanov): Need to switch progress bar color here?
}
-AccessibilityTypes::Role ProgressBar::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_PROGRESSBAR;
-}
-
-AccessibilityTypes::State ProgressBar::GetAccessibleState() {
- return AccessibilityTypes::STATE_READONLY;
+void ProgressBar::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_PROGRESSBAR;
+ state->state = ui::AccessibilityTypes::STATE_READONLY;
}
} // namespace views
diff --git a/views/controls/progress_bar.h b/views/controls/progress_bar.h
index b2f1202..4366519 100644
--- a/views/controls/progress_bar.h
+++ b/views/controls/progress_bar.h
@@ -52,14 +52,14 @@ class ProgressBar : public View {
virtual void SetTooltipText(const std::wstring& tooltip_text);
// Gets the tooltip text if has been specified with SetTooltipText().
- virtual bool GetTooltipText(const gfx::Point& p, std::wstring* tooltip);
+ virtual bool GetTooltipText(const gfx::Point& p, std::wstring* tooltip)
+ OVERRIDE;
// Sets the enabled state.
- virtual void SetEnabled(bool enabled);
+ virtual void SetEnabled(bool enabled) OVERRIDE;
// Accessibility accessors, overridden from View.
- virtual AccessibilityTypes::Role GetAccessibleRole();
- virtual AccessibilityTypes::State GetAccessibleState();
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
// Maximum value of progress.
static const int kMaxProgress;
diff --git a/views/controls/progress_bar_unittest.cc b/views/controls/progress_bar_unittest.cc
index 55acfd4..c7fc4df 100644
--- a/views/controls/progress_bar_unittest.cc
+++ b/views/controls/progress_bar_unittest.cc
@@ -5,6 +5,7 @@
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "views/controls/progress_bar.h"
namespace views {
@@ -48,17 +49,11 @@ TEST(ProgressBarTest, Accessibility) {
ProgressBar bar;
bar.SetProgress(62);
- EXPECT_EQ(AccessibilityTypes::ROLE_PROGRESSBAR, bar.GetAccessibleRole());
-
- string16 name;
- EXPECT_FALSE(bar.GetAccessibleName(&name));
- EXPECT_EQ(string16(), name);
- string16 accessible_name = ASCIIToUTF16("My progress bar");
- bar.SetAccessibleName(accessible_name);
- EXPECT_TRUE(bar.GetAccessibleName(&name));
- EXPECT_EQ(accessible_name, name);
-
- EXPECT_TRUE(AccessibilityTypes::STATE_READONLY & bar.GetAccessibleState());
+ ui::AccessibleViewState state;
+ bar.GetAccessibleState(&state);
+ EXPECT_EQ(ui::AccessibilityTypes::ROLE_PROGRESSBAR, state.role);
+ EXPECT_EQ(string16(), state.name);
+ EXPECT_TRUE(ui::AccessibilityTypes::STATE_READONLY & state.state);
}
} // namespace views
diff --git a/views/controls/resize_area.cc b/views/controls/resize_area.cc
index b3897bb..0769cf9 100644
--- a/views/controls/resize_area.cc
+++ b/views/controls/resize_area.cc
@@ -5,6 +5,7 @@
#include "views/controls/resize_area.h"
#include "base/logging.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/resource/resource_bundle.h"
#if defined(OS_LINUX)
@@ -74,8 +75,8 @@ void ResizeArea::OnMouseReleased(const views::MouseEvent& event,
ReportResizeAmount(canceled ? initial_position_ : event.x(), true);
}
-AccessibilityTypes::Role ResizeArea::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_SEPARATOR;
+void ResizeArea::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_SEPARATOR;
}
void ResizeArea::ReportResizeAmount(int resize_amount, bool last_update) {
diff --git a/views/controls/resize_area.h b/views/controls/resize_area.h
index 9adb60c..cf9bea7 100644
--- a/views/controls/resize_area.h
+++ b/views/controls/resize_area.h
@@ -41,13 +41,14 @@ class ResizeArea : public View {
virtual ~ResizeArea();
// Overridden from views::View:
- virtual std::string GetClassName() const;
+ virtual std::string GetClassName() const OVERRIDE;
virtual gfx::NativeCursor GetCursorForPoint(ui::EventType event_type,
- const gfx::Point& p);
- virtual bool OnMousePressed(const views::MouseEvent& event);
- virtual bool OnMouseDragged(const views::MouseEvent& event);
- virtual void OnMouseReleased(const views::MouseEvent& event, bool canceled);
- virtual AccessibilityTypes::Role GetAccessibleRole();
+ const gfx::Point& p) OVERRIDE;
+ virtual bool OnMousePressed(const views::MouseEvent& event) OVERRIDE;
+ virtual bool OnMouseDragged(const views::MouseEvent& event) OVERRIDE;
+ virtual void OnMouseReleased(const views::MouseEvent& event, bool canceled)
+ OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
private:
// Report the amount the user resized by to the delegate, accounting for
diff --git a/views/controls/scrollbar/scroll_bar.cc b/views/controls/scrollbar/scroll_bar.cc
index 94360bb..880a42a 100644
--- a/views/controls/scrollbar/scroll_bar.cc
+++ b/views/controls/scrollbar/scroll_bar.cc
@@ -5,6 +5,7 @@
#include "views/controls/scrollbar/scroll_bar.h"
#include "base/logging.h"
+#include "ui/base/accessibility/accessible_view_state.h"
namespace views {
@@ -22,8 +23,8 @@ ScrollBar::ScrollBar(bool is_horiz) : is_horiz_(is_horiz),
ScrollBar::~ScrollBar() {
}
-AccessibilityTypes::Role ScrollBar::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_SCROLLBAR;
+void ScrollBar::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_SCROLLBAR;
}
bool ScrollBar::IsHorizontal() const {
diff --git a/views/controls/scrollbar/scroll_bar.h b/views/controls/scrollbar/scroll_bar.h
index faed881..d7f187b 100644
--- a/views/controls/scrollbar/scroll_bar.h
+++ b/views/controls/scrollbar/scroll_bar.h
@@ -60,7 +60,7 @@ class ScrollBar : public View {
virtual ~ScrollBar();
// Overridden from View:
- virtual AccessibilityTypes::Role GetAccessibleRole();
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
// Return whether this scrollbar is horizontal
bool IsHorizontal() const;
diff --git a/views/controls/separator.cc b/views/controls/separator.cc
index 1a3ca70..bc1f522 100644
--- a/views/controls/separator.cc
+++ b/views/controls/separator.cc
@@ -5,6 +5,7 @@
#include "views/controls/separator.h"
#include "base/logging.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#if defined(OS_LINUX)
#include "views/controls/native_control_gtk.h"
#elif defined(OS_WIN)
@@ -92,8 +93,8 @@ std::string Separator::GetClassName() const {
return kViewClassName;
}
-AccessibilityTypes::Role Separator::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_SEPARATOR;
+void Separator::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_SEPARATOR;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/views/controls/separator.h b/views/controls/separator.h
index 186d84f..6c4d9c4 100644
--- a/views/controls/separator.h
+++ b/views/controls/separator.h
@@ -24,14 +24,15 @@ class Separator : public View {
virtual ~Separator();
// Overridden from View:
- virtual void Layout();
- virtual gfx::Size GetPreferredSize();
- virtual AccessibilityTypes::Role GetAccessibleRole();
+ virtual void Layout() OVERRIDE;
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
protected:
+ // Overridden from View:
virtual void ViewHierarchyChanged(bool is_add, View* parent,
- View* child);
- virtual std::string GetClassName() const;
+ View* child) OVERRIDE;
+ virtual std::string GetClassName() const OVERRIDE;
private:
void CreateNativeWrapper();
diff --git a/views/controls/single_split_view.cc b/views/controls/single_split_view.cc
index 2b076d6..96302f7 100644
--- a/views/controls/single_split_view.cc
+++ b/views/controls/single_split_view.cc
@@ -9,6 +9,7 @@
#endif
#include "skia/ext/skia_utils_win.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/gfx/canvas.h"
#include "views/background.h"
@@ -65,8 +66,9 @@ void SingleSplitView::Layout() {
View::Layout();
}
-AccessibilityTypes::Role SingleSplitView::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_GROUPING;
+void SingleSplitView::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_GROUPING;
+ state->name = accessible_name_;
}
gfx::Size SingleSplitView::GetPreferredSize() {
@@ -150,6 +152,10 @@ void SingleSplitView::CalculateChildrenBounds(
}
}
+void SingleSplitView::SetAccessibleName(const string16& name) {
+ accessible_name_ = name;
+}
+
bool SingleSplitView::OnMousePressed(const MouseEvent& event) {
if (!IsPointInDivider(event.location()))
return false;
diff --git a/views/controls/single_split_view.h b/views/controls/single_split_view.h
index dc69c67..38e7bbb 100644
--- a/views/controls/single_split_view.h
+++ b/views/controls/single_split_view.h
@@ -42,7 +42,7 @@ class SingleSplitView : public views::View {
virtual void OnBoundsChanged();
virtual void Layout();
- virtual AccessibilityTypes::Role GetAccessibleRole();
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
// SingleSplitView's preferred size is the sum of the preferred widths
// and the max of the heights.
@@ -75,6 +75,8 @@ class SingleSplitView : public views::View {
gfx::Rect* leading_bounds,
gfx::Rect* trailing_bounds) const;
+ void SetAccessibleName(const string16& name);
+
protected:
virtual bool OnMousePressed(const MouseEvent& event);
virtual bool OnMouseDragged(const MouseEvent& event);
@@ -132,6 +134,9 @@ class SingleSplitView : public views::View {
// Observer to notify about user initiated handle movements. Not own by us.
Observer* observer_;
+ // The accessible name of this view.
+ string16 accessible_name_;
+
DISALLOW_COPY_AND_ASSIGN(SingleSplitView);
};
diff --git a/views/controls/tabbed_pane/tabbed_pane.cc b/views/controls/tabbed_pane/tabbed_pane.cc
index eb9f971..1091407 100644
--- a/views/controls/tabbed_pane/tabbed_pane.cc
+++ b/views/controls/tabbed_pane/tabbed_pane.cc
@@ -5,11 +5,13 @@
#include "views/controls/tabbed_pane/tabbed_pane.h"
#include "base/logging.h"
+#include "ui/base/accessibility/accessible_view_state.h"
// TODO(avi): remove when not needed
#include "base/utf_string_conversions.h"
#include "ui/base/keycodes/keyboard_codes.h"
#include "views/controls/native/native_view_host.h"
#include "views/controls/tabbed_pane/native_tabbed_pane_wrapper.h"
+#include "views/widget/widget.h"
namespace views {
@@ -38,7 +40,6 @@ void TabbedPane::AddTabAtIndex(int index,
bool select_if_first_tab) {
native_tabbed_pane_->AddTabAtIndex(index, title, contents,
select_if_first_tab);
- contents->SetAccessibleName(WideToUTF16Hack(title));
PreferredSizeChanged();
}
@@ -60,6 +61,10 @@ void TabbedPane::SelectTabAt(int index) {
native_tabbed_pane_->SelectTabAt(index);
}
+void TabbedPane::SetAccessibleName(const string16& name) {
+ accessible_name_ = name;
+}
+
int TabbedPane::GetTabCount() {
return native_tabbed_pane_->GetTabCount();
}
@@ -118,8 +123,10 @@ void TabbedPane::OnFocus() {
native_tabbed_pane_->SetFocus();
View* selected_tab = GetSelectedTab();
- if (selected_tab)
- selected_tab->NotifyAccessibilityEvent(AccessibilityTypes::EVENT_FOCUS);
+ if (selected_tab) {
+ selected_tab->GetWidget()->NotifyAccessibilityEvent(
+ selected_tab, ui::AccessibilityTypes::EVENT_FOCUS, true);
+ }
}
else
View::OnFocus(); // Will focus the RootView window (so we still get
@@ -131,8 +138,9 @@ void TabbedPane::OnPaintFocusBorder(gfx::Canvas* canvas) {
View::OnPaintFocusBorder(canvas);
}
-AccessibilityTypes::Role TabbedPane::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_PAGETABLIST;
+void TabbedPane::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_PAGETABLIST;
+ state->name = accessible_name_;
}
gfx::Size TabbedPane::GetPreferredSize() {
diff --git a/views/controls/tabbed_pane/tabbed_pane.h b/views/controls/tabbed_pane/tabbed_pane.h
index 4fdb727..a968d36 100644
--- a/views/controls/tabbed_pane/tabbed_pane.h
+++ b/views/controls/tabbed_pane/tabbed_pane.h
@@ -14,7 +14,6 @@ class NativeTabbedPaneWrapper;
// The TabbedPane class is a view that shows tabs. When the user clicks on a
// tab, the associated view is displayed.
-
class TabbedPane : public View {
public:
TabbedPane();
@@ -63,16 +62,20 @@ class TabbedPane : public View {
Listener* listener() const { return listener_; }
+ void SetAccessibleName(const string16& name);
+
// View overrides:
- virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child);
+ virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child)
+ OVERRIDE;
// Handles Ctrl+Tab and Ctrl+Shift+Tab navigation of pages.
- virtual bool AcceleratorPressed(const views::Accelerator& accelerator);
- virtual std::string GetClassName() const;
- virtual void Layout();
- virtual void OnFocus();
- virtual void OnPaintFocusBorder(gfx::Canvas* canvas);
- virtual AccessibilityTypes::Role GetAccessibleRole();
- virtual gfx::Size GetPreferredSize();
+ virtual bool AcceleratorPressed(const views::Accelerator& accelerator)
+ OVERRIDE;
+ virtual std::string GetClassName() const OVERRIDE;
+ virtual void Layout() OVERRIDE;
+ virtual void OnFocus() OVERRIDE;
+ virtual void OnPaintFocusBorder(gfx::Canvas* canvas) OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
NativeTabbedPaneWrapper* native_wrapper() const {
return native_tabbed_pane_;
@@ -96,6 +99,9 @@ class TabbedPane : public View {
// The listener we notify about tab selection changes.
Listener* listener_;
+ // The accessible name of this view.
+ string16 accessible_name_;
+
DISALLOW_COPY_AND_ASSIGN(TabbedPane);
};
diff --git a/views/controls/textfield/native_textfield_win.cc b/views/controls/textfield/native_textfield_win.cc
index 2047d40..8a735d0 100644
--- a/views/controls/textfield/native_textfield_win.cc
+++ b/views/controls/textfield/native_textfield_win.cc
@@ -12,6 +12,7 @@
#include "base/win/windows_version.h"
#include "grit/app_strings.h"
#include "skia/ext/skia_utils_win.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/clipboard/clipboard.h"
#include "ui/base/clipboard/scoped_clipboard_writer.h"
#include "ui/base/keycodes/keyboard_codes.h"
@@ -441,10 +442,11 @@ void NativeTextfieldWin::InitializeAccessibilityInfo() {
// We expect it to be a Label preceeding this view (if it exists).
string16 name;
View* label_view = parent->GetChildViewAt(label_index);
- if (label_view->GetClassName() == Label::kViewClassName &&
- label_view->GetAccessibleName(&name)) {
+ if (label_view->GetClassName() == Label::kViewClassName) {
+ ui::AccessibleViewState state;
+ label_view->GetAccessibleState(&state);
hr = pAccPropServices->SetHwndPropStr(m_hWnd, OBJID_CLIENT,
- CHILDID_SELF, PROPID_ACC_NAME, name.c_str());
+ CHILDID_SELF, PROPID_ACC_NAME, state.name.c_str());
}
}
}
diff --git a/views/controls/textfield/textfield.cc b/views/controls/textfield/textfield.cc
index 2a72712..4366a0c 100644
--- a/views/controls/textfield/textfield.cc
+++ b/views/controls/textfield/textfield.cc
@@ -12,6 +12,7 @@
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/keycodes/keyboard_codes.h"
#include "ui/gfx/insets.h"
#include "views/controls/native/native_view_host.h"
@@ -280,6 +281,10 @@ size_t Textfield::GetCursorPosition() const {
return native_wrapper_ ? native_wrapper_->GetCursorPosition() : 0;
}
+void Textfield::SetAccessibleName(const string16& name) {
+ accessible_name_ = name;
+}
+
////////////////////////////////////////////////////////////////////////////////
// Textfield, View overrides:
@@ -360,23 +365,14 @@ void Textfield::OnBlur() {
native_wrapper_->HandleBlur();
}
-AccessibilityTypes::Role Textfield::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_TEXT;
-}
-
-AccessibilityTypes::State Textfield::GetAccessibleState() {
- int state = 0;
+void Textfield::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_TEXT;
+ state->name = accessible_name_;
if (read_only())
- state |= AccessibilityTypes::STATE_READONLY;
+ state->state |= ui::AccessibilityTypes::STATE_READONLY;
if (IsPassword())
- state |= AccessibilityTypes::STATE_PROTECTED;
- return state;
-}
-
-string16 Textfield::GetAccessibleValue() {
- if (!text_.empty())
- return text_;
- return string16();
+ state->state |= ui::AccessibilityTypes::STATE_PROTECTED;
+ state->value = text_;
}
void Textfield::SetEnabled(bool enabled) {
diff --git a/views/controls/textfield/textfield.h b/views/controls/textfield/textfield.h
index c8484d5..47285f7 100644
--- a/views/controls/textfield/textfield.h
+++ b/views/controls/textfield/textfield.h
@@ -247,6 +247,9 @@ class Textfield : public View {
// only and has to be called after the wrapper is created.
size_t GetCursorPosition() const;
+ // Set the accessible name of the text field.
+ void SetAccessibleName(const string16& name);
+
#ifdef UNIT_TEST
gfx::NativeView GetTestingHandle() const {
return native_wrapper_ ? native_wrapper_->GetTestingHandle() : NULL;
@@ -269,9 +272,7 @@ class Textfield : public View {
virtual bool OnKeyReleased(const views::KeyEvent& e) OVERRIDE;
virtual void OnFocus() OVERRIDE;
virtual void OnBlur() OVERRIDE;
- virtual AccessibilityTypes::Role GetAccessibleRole() OVERRIDE;
- virtual AccessibilityTypes::State GetAccessibleState() OVERRIDE;
- virtual string16 GetAccessibleValue() OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
protected:
virtual void ViewHierarchyChanged(bool is_add, View* parent,
@@ -339,6 +340,9 @@ class Textfield : public View {
// Text to display when empty.
string16 text_to_display_when_empty_;
+ // The accessible name of the text field.
+ string16 accessible_name_;
+
DISALLOW_COPY_AND_ASSIGN(Textfield);
};
diff --git a/views/controls/tree/tree_view.cc b/views/controls/tree/tree_view.cc
index 3f6b8bf..4e8a53d 100644
--- a/views/controls/tree/tree_view.cc
+++ b/views/controls/tree/tree_view.cc
@@ -11,6 +11,7 @@
#include "base/stl_util-inl.h"
#include "base/win/win_util.h"
#include "grit/app_resources.h"
+#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/keycodes/keyboard_codes.h"
#include "ui/base/keycodes/keyboard_code_conversion_win.h"
#include "ui/base/resource/resource_bundle.h"
@@ -60,12 +61,9 @@ TreeView::~TreeView() {
ImageList_Destroy(image_list_);
}
-AccessibilityTypes::Role TreeView::GetAccessibleRole() {
- return AccessibilityTypes::ROLE_OUTLINE;
-}
-
-AccessibilityTypes::State TreeView::GetAccessibleState() {
- return AccessibilityTypes::STATE_READONLY;
+void TreeView::GetAccessibleState(ui::AccessibleViewState* state) {
+ state->role = ui::AccessibilityTypes::ROLE_OUTLINE;
+ state->state = ui::AccessibilityTypes::STATE_READONLY;
}
void TreeView::SetModel(TreeModel* model) {
diff --git a/views/controls/tree/tree_view.h b/views/controls/tree/tree_view.h
index d4d0771..a542e85 100644
--- a/views/controls/tree/tree_view.h
+++ b/views/controls/tree/tree_view.h
@@ -79,8 +79,7 @@ class TreeView : public NativeControl, ui::TreeModelObserver {
}
// Overridden from View:
- virtual AccessibilityTypes::Role GetAccessibleRole();
- virtual AccessibilityTypes::State GetAccessibleState();
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
// Edits the specified node. This cancels the current edit and expands
// all parents of node.