5 #ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_
6 #define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_SOURCE_ACCESSIBILITY_BRIDGE_H_
8 #import <UIKit/UIKit.h>
11 #include <unordered_map>
12 #include <unordered_set>
15 #include "flutter/fml/macros.h"
16 #include "flutter/fml/memory/weak_ptr.h"
17 #include "flutter/lib/ui/semantics/custom_accessibility_action.h"
18 #include "flutter/lib/ui/semantics/semantics_node.h"
25 #include "third_party/skia/include/core/SkRect.h"
54 std::unique_ptr<IosDelegate> ios_delegate =
nullptr);
58 const flutter::CustomAccessibilityActionUpdates& actions);
59 void HandleEvent(NSDictionary<NSString*, id>* annotatedEvent);
62 flutter::SemanticsAction action,
63 fml::MallocMapping args)
override;
69 UIView*
view()
const override {
return view_controller_.view; }
76 return platform_views_controller_;
82 SemanticsObject* GetOrCreateObject(int32_t
id, flutter::SemanticsNodeUpdates& updates);
90 NSMutableArray<NSNumber*>* doomed_uids);
98 int32_t last_focused_semantics_object_id_;
100 NSMutableDictionary<NSNumber*, SemanticsObject*>* objects_;
102 int32_t previous_route_id_ = 0;
103 std::unordered_map<int32_t, flutter::CustomAccessibilityAction> actions_;
104 std::vector<int32_t> previous_routes_;
105 std::unique_ptr<IosDelegate> ios_delegate_;
106 fml::WeakPtrFactory<AccessibilityBridge> weak_factory_;
virtual void PostAccessibilityNotification(UIAccessibilityNotifications notification, id argument)=0
virtual bool IsFlutterViewControllerPresentingModalViewController(FlutterViewController *view_controller)=0
virtual ~IosDelegate()=default
void UpdateSemantics(flutter::SemanticsNodeUpdates nodes, const flutter::CustomAccessibilityActionUpdates &actions)
void DispatchSemanticsAction(int32_t id, flutter::SemanticsAction action) override
void AccessibilityObjectDidLoseFocus(int32_t id) override
FlutterPlatformViewsController * GetPlatformViewsController() const override
AccessibilityBridge(FlutterViewController *view_controller, PlatformViewIOS *platform_view, __weak FlutterPlatformViewsController *platform_views_controller, std::unique_ptr< IosDelegate > ios_delegate=nullptr)
void DispatchSemanticsAction(int32_t id, flutter::SemanticsAction action, fml::MallocMapping args) override
bool isVoiceOverRunning() const override
void HandleEvent(NSDictionary< NSString *, id > *annotatedEvent)
fml::WeakPtr< AccessibilityBridge > GetWeakPtr()
UIView< UITextInput > * textInputView() override
UIView * view() const override
void AccessibilityObjectDidBecomeFocused(int32_t id) override
Interface that represents an accessibility bridge for iOS.