Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc

Issue 2700103004: Initial support for accessibility actions on ARC. (Closed)
Patch Set: Use desktop tree id. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
diff --git a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
index cbe7c699d3d325173048d73859f7d13a7566b8ac..908e8737ed31b5d7d29ff1076bbef939e58ea61d 100644
--- a/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
+++ b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge.cc
@@ -32,6 +32,7 @@ class FocusStealer : public views::View {
// views::View overrides.
void GetAccessibleNodeData(ui::AXNodeData* node_data) override {
node_data->AddIntAttribute(ui::AX_ATTR_CHILD_TREE_ID, id_);
+ node_data->role = ui::AX_ROLE_CLIENT;
}
private:
@@ -95,7 +96,7 @@ void ArcAccessibilityHelperBridge::OnInstanceReady() {
chromeos::switches::kEnableChromeVoxArcSupport)) {
instance->SetFilter(arc::mojom::AccessibilityFilterType::ALL);
if (!tree_source_) {
- tree_source_.reset(new AXTreeSourceArc());
+ tree_source_.reset(new AXTreeSourceArc(tree_id()));
focus_stealer_.reset(new FocusStealer(tree_source_->tree_id()));
exo::WMHelper::GetInstance()->AddActivationObserver(this);
}
@@ -159,4 +160,19 @@ void ArcAccessibilityHelperBridge::OnWindowActivated(
}
}
+void ArcAccessibilityHelperBridge::PerformAction(const ui::AXActionData& data) {
+ arc::mojom::AccessibilityActionType mojo_action;
+ switch (data.action) {
+ case ui::AX_ACTION_DO_DEFAULT:
+ mojo_action = arc::mojom::AccessibilityActionType::CLICK;
+ break;
+ default:
+ return;
+ }
+
+ auto* instance = ARC_GET_INSTANCE_FOR_METHOD(
+ arc_bridge_service()->accessibility_helper(), PerformAction);
+ instance->PerformAction(data.target_node_id, mojo_action);
+}
+
} // namespace arc

Powered by Google App Engine
This is Rietveld 408576698