1 /* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OH_ACCESSIBILITYDEMO_ACCESSIBILITYMANAGER_H 17 #define OH_ACCESSIBILITYDEMO_ACCESSIBILITYMANAGER_H 18 19 #include <ace/xcomponent/native_interface_xcomponent.h> 20 21 namespace NativeXComponentSample 22 { 23 24 class AccessibilityManager { 25 public: 26 AccessibilityManager(); 27 void Initialize(const std::string &id, OH_NativeXComponent* nativeXComponent); 28 29 public: 30 static int32_t FindAccessibilityNodeInfosById(const char* instanceId, int64_t elementId, ArkUI_AccessibilitySearchMode mode, 31 int32_t requestId, ArkUI_AccessibilityElementInfoList* elementList); 32 33 static int32_t FindAccessibilityNodeInfosByText(const char* instanceId, int64_t elementId, const char* text, int32_t requestId, 34 ArkUI_AccessibilityElementInfoList* elementList); 35 36 static int32_t FindFocusedAccessibilityNode(const char* instanceId, int64_t elementId, ArkUI_AccessibilityFocusType focusType, 37 int32_t requestId, ArkUI_AccessibilityElementInfo* elementInfo); 38 39 static int32_t FindNextFocusAccessibilityNode(const char* instanceId, int64_t elementId, ArkUI_AccessibilityFocusMoveDirection direction, 40 int32_t requestId, ArkUI_AccessibilityElementInfo* elementInfo); 41 42 static int32_t ExecuteAccessibilityAction(const char* instanceId, int64_t elementId, ArkUI_Accessibility_ActionType action, 43 ArkUI_AccessibilityActionArguments *actionArguments, int32_t requestId); 44 45 static int32_t ClearFocusedFocusAccessibilityNode(const char* instanceId); 46 47 static int32_t GetAccessibilityNodeCursorPosition(const char* instanceId, int64_t elementId, int32_t requestId, int32_t* index); 48 49 private: 50 static void SendAccessibilityAsyncEvent(ArkUI_AccessibilityElementInfo *elementInfo, ArkUI_AccessibilityEventType eventType); 51 private: 52 ArkUI_AccessibilityProvider* provider = nullptr; 53 ArkUI_AccessibilityProviderCallbacks accessibilityProviderCallbacks_; 54 ArkUI_AccessibilityProviderCallbacksWithInstance accessibilityProviderCallbacksWithInstance_; 55 }; 56 } 57 #endif //OH_ACCESSIBILITYDEMO_ACCESSIBILITYMANAGER_H 58