#include <accessibility_bridge.h>
Public Member Functions | |
AccessibilityBridge () | |
Creates a new instance of a accessibility bridge. More... | |
virtual | ~AccessibilityBridge () |
void | AddFlutterSemanticsNodeUpdate (const FlutterSemanticsNode2 &node) |
Adds a semantics node update to the pending semantics update. Calling this method alone will NOT update the semantics tree. To flush the pending updates, call the CommitUpdates(). More... | |
void | AddFlutterSemanticsCustomActionUpdate (const FlutterSemanticsCustomAction2 &action) |
Adds a custom semantics action update to the pending semantics update. Calling this method alone will NOT update the semantics tree. To flush the pending updates, call the CommitUpdates(). More... | |
void | CommitUpdates () |
Flushes the pending updates and applies them to this accessibility bridge. Calling this with no pending updates does nothing, and callers should call this method at the end of an atomic batch to avoid leaving the tree in a unstable state. For example if a node reparents from A to B, callers should only call this method when both removal from A and addition to B are in the pending updates. More... | |
std::weak_ptr< FlutterPlatformNodeDelegate > | GetFlutterPlatformNodeDelegateFromID (AccessibilityNodeId id) const |
Get the flutter platform node delegate with the given id from this accessibility bridge. Returns expired weak_ptr if the delegate associated with the id does not exist or has been removed from the accessibility tree. More... | |
const ui::AXTreeData & | GetAXTreeData () const |
Get the ax tree data from this accessibility bridge. The tree data contains information such as the id of the node that has the keyboard focus or the text selection range. More... | |
const std::vector< ui::AXEventGenerator::TargetedEvent > | GetPendingEvents () const |
Gets all pending accessibility events generated during semantics updates. This is useful when deciding how to handle events in AccessibilityBridgeDelegate::OnAccessibilityEvent in case one may decide to handle an event differently based on all pending events. More... | |
ui::AXNode * | GetNodeFromTree (const ui::AXTreeID tree_id, const ui::AXNode::AXID node_id) const override |
ui::AXNode * | GetNodeFromTree (const ui::AXNode::AXID node_id) const override |
ui::AXTreeID | GetTreeID () const override |
ui::AXTreeID | GetParentTreeID () const override |
ui::AXNode * | GetRootAsAXNode () const override |
ui::AXNode * | GetParentNodeFromParentTreeAsAXNode () const override |
ui::AXTree * | GetTree () const override |
ui::AXPlatformNode * | GetPlatformNodeFromTree (const ui::AXNode::AXID node_id) const override |
ui::AXPlatformNode * | GetPlatformNodeFromTree (const ui::AXNode &node) const override |
ui::AXPlatformNodeDelegate * | RootDelegate () const override |
Public Member Functions inherited from flutter::FlutterPlatformNodeDelegate::OwnerBridge | |
virtual | ~OwnerBridge ()=default |
Protected Member Functions | |
virtual void | OnAccessibilityEvent (ui::AXEventGenerator::TargetedEvent targeted_event)=0 |
Handle accessibility events generated due to accessibility tree changes. These events are needed to be sent to native accessibility system. See ui::AXEventGenerator::Event for possible events. More... | |
virtual std::shared_ptr< FlutterPlatformNodeDelegate > | CreateFlutterPlatformNodeDelegate ()=0 |
Creates a platform specific FlutterPlatformNodeDelegate. Ownership passes to the caller. This method will be called whenever a new AXNode is created in AXTree. Each platform needs to implement this method in order to inject its subclass into the accessibility bridge. More... | |
Protected Member Functions inherited from flutter::FlutterPlatformNodeDelegate::OwnerBridge | |
virtual void | DispatchAccessibilityAction (AccessibilityNodeId target, FlutterSemanticsAction action, fml::MallocMapping data)=0 |
Dispatch accessibility action back to the Flutter framework. These actions are generated in the native accessibility system when users interact with the assistive technologies. For example, a FlutterSemanticsAction::kFlutterSemanticsActionTap is fired when user click or touch the screen. More... | |
Use this class to maintain an accessibility tree. This class consumes semantics updates from the embedder API and produces an accessibility tree in the native format.
The bridge creates an AXTree to hold the semantics data that comes from Flutter semantics updates. The tree holds AXNode[s] which contain the semantics information for semantics node. The AXTree resemble the Flutter semantics tree in the Flutter framework. The bridge also uses FlutterPlatformNodeDelegate to wrap each AXNode in order to provide an accessibility tree in the native format.
To use this class, one must subclass this class and provide their own implementation of FlutterPlatformNodeDelegate.
AccessibilityBridge must be created as a shared_ptr, since some methods acquires its weak_ptr.
Definition at line 40 of file accessibility_bridge.h.
flutter::AccessibilityBridge::AccessibilityBridge | ( | ) |
Creates a new instance of a accessibility bridge.
Definition at line 23 of file accessibility_bridge.cc.
|
virtual |
Definition at line 34 of file accessibility_bridge.cc.
void flutter::AccessibilityBridge::AddFlutterSemanticsCustomActionUpdate | ( | const FlutterSemanticsCustomAction2 & | action | ) |
Adds a custom semantics action update to the pending semantics update. Calling this method alone will NOT update the semantics tree. To flush the pending updates, call the CommitUpdates().
[in] | action | A reference to the custom semantics action update. |
Definition at line 44 of file accessibility_bridge.cc.
References action.
void flutter::AccessibilityBridge::AddFlutterSemanticsNodeUpdate | ( | const FlutterSemanticsNode2 & | node | ) |
Adds a semantics node update to the pending semantics update. Calling this method alone will NOT update the semantics tree. To flush the pending updates, call the CommitUpdates().
[in] | node | A reference to the semantics node update. |
Definition at line 39 of file accessibility_bridge.cc.
void flutter::AccessibilityBridge::CommitUpdates | ( | ) |
Flushes the pending updates and applies them to this accessibility bridge. Calling this with no pending updates does nothing, and callers should call this method at the end of an atomic batch to avoid leaving the tree in a unstable state. For example if a node reparents from A to B, callers should only call this method when both removal from A and addition to B are in the pending updates.
Definition at line 50 of file accessibility_bridge.cc.
References GetFlutterPlatformNodeDelegateFromID(), GetRootAsAXNode(), and OnAccessibilityEvent().
|
protectedpure virtual |
Creates a platform specific FlutterPlatformNodeDelegate. Ownership passes to the caller. This method will be called whenever a new AXNode is created in AXTree. Each platform needs to implement this method in order to inject its subclass into the accessibility bridge.
Implemented in flutter::AccessibilityBridgeWindows, and flutter::TestAccessibilityBridge.
const ui::AXTreeData & flutter::AccessibilityBridge::GetAXTreeData | ( | ) | const |
Get the ax tree data from this accessibility bridge. The tree data contains information such as the id of the node that has the keyboard focus or the text selection range.
Definition at line 141 of file accessibility_bridge.cc.
Referenced by flutter::AccessibilityBridgeWindows::GetFocusedNode().
std::weak_ptr< FlutterPlatformNodeDelegate > flutter::AccessibilityBridge::GetFlutterPlatformNodeDelegateFromID | ( | AccessibilityNodeId | id | ) | const |
Get the flutter platform node delegate with the given id from this accessibility bridge. Returns expired weak_ptr if the delegate associated with the id does not exist or has been removed from the accessibility tree.
[in] | id | The id of the flutter accessibility node you want to retrieve. |
Definition at line 131 of file accessibility_bridge.cc.
Referenced by CommitUpdates(), flutter::AccessibilityBridgeWindows::GetFocusedNode(), GetPlatformNodeFromTree(), flutter::AccessibilityBridgeWindows::OnAccessibilityEvent(), and RootDelegate().
|
override |
Definition at line 681 of file accessibility_bridge.cc.
|
override |
Definition at line 675 of file accessibility_bridge.cc.
|
override |
Definition at line 698 of file accessibility_bridge.cc.
|
override |
Definition at line 690 of file accessibility_bridge.cc.
const std::vector< ui::AXEventGenerator::TargetedEvent > flutter::AccessibilityBridge::GetPendingEvents | ( | ) | const |
Gets all pending accessibility events generated during semantics updates. This is useful when deciding how to handle events in AccessibilityBridgeDelegate::OnAccessibilityEvent in case one may decide to handle an event differently based on all pending events.
Definition at line 146 of file accessibility_bridge.cc.
|
override |
Definition at line 716 of file accessibility_bridge.cc.
References GetPlatformNodeFromTree().
|
override |
Definition at line 706 of file accessibility_bridge.cc.
References GetFlutterPlatformNodeDelegateFromID().
Referenced by flutter::FlutterPlatformNodeDelegate::GetFromNodeID(), flutter::FlutterPlatformNodeDelegate::GetFromTreeIDAndNodeID(), and GetPlatformNodeFromTree().
|
override |
Definition at line 694 of file accessibility_bridge.cc.
Referenced by CommitUpdates(), and RootDelegate().
|
override |
Definition at line 702 of file accessibility_bridge.cc.
|
override |
Definition at line 686 of file accessibility_bridge.cc.
|
protectedpure virtual |
Handle accessibility events generated due to accessibility tree changes. These events are needed to be sent to native accessibility system. See ui::AXEventGenerator::Event for possible events.
[in] | targeted_event | The object that contains both the generated event and the event target. |
Implemented in flutter::AccessibilityBridgeWindows, and flutter::TestAccessibilityBridge.
Referenced by CommitUpdates().
|
override |
Definition at line 721 of file accessibility_bridge.cc.
References GetFlutterPlatformNodeDelegateFromID(), and GetRootAsAXNode().
Referenced by flutter::AccessibilityBridgeWindows::GetChildOfAXFragmentRoot().