Chromium Code Reviews| Index: ui/views/accessibility/native_view_accessibility.cc |
| diff --git a/ui/views/accessibility/native_view_accessibility.cc b/ui/views/accessibility/native_view_accessibility.cc |
| index db1c1c472d8c60cf849cae4f8d4980f1622798e0..a7e1711508d1823cf515b54bf4aa854aec08ceb3 100644 |
| --- a/ui/views/accessibility/native_view_accessibility.cc |
| +++ b/ui/views/accessibility/native_view_accessibility.cc |
| @@ -71,7 +71,8 @@ const ui::AXNodeData& NativeViewAccessibility::GetData() { |
| data_.AddStringAttribute(ui::AX_ATTR_DESCRIPTION, |
| base::UTF16ToUTF8(description)); |
| - data_.state |= (1 << ui::AX_STATE_FOCUSABLE); |
| + if (view_->IsFocusable()) |
|
tapted
2016/11/11 00:36:25
would IsAccessibilityFocusable be more appropriate
Patti Lor
2016/11/14 03:51:21
Oh, I hadn't thought about that, thanks for pointi
|
| + data_.state |= (1 << ui::AX_STATE_FOCUSABLE); |
| if (!view_->enabled()) |
| data_.state |= (1 << ui::AX_STATE_DISABLED); |
| @@ -217,6 +218,19 @@ bool NativeViewAccessibility::CanSetStringValue() { |
| return !ui::AXNodeData::IsFlagSet(GetData().state, ui::AX_STATE_READ_ONLY); |
| } |
| +bool NativeViewAccessibility::SetFocused(const bool focused) { |
| + if (!ui::AXNodeData::IsFlagSet(GetData().state, ui::AX_STATE_FOCUSABLE)) |
| + return false; |
| + |
| + if (focused == view_->HasFocus()) |
| + return true; |
| + if (focused) |
| + view_->RequestFocus(); |
| + else |
|
tapted
2016/11/11 00:36:25
optional: I'd maybe make this `else if view->HasFo
Patti Lor
2016/11/14 03:51:21
Done, thanks!
|
| + view_->GetFocusManager()->ClearFocus(); |
| + return true; |
| +} |
| + |
| void NativeViewAccessibility::OnWidgetDestroying(Widget* widget) { |
| if (parent_widget_ == widget) { |
| parent_widget_->RemoveObserver(this); |