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..769442d7f87610640fc6a1aeba17498f650e2e9f 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_->IsAccessibilityFocusable()) |
|
dmazzoni
2016/11/14 23:13:37
This is probably a good change, but just a warning
Patti Lor
2016/11/15 04:13:35
That sounds OK to me - either way it will be an im
|
| + data_.state |= (1 << ui::AX_STATE_FOCUSABLE); |
| if (!view_->enabled()) |
| data_.state |= (1 << ui::AX_STATE_DISABLED); |
| @@ -217,6 +218,17 @@ bool NativeViewAccessibility::CanSetStringValue() { |
| return !ui::AXNodeData::IsFlagSet(GetData().state, ui::AX_STATE_READ_ONLY); |
| } |
| +bool NativeViewAccessibility::SetFocused(bool focused) { |
| + if (!ui::AXNodeData::IsFlagSet(GetData().state, ui::AX_STATE_FOCUSABLE)) |
| + return false; |
| + |
| + if (focused) |
| + view_->RequestFocus(); |
| + else if (view_->HasFocus()) |
| + view_->GetFocusManager()->ClearFocus(); |
| + return true; |
| +} |
| + |
| void NativeViewAccessibility::OnWidgetDestroying(Widget* widget) { |
| if (parent_widget_ == widget) { |
| parent_widget_->RemoveObserver(this); |