• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022-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 ACCESSIBILITY_DEFINE_H
17 #define ACCESSIBILITY_DEFINE_H
18 
19 #include <cstdint>
20 #include <string>
21 #include <vector>
22 #include <map>
23 #include "accessibility_constants.h"
24 
25 namespace OHOS {
26 namespace AccessibilityConfig {
27 
28 enum DALTONIZATION_TYPE : uint32_t {
29     Normal = 0,
30     Protanomaly,
31     Deuteranomaly,
32     Tritanomaly,
33 };
34 
35 enum CLICK_RESPONSE_TIME : uint32_t {
36     ResponseDelayShort = 0,
37     ResponseDelayMedium,
38     ResponseDelayLong,
39 };
40 
41 enum IGNORE_REPEAT_CLICK_TIME : uint32_t {
42     RepeatClickTimeoutShortest = 0,
43     RepeatClickTimeoutShort,
44     RepeatClickTimeoutMedium,
45     RepeatClickTimeoutLong,
46     RepeatClickTimeoutLongest,
47 };
48 }
49 }
50 
51 namespace OHOS {
52 namespace Accessibility {
53 enum RetError : int32_t {
54     RET_OK = 0,
55     RET_ERR_FAILED = -1,
56     RET_ERR_INVALID_PARAM = 1001,
57     RET_ERR_NULLPTR,
58     RET_ERR_IPC_FAILED,
59     RET_ERR_SAMGR,
60     RET_ERR_NO_PERMISSION,
61     RET_ERR_NOT_SYSTEM_APP,
62     RET_ERR_TIME_OUT,
63     RET_ERR_TREE_TOO_BIG,
64     RET_ERR_TOKEN_ID,
65 
66     RET_ERR_REGISTER_EXIST = 4001,
67     RET_ERR_NO_REGISTER,
68     RET_ERR_CONNECTION_EXIST,
69     RET_ERR_NO_CONNECTION,
70     RET_ERR_NO_WINDOW_CONNECTION,
71     RET_ERR_NO_CAPABILITY,
72     RET_ERR_INVALID_ELEMENT_INFO_FROM_ACE,
73     RET_ERR_PERFORM_ACTION_FAILED_BY_ACE,
74     RET_ERR_NO_INJECTOR,
75     RET_ERR_NOT_INSTALLED,
76     RET_ERR_NOT_ENABLED,
77     RET_ERR_PROPERTY_NOT_EXIST,
78     RET_ERR_ACTION_NOT_SUPPORT,
79     RET_ERR_ENABLE_MAGNIFICATION,
80     RET_ERR_MAGNIFICATION_NOT_SUPPORT,
81 };
82 
83 enum SET_AA_CALLBACK_RESULT : int32_t {
84     FIND_ACCESSIBILITY_NODE_BY_ACCESSIBILITY_ID = 2,
85     FIND_ACCESSIBILITY_NODE_BY_VIEW_ID,
86     FIND_ACCESSIBILITY_NODE_BY_TEXT,
87     FIND_FOCUS,
88     FIND_FOCUS_SEARCH,
89 };
90 
91 enum TARGET_NAME : int32_t {
92     HIGH_CONTRAST_TEXT = 0,
93     INVERT_COLOR,
94     DALTONIZATION_COLOR_FILTER,
95     CONTENT_TIMEOUT,
96     ANIMATION_OFF,
97     BRIGHTNESS_DISCOUNT,
98     AUDIO_MONO,
99     AUDIO_BALANCE,
100     MOUSE_KEY,
101     CAPTION_STATE,
102     CAPTION_STYLE,
103     SCREEN_MAGNIFICATION,
104     MOUSE_AUTOCLICK,
105 };
106 
107 enum GlobalAction : uint32_t {
108     GLOBAL_ACTION_BACK = 0,
109     GLOBAL_ACTION_HOME = 1,
110     GLOBAL_ACTION_RECENT = 2,
111     GLOBAL_ACTION_NOTIFICATION = 3,
112     GLOBAL_ACTION_LOCK_SCREEN = 4,
113     GLOBAL_ACTION_MAX,
114     GLOBAL_ACTION_INVALID = 0xFFFFFFFF,
115 };
116 
117 enum AbilityStateType : int32_t {
118     ABILITY_STATE_INVALID = 0,
119     ABILITY_STATE_ENABLE,
120     ABILITY_STATE_DISABLE,
121     ABILITY_STATE_INSTALLED,
122 };
123 
124 // The capability types of the accessible ability.
125 enum Capability : uint32_t {
126     CAPABILITY_RETRIEVE = 0x0001,
127     CAPABILITY_TOUCH_GUIDE = 0x0002,
128     CAPABILITY_GESTURE = 0x0004,
129     CAPABILITY_KEY_EVENT_OBSERVER = 0x0008,
130     CAPABILITY_ZOOM = 0x0010,
131 };
132 
133 // The accessibility ability types for feedbacks.
134 enum AccessibilityAbilityTypes : uint32_t {
135     ACCESSIBILITY_ABILITY_TYPE_INVALID = 0x00000000,
136     ACCESSIBILITY_ABILITY_TYPE_SPOKEN = 0x00000001,
137     ACCESSIBILITY_ABILITY_TYPE_HAPTIC = 0x00000002,
138     ACCESSIBILITY_ABILITY_TYPE_AUDIBLE = 0x00000004,
139     ACCESSIBILITY_ABILITY_TYPE_VISUAL = 0x00000008,
140     ACCESSIBILITY_ABILITY_TYPE_GENERIC = 0x00000010,
141     ACCESSIBILITY_ABILITY_TYPE_ALL = 0xFFFFFFFF,
142 };
143 
144 enum CaptionMode : int32_t {
145     CAPTION_BLACK_WHITE = 0,  // CAPTION_background_foreground
146     CAPTION_WHITE_BLACK,
147     CAPTION_BLACK_YELLOW,
148     CAPTION_BLUE_YELLOW,
149     CAPTION_CUSTOM,
150     CAPTION_MODE_MAX,
151 };
152 
153 enum CaptionEdge : int32_t {
154     CAPTION_EDGE_NONEB = 0,
155     CAPTION_EDGE_OUTLINE,
156     CAPTION_EDGE_DROP_SHADOW,
157     CAPTION_EDGE_RAISED,
158     CAPTION_EDGE_DEPRESSED,
159 };
160 
161 enum ActionType : int32_t {
162     ACCESSIBILITY_ACTION_INVALID = 0,
163     ACCESSIBILITY_ACTION_FOCUS =  0x00000001,
164     ACCESSIBILITY_ACTION_CLEAR_FOCUS = 0x00000002,
165     ACCESSIBILITY_ACTION_SPAN_CLICK = 0x00000003,
166     ACCESSIBILITY_ACTION_SELECT = 0x00000004,
167     ACCESSIBILITY_ACTION_CLEAR_SELECTION = 0x00000008,
168     ACCESSIBILITY_ACTION_CLICK = 0x00000010,
169     ACCESSIBILITY_ACTION_LONG_CLICK = 0x00000020,
170     ACCESSIBILITY_ACTION_ACCESSIBILITY_FOCUS = 0x00000040,
171     ACCESSIBILITY_ACTION_CLEAR_ACCESSIBILITY_FOCUS = 0x00000080,
172     ACCESSIBILITY_ACTION_SCROLL_FORWARD = 0x00000100,
173     ACCESSIBILITY_ACTION_SCROLL_BACKWARD = 0x00000200,
174     ACCESSIBILITY_ACTION_COPY = 0x00000400,
175     ACCESSIBILITY_ACTION_PASTE = 0x00000800,
176     ACCESSIBILITY_ACTION_CUT = 0x00001000,
177     ACCESSIBILITY_ACTION_SET_SELECTION = 0x00002000,
178     ACCESSIBILITY_ACTION_SET_TEXT = 0x00004000,
179     ACCESSIBILITY_ACTION_SET_CURSOR_POSITION = 0x00100000,
180     ACCESSIBILITY_ACTION_NEXT_TEXT = 0x00200000,
181     ACCESSIBILITY_ACTION_PREVIOUS_TEXT = 0x00400000,
182     ACCESSIBILITY_ACTION_UNFOLD = 0x00800000,
183     ACCESSIBILITY_ACTION_FOLD = 0x01000000,
184     ACCESSIBILITY_ACTION_NEXT_HTML_ITEM = 0x02000000,
185     ACCESSIBILITY_ACTION_PREVIOUS_HTML_ITEM = 0x04000000,
186     ACCESSIBILITY_ACTION_DELETED = 0x08000000,
187     ACCESSIBILITY_ACTION_COMMON = 0x10000000,
188     ACCESSIBILITY_ACTION_HOME = 0x00010000,
189     ACCESSIBILITY_ACTION_BACK = 0x00020000,
190     ACCESSIBILITY_ACTION_RECENTTASK = 0x00040000,
191     ACCESSIBILITY_ACTION_NOTIFICATIONCENTER = 0x00080000,
192     ACCESSIBILITY_ACTION_CONTROLCENTER = 0x00008000,
193     ACCESSIBILITY_ACTION_TYPE_MASK = 0x1FFFFFFF,
194 };
195 
196 // text move step
197 enum TextMoveUnit : int32_t {
198     STEP_INVALID = 0,
199     STEP_CHARACTER = 0x00000001,
200     STEP_WORD = 0x00000002,
201     STEP_LINE = 0x00000004,
202     STEP_PAGE = 0x00000008,
203     STEP_PARAGRAPH = 0x00000010,
204 };
205 
206 enum FocusMoveDirection : int32_t {
207     DIRECTION_INVALID = 0,
208     UP = 0x00000001,
209     DOWN = 0x00000002,
210     LEFT = 0x00000004,
211     RIGHT = 0x00000008,
212     FORWARD = 0x00000010,
213     BACKWARD = 0x00000020,
214 };
215 
216 enum WindowUpdateType : int32_t {
217     WINDOW_UPDATE_INVALID = 0,
218     WINDOW_UPDATE_ACCESSIBILITY_FOCUSED = 0x00000001,
219     WINDOW_UPDATE_FOCUSED = 0x00000002,
220     WINDOW_UPDATE_ACTIVE = 0x00000004,
221     WINDOW_UPDATE_ADDED = 0x00000008,
222     WINDOW_UPDATE_REMOVED = 0x00000010,
223     WINDOW_UPDATE_BOUNDS = 0x00000020,
224     WINDOW_UPDATE_TITLE = 0x00000040,
225     WINDOW_UPDATE_LAYER = 0x00000080,
226     WINDOW_UPDATE_PARENT = 0x00000100,
227     WINDOW_UPDATE_CHILDREN = 0x00000200,
228     WINDOW_UPDATE_PIP = 0x00000400,
229     WINDOW_UPDATE_PROPERTY = 0x00000800,
230 };
231 
232 enum WindowsContentChangeTypes : int32_t {
233     CONTENT_CHANGE_TYPE_INVALID = 0,
234     CONTENT_CHANGE_TYPE_SUBTREE = 0x00000001,
235     CONTENT_CHANGE_TYPE_TEXT = 0x00000002,
236     CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 0x00000004,
237 };
238 
239 enum EventType : uint32_t {
240     TYPE_VIEW_INVALID = 0,
241     TYPE_VIEW_CLICKED_EVENT = 0x00000001,
242     TYPE_VIEW_LONG_CLICKED_EVENT = 0x00000002,
243     TYPE_VIEW_SELECTED_EVENT = 0x00000004,
244     TYPE_VIEW_FOCUSED_EVENT = 0x00000008,
245     TYPE_VIEW_TEXT_UPDATE_EVENT = 0x00000010,
246     TYPE_PAGE_STATE_UPDATE = 0x00000020,
247     TYPE_NOTIFICATION_UPDATE_EVENT = 0x00000040,
248     TYPE_VIEW_HOVER_ENTER_EVENT = 0x00000080,
249     TYPE_VIEW_HOVER_EXIT_EVENT = 0x00000100,
250     TYPE_TOUCH_GUIDE_GESTURE_BEGIN = 0x00000200,
251     TYPE_TOUCH_GUIDE_GESTURE_END = 0x00000400,
252     TYPE_PAGE_CONTENT_UPDATE = 0x00000800,
253     TYPE_VIEW_SCROLLED_EVENT = 0x000001000,
254     TYPE_VIEW_TEXT_SELECTION_UPDATE_EVENT = 0x000002000,
255     TYPE_PUBLIC_NOTICE_EVENT = 0x00004000,
256     TYPE_VIEW_ACCESSIBILITY_FOCUSED_EVENT = 0x00008000,
257     TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED_EVENT = 0x00010000,
258     TYPE_VIEW_TEXT_MOVE_UNIT_EVENT = 0x00020000,
259     TYPE_TOUCH_GUIDE_BEGIN = 0x00040000,
260     TYPE_TOUCH_GUIDE_END = 0x00080000,
261     TYPE_TOUCH_BEGIN = 0x00100000,
262     TYPE_TOUCH_END = 0x00200000,
263     TYPE_WINDOW_UPDATE = 0x00400000,
264     TYPE_INTERRUPT_EVENT = 0x00800000,
265     TYPE_GESTURE_EVENT = 0x01000000,
266     TYPE_VIEW_REQUEST_FOCUS_FOR_ACCESSIBILITY = 0x02000000,
267     TYPE_VIEW_SCROLLED_START = 0x04000000,
268     TYPE_PAGE_CLOSE = 0x08000000,
269     TYPE_VIEW_ANNOUNCE_FOR_ACCESSIBILITY = 0x10000000,
270     TYPE_PAGE_OPEN = 0x20000000,
271     TYPE_ELEMENT_INFO_CHANGE = 0x40000000,
272     TYPE_VIEW_ANNOUNCE_FOR_ACCESSIBILITY_NOT_INTERRUPT = 0x40000001,
273     TYPE_VIEW_REQUEST_FOCUS_FOR_ACCESSIBILITY_NOT_INTERRUPT = 0x40000002,
274     TYPE_VIEW_SCROLLING_EVENT = 0x40000003,
275     TYPE_MAX_NUM = 0x80000000,
276     TYPES_ALL_MASK = 0xFFFFFFFF,
277 };
278 
279 enum NotificationCategory : int32_t {
280     CATEGORY_INVALID = 0,
281     CATEGORY_CALL = 0x00000001,
282     CATEGORY_MSG = 0x00000002,
283     CATEGORY_EMAIL = 0x00000004,
284     CATEGORY_EVENT = 0x00000008,
285     CATEGORY_PROMO = 0x00000010,
286     CATEGORY_ALARM = 0x00000020,
287     CATEGORY_PROGRESS = 0x00000040,
288     CATEGORY_SOCIAL = 0x00000080,
289     CATEGORY_ERR = 0x00000100,
290     CATEGORY_TRANSPORT = 0x00000200,
291     CATEGORY_SYS = 0x00000400,
292     CATEGORY_SERVICE = 0x00000800,
293     CATEGORY_OTHERS = 0x00001000,
294 };
295 
296 // The types of swipe gestures which are performed on the touch screen.
297 enum GestureType : uint32_t {
298     GESTURE_INVALID = 0,
299     GESTURE_SWIPE_UP = 0x0001,
300     GESTURE_SWIPE_DOWN = 0x0002,
301     GESTURE_SWIPE_LEFT = 0x0003,
302     GESTURE_SWIPE_RIGHT = 0x0004,
303     GESTURE_SWIPE_LEFT_THEN_RIGHT = 0x0005,
304     GESTURE_SWIPE_RIGHT_THEN_LEFT = 0x0006,
305     GESTURE_SWIPE_UP_THEN_DOWN = 0x0007,
306     GESTURE_SWIPE_DOWN_THEN_UP = 0x0008,
307     GESTURE_SWIPE_LEFT_THEN_UP = 0x0009,
308     GESTURE_SWIPE_LEFT_THEN_DOWN = 0x000A,
309     GESTURE_SWIPE_RIGHT_THEN_UP = 0x000B,
310     GESTURE_SWIPE_RIGHT_THEN_DOWN = 0x000C,
311     GESTURE_SWIPE_UP_THEN_LEFT = 0x000D,
312     GESTURE_SWIPE_UP_THEN_RIGHT = 0x000E,
313     GESTURE_SWIPE_DOWN_THEN_LEFT = 0x000F,
314     GESTURE_SWIPE_DOWN_THEN_RIGHT = 0x0010,
315 
316     GESTURE_TAP = 0x0011,
317     GESTURE_DOUBLETAP = 0x0012,
318     GESTURE_DOUBLETAP_HOLD = 0x0013,
319     GESTURE_DRAG = 0x0014,
320     GESTURE_SWIPE_SLOWLY = 0x0015,
321     GESTURE_TRIPLETAP = 0x0016,
322     GESTURE_SCALE = 0x0017,
323     GESTURE_SCROLL = 0x0018,
324     GESTURE_TWO_FINGER_SINGLE_TAP = 0x0019,
325     GESTURE_TWO_FINGER_DOUBLE_TAP = 0x001A,
326     GESTURE_TWO_FINGER_DOUBLE_TAP_AND_HOLD = 0x001B,
327     GESTURE_TWO_FINGER_TRIPLE_TAP = 0x001C,
328     GESTURE_TWO_FINGER_TRIPLE_TAP_AND_HOLD = 0x001D,
329     GESTURE_THREE_FINGER_SINGLE_TAP = 0x001E,
330     GESTURE_THREE_FINGER_DOUBLE_TAP = 0x001F,
331     GESTURE_THREE_FINGER_DOUBLE_TAP_AND_HOLD = 0x0020,
332     GESTURE_THREE_FINGER_TRIPLE_TAP = 0x0021,
333     GESTURE_THREE_FINGER_TRIPLE_TAP_AND_HOLD = 0x0022,
334     GESTURE_FOUR_FINGER_SINGLE_TAP = 0x0023,
335     GESTURE_FOUR_FINGER_DOUBLE_TAP = 0x0024,
336     GESTURE_FOUR_FINGER_DOUBLE_TAP_AND_HOLD = 0x0025,
337     GESTURE_FOUR_FINGER_TRIPLE_TAP = 0x0026,
338     GESTURE_FOUR_FINGER_TRIPLE_TAP_AND_HOLD = 0x0027,
339     GESTURE_THREE_FINGER_SWIPE_UP = 0x0028,
340     GESTURE_THREE_FINGER_SWIPE_DOWN = 0x0029,
341     GESTURE_THREE_FINGER_SWIPE_LEFT = 0x002A,
342     GESTURE_THREE_FINGER_SWIPE_RIGHT = 0x002B,
343     GESTURE_FOUR_FINGER_SWIPE_UP = 0x002C,
344     GESTURE_FOUR_FINGER_SWIPE_DOWN = 0x002D,
345     GESTURE_FOUR_FINGER_SWIPE_LEFT = 0x002E,
346     GESTURE_FOUR_FINGER_SWIPE_RIGHT = 0x002F,
347     GESTURE_GESTURE_ALL = 0xFFFFFFFF
348 };
349 
350 enum AccessibilityWindowType : int32_t {
351     TYPE_WINDOW_INVALID = 0,
352     TYPE_ACCESSIBILITY_OVERLAY = 0x00000001,
353     TYPE_APPLICATION = 0x00000002,
354     TYPE_INPUT_METHOD = 0x00000004,
355     TYPE_SPLIT_SCREEN_DIVIDER = 0x00000008,
356     TYPE_SYSTEM = 0x00000010,
357 };
358 
359 struct Registration {
360     int32_t windowId = 0;
361     int32_t parentWindowId = 0;
362     int32_t parentTreeId = 0;
363     int64_t elementId = 0;
364 };
365 
366 struct ElementBasicInfo {
367     int32_t windowId = -2;
368     int32_t treeId = -2;
369     int64_t elementId = -2;
370 };
371 
372 struct ResourceInfo {
373     uint32_t resourceId;
374     std::string bundleName;
375     std::string moduleName;
376 };
377 
378 enum SEARCH_TYPE : uint32_t {
379     CUSTOMID = 0,
380     ACCESSIBILITY_TEXT
381 };
382 
383 struct SpecificPropertyParam {
384     std::string propertyTarget;
385     SEARCH_TYPE propertyType;
386 };
387 
388 constexpr int32_t PARAM0 = 0;
389 constexpr int32_t PARAM1 = 1;
390 constexpr int32_t PARAM2 = 2;
391 constexpr int32_t MAX_BUNDLE_NAME_LEN = 128;
392 
393 struct AccessibilitySecCompPoint {
394     int64_t uniqueId;
395     char bundleName[MAX_BUNDLE_NAME_LEN];
396     int64_t timeStamp;
397 };
398 } // namespace Accessibility
399 } // namespace OHOS
400 
401 constexpr size_t CALLBACK_SIZE = 1;
402 constexpr size_t ARGS_SIZE_ZERO = 0;
403 constexpr size_t ARGS_SIZE_ONE = 1;
404 constexpr size_t ARGS_SIZE_TWO = 2;
405 constexpr size_t ARGS_SIZE_THREE = 3;
406 constexpr size_t ARGS_SIZE_FOUR = 4;
407 constexpr int32_t DEFAULT_INT32 = 0;
408 constexpr int32_t CODE_SUCCESS = 0;
409 constexpr int32_t CODE_FAILED = -1;
410 constexpr int32_t CHAE_BUFFER_MAX = 1024;
411 constexpr int32_t US_TO_MS = 1000;
412 constexpr float COMPLEX_UNIT_MM_CONVERSION = 1.0f / 25.4f;
413 constexpr int32_t MM_PER_CM = 10;
414 
415 const char ERROR_MESSAGE_PARAMETER_ERROR[] = "Parameter error. Possible causes:"
416     "1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.";
417 const char ERROR_MESSAGE_NO_PERMISSION[] = "Permission verification failed."
418     "The application does not have the permission required to call the API.";
419 const char ERROR_MESSAGE_NOT_SYSTEM_APP[] = "Permission verification failed."
420     "A non-system application calls a system API.";
421 const char ERROR_MESSAGE_NO_RIGHT[] = "No accessibility permission to perform the operation";
422 const char ERROR_MESSAGE_SYSTEM_ABNORMALITY[] = "System abnormality";
423 const char ERROR_MESSAGE_PROPERTY_NOT_EXIST[] = "This property does not exist";
424 const char ERROR_MESSAGE_ACTION_NOT_SUPPORT[] = "This action is not supported";
425 const char ERROR_MESSAGE_INVALID_BUNDLE_NAME_OR_ABILITY_NAME[] = "Invalid bundle name or ability name";
426 const char ERROR_MESSAGE_TARGET_ABILITY_ALREADY_ENABLED[] = "Target ability already enabled";
427 const char ERROR_MESSAGE_ENABLE_MAGNIFICATION[] = "Failed to trigger magnification.";
428 const char ERROR_MESSAGE_CAPABILITY_NOT_SUPPORT[] = "Capability not supported."
429     "Failed to call the API due to limited device capabilities.";
430 
431 enum class NAccessibilityErrorCode : int32_t {
432     ACCESSIBILITY_OK = 0,
433     ACCESSIBILITY_ERROR_NO_PERMISSION = 201,
434     ACCESSIBILITY_ERROR_NOT_SYSTEM_APP = 202,
435     ACCESSIBILITY_ERROR_INVALID_PARAM = 401,
436     ACCESSIBILITY_ERROR_CAPABILITY_NOT_SUPPORT = 801,
437     ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY = 9300000,
438     ACCESSIBILITY_ERROR_ERROR_EXTENSION_NAME = 9300001,
439     ACCESSIBILITY_ERROR_TARGET_ABILITY_ALREADY_ENABLED = 9300002,
440     ACCESSIBILITY_ERROR_NO_RIGHT = 9300003,
441     ACCESSIBILITY_ERROR_PROPERTY_NOT_EXIST = 9300004,
442     ACCESSIBILITY_ERROR_ACTION_NOT_SUPPORT = 9300005,
443     ACCESSIBILITY_ERROR_ENABLE_MAGNIFICATION = 9300007,
444 };
445 
446 struct NAccessibilityErrMsg {
447     NAccessibilityErrorCode errCode;
448     std::string message;
449 };
450 
451 enum AccessibilityEventType : int32_t {
452     TYPE_ERROR = -1,
453     TYPE_ACCESSIBILITY_FOCUS = 0,
454     TYPE_ACCESSIBILITY_FOCUS_CLEAR = 1,
455     TYPE_CLICK = 2,
456     TYPE_LONG_CLICK = 3,
457     TYPE_SELECT = 4,
458     TYPE_HOVER_ENTER = 5,
459     TYPE_HOVER_EXIT = 6,
460     TYPE_FOCUS = 7,
461     TYPE_TEXT_UPDATE = 8,
462     TYPE_TEXT_SELECTION_UPDATE = 9,
463     TYPE_SCROLL = 10,
464     TYPE_REQUEST_FOCUS_FOR_ACCESSIBILITY = 11,
465     TYPE_ANNOUNCE_FOR_ACCESSIBILITY = 12,
466     TYPE_REQUEST_FOCUS_FOR_ACCESSIBILITY_NOT_INTERRUPT = 13,
467     TYPE_ANNOUNCE_FOR_ACCESSIBILITY_NOT_INTERRUPT = 14,
468     TYPE_ELEMENT_INFO_CHANGE = 15,
469     TYPE_SCROLLING = 16,
470     TYPE_WINDOW_ADD = 17,
471     TYPE_WINDOW_REMOVE = 18,
472     TYPE_WINDOW_BOUNDS = 19,
473     TYPE_WINDOW_ACTIVE = 20,
474     TYPE_WINDOW_FOCUS = 21,
475     TYPE_WINDOW_PROPERTY = 22,
476     TYPE_WINDOW_LAYER = 23,
477     TYPE_TOUCH_BEGIN = 24,
478     TYPE_TOUCH_END = 25,
479     TYPE_PAGE_CONTENT_UPDATE = 26,
480     TYPE_PAGE_STATE_UPDATE = 27,
481     TYPE_PAGE_OPEN = 28,
482     TYPE_PAGE_CLOSE = 29,
483     TYPE_SWIPE_LEFT = 30,
484     TYPE_SWIPE_LEFT_THEN_RIGHT = 31,
485     TYPE_SWIPE_LEFT_THEN_UP = 32,
486     TYPE_SWIPE_LEFT_THEN_DOWN = 33,
487     TYPE_SWIPE_RIGHT = 34,
488     TYPE_SWIPE_RIGHT_THEN_LEFT = 35,
489     TYPE_SWIPE_RIGHT_THEN_UP = 36,
490     TYPE_SWIPE_RIGHT_THEN_DOWN = 37,
491     TYPE_SWIPE_UP = 38,
492     TYPE_SWIPE_UP_THEN_LEFT = 39,
493     TYPE_SWIPE_UP_THEN_RIGHT = 40,
494     TYPE_SWIPE_UP_THEN_DOWN = 41,
495     TYPE_SWIPE_DOWN = 42,
496     TYPE_SWIPE_DOWN_THEN_LEFT = 43,
497     TYPE_SWIPE_DOWN_THEN_RIGHT = 44,
498     TYPE_SWIPE_DOWN_THEN_UP = 45,
499     TYPE_TWO_FINGER_SINGLE_TAP = 46,
500     TYPE_TWO_FINGER_DOUBLE_TAP = 47,
501     TYPE_TWO_FINGER_DOUBLE_TAP_AND_HOLD = 48,
502     TYPE_TWO_FINGER_TRIPLE_TAP = 49,
503     TYPE_TWO_FINGER_TRIPLE_TAP_AND_HOLD = 50,
504     TYPE_THREE_FINGER_SINGLE_TAP = 51,
505     TYPE_THREE_FINGER_DOUBLE_TAP = 52,
506     TYPE_THREE_FINGER_DOUBLE_TAP_AND_HOLD = 53,
507     TYPE_THREE_FINGER_TRIPLE_TAP = 54,
508     TYPE_THREE_FINGER_TRIPLE_TAP_AND_HOLD = 55,
509     TYPE_FOUR_FINGER_SINGLE_TAP = 56,
510     TYPE_FOUR_FINGER_DOUBLE_TAP = 57,
511     TYPE_FOUR_FINGER_DOUBLE_TAP_AND_HOLD = 58,
512     TYPE_FOUR_FINGER_TRIPLE_TAP = 59,
513     TYPE_FOUR_FINGER_TRIPLE_TAP_AND_HOLD = 60,
514     TYPE_THREE_FINGER_SWIPE_UP = 61,
515     TYPE_THREE_FINGER_SWIPE_DOWN = 62,
516     TYPE_THREE_FINGER_SWIPE_LEFT = 63,
517     TYPE_THREE_FINGER_SWIPE_RIGHT = 64,
518     TYPE_FOUR_FINGER_SWIPE_UP = 65,
519     TYPE_FOUR_FINGER_SWIPE_DOWN = 66,
520     TYPE_FOUR_FINGER_SWIPE_LEFT = 67,
521     TYPE_FOUR_FINGER_SWIPE_RIGHT = 68
522 };
523 
524 enum AccessibilityAction : int32_t {
525     ERROR = -1,
526     ACCESSIBILITY_FOCUS = 0,
527     CLEAR_ACCESSIBILITY_FOCUS = 1,
528     FOCUS = 2,
529     CLEAR_FOCUS = 3,
530     CLICK = 4,
531     LONG_CLICK = 5,
532     CUT = 6,
533     COPY = 7,
534     PASTE = 8,
535     SELECT = 9,
536     SET_TEXT = 10,
537     SCROLL_FORWARD = 11,
538     SCROLL_BACKWARD = 12,
539     SET_SELECTION = 13,
540     SET_CURSOR_POSITION = 14,
541     HOME = 15,
542     BACK = 16,
543     RECENT_TASK = 17,
544     NOTIFICATION_CENTER = 18,
545     CONTROL_CENTER = 19,
546     SPAN_CLICK = 20
547 };
548 
549 #define RETURN_FALSE_IF_NULL(sptr)                     \
550     do {                                               \
551         if ((sptr) == nullptr) {                       \
552             HILOG_ERROR("%s is nullptr", #sptr);       \
553             return false;                              \
554         }                                              \
555     } while (0)
556 #endif // ACCESSIBILITY_DEFINE_H