// Copyright 2023 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. module ax.mojom; import "ui/accessibility/mojom/ax_action_data.mojom"; import "ui/accessibility/mojom/ax_tree_id.mojom"; // Implemented outside of the service, e.g. Chrome OS Ash, Chrome browser // process, renderers, or other tree sources. // Called by the accessibility service and automation extension API to enable // accessibility and perform actions. For example the accessibility service // might want to do a 'click' because a screen reader requested the default // action. Then the accessibility service would use // AutomationClient::PerformAction to pass that back to the client. interface AutomationClient { // Enables automation for the client. This will result in the client // repeatedly calling DispatchAccessibilityEvents() on the Automation // interface. // Runs the callback with tree ID for the desktop tree. Enable() => (ax.mojom.AXTreeID desktop_id); // Disables automation in the client. This has the effect of turning off // accessibility tree creation within the client. Calling this method // without calling Enable or calling it multiple times has no adverse // effects. Disable(); // Enables accessibility for a particular subtree of the client. This will // result in the client repeatedly calling DispatchAccessibilityEvents() // on the Automation interface. // Note that in the old automation API this was called only EnableTree. // Renamed here to be clearer which type of tree this is enabling. EnableChildTree(ax.mojom.AXTreeID tree_id); // Forwards the action described by AXActionData to all clients. Actions // are resolved by each client based on tree id, action type and other // action data fields. PerformAction(ax.mojom.AXActionData action_data); };