1# @ohos.application.AccessibilityExtensionAbility (AccessibilityExtensionAbility)
2
3The **AccessibilityExtensionAbility** module provides accessibility extension capabilities based on the ExtensionAbility framework.
4
5> **NOTE**
6>
7> - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8
9## Modules to Import
10
11```ts
12import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
13```
14
15### Attributes
16
17**System capability**: SystemCapability.BarrierFree.Accessibility.Core
18
19| Name     | Type                                                                                         | Readable  | Writable  | Description          |
20| ------- |---------------------------------------------------------------------------------------------| ---- | ---- | ------------ |
21| context | [AccessibilityExtensionContext](js-apis-inner-application-accessibilityExtensionContext.md) | Yes   | No   | Context of the accessibility extension ability.|
22
23## AccessibilityEvent
24
25Defines an accessibility event.
26
27**System capability**: SystemCapability.BarrierFree.Accessibility.Core
28
29### Attributes
30
31| Name     | Type                                                            | Readable                                                                          | Writable                                | Description                                                        |
32| --------- |----------------------------------------------------------------|------------------------------------------------------------------------------|------------------------------------| ------------------------------------------------------------ |
33| eventType | [accessibility.EventType](js-apis-accessibility.md#eventtype) \| [accessibility.WindowUpdateType](js-apis-accessibility.md#windowupdatetype) \| [TouchGuideType](#touchguidetype) \| [GestureType](#gesturetype) \| [PageUpdateType](#pageupdatetype) | Yes  | No  | Event type.<br>**EventType**: accessibility event type.<br>**WindowUpdateType**: Window update type.<br>**TouchGuideType**: touch guide event type.<br>**GestureType**: gesture type.<br>**PageUpdateType**: page update type.|
34| target    | [AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9) | Yes                                                                           | No                                 | Target component where the event occurs.                                        |
35| timeStamp | number                                                         | Yes                                                                           | No                                 | Timestamp of the event, in milliseconds.                                                |
36| elementId<sup>12+</sup> | number                                                         | Yes                                                                           | No                                 | Component ID for auto-focusing.                                                |
37| textAnnouncedForAccessibility<sup>12+</sup> | string                                                         | Yes                                                                           | No                                 | Content for auto-broadcasting.                                                |
38
39
40## AccessibilityElement<sup>10+</sup>
41
42Level-2 Module of [AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9).
43
44**System capability**: SystemCapability.BarrierFree.Accessibility.Core
45
46**Example**
47
48```ts
49import { AccessibilityElement } from '@kit.AccessibilityKit';
50
51let accessibilityElement: AccessibilityElement;
52```
53
54## ElementAttributeValues<sup>10+</sup>
55
56Level-2 Module of [ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues).
57
58**System capability**: SystemCapability.BarrierFree.Accessibility.Core
59
60**Example**
61
62```ts
63import { ElementAttributeValues } from '@kit.AccessibilityKit';
64
65let elementAttributeValues: ElementAttributeValues;
66```
67
68## FocusDirection<sup>10+</sup>
69
70Enumerates the focus directions. It is a level-2 module of [FocusDirection](js-apis-inner-application-accessibilityExtensionContext.md#focusdirection).
71
72**System capability**: SystemCapability.BarrierFree.Accessibility.Core
73
74**Example**
75
76```ts
77import { FocusDirection } from '@kit.AccessibilityKit';
78
79let focusDirection: FocusDirection;
80```
81
82## ElementAttributeKeys<sup>10+</sup>
83
84**System capability**: SystemCapability.BarrierFree.Accessibility.Core
85
86| Name     | Type                                                                                                                  | Readable  | Writable  | Description                                                |
87| ------- |----------------------------------------------------------------------------------------------------------------------| ---- | ---- |----------------------------------------------------|
88| ElementAttributeKeys | keyof [ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues) | Yes   | No   | Key of **ElementAttributeValues**.|
89
90
91**Example**
92
93```ts
94import { ElementAttributeKeys } from '@kit.AccessibilityKit';
95
96let elementAttributeKeys: ElementAttributeKeys;
97```
98
99## FocusType<sup>10+</sup>
100
101Enumerates the focus types. It is a level-2 module of [FocusType](js-apis-inner-application-accessibilityExtensionContext.md#focustype).
102
103**System capability**: SystemCapability.BarrierFree.Accessibility.Core
104
105**Example**
106
107```ts
108import { FocusType } from '@kit.AccessibilityKit';
109
110let focusType: FocusType;
111```
112
113## WindowType <sup>10+</sup>
114
115Enumerates the window types. It is a level-2 module of [WindowType](js-apis-inner-application-accessibilityExtensionContext.md#windowtype).
116
117**System capability**: SystemCapability.BarrierFree.Accessibility.Core
118
119**Example**
120
121```ts
122import { WindowType } from '@kit.AccessibilityKit';
123
124let windowType: WindowType;
125```
126
127## Rect<sup>10+</sup>
128
129Defines a rectangle. It is a level-2 module of [Rect](js-apis-inner-application-accessibilityExtensionContext.md#rect).
130
131**System capability**: SystemCapability.BarrierFree.Accessibility.Core
132
133**Example**
134
135```ts
136import { Rect } from '@kit.AccessibilityKit';
137
138let rect: Rect;
139```
140
141## GestureType
142
143Enumerates gesture types.
144
145**System capability**: SystemCapability.BarrierFree.Accessibility.Core
146
147| Name           | Type           | Description                 |
148| ------------- | ------------- | ------------------- |
149| left          | string          | Left gesture.    |
150| leftThenRight | string          | Left-then-right gesture.|
151| leftThenUp    | string          | Left-then-up gesture.|
152| leftThenDown  | string          | Left-then-down gesture.|
153| right         | string          | Right gesture.    |
154| rightThenLeft | string          | Right-then-left gesture.|
155| rightThenUp   | string          | Right-then-up gesture.|
156| rightThenDown | string          | Right-then-down gesture.|
157| up            | string          | Up gesture.    |
158| upThenLeft    | string          | Up-then-left gesture.|
159| upThenRight   | string          | Up-then-right gesture.|
160| upThenDown    | string          | Up-then-down gesture.|
161| down          | string          | Down gesture.    |
162| downThenLeft  | string          | Down-then-left gesture.|
163| downThenRight | string          | Down-then-right gesture.|
164| downThenUp    | string          | Down-then-up gesture.|
165| twoFingerSingleTap<sup>11+</sup>  | string          | Two-finger tap gesture.|
166| twoFingerDoubleTap<sup>11+</sup>  | string          | Two-finger double-tap gesture.|
167| twoFingerDoubleTapAndHold<sup>11+</sup> | string          | Two-finger double-tap and press-and-hold gesture.|
168| twoFingerTripleTap<sup>11+</sup>  | string          | Two-finger triple-tap gesture.|
169| twoFingerTripleTapAndHold<sup>11+</sup> | string          | Two-finger triple-tap and press-and-hold gesture.|
170| threeFingerSingleTap<sup>11+</sup> | string          | Three-finger tap gesture.|
171| threeFingerDoubleTap<sup>11+</sup> | string          | Three-finger double-tap gesture.|
172| threeFingerDoubleTapAndHold<sup>11+</sup> | string          | Three-finger double-tap and press-and-hold gesture.|
173| threeFingerTripleTap<sup>11+</sup> | string          | Three-finger triple-tap gesture.|
174| threeFingerTripleTapAndHold<sup>11+</sup> | string          | Three-finger triple-tap and press-and-hold gesture.|
175| fourFingerSingleTap<sup>11+</sup> | string          | Four-finger tap gesture.|
176| fourFingerDoubleTap<sup>11+</sup> | string          | Four-finger double-tap gesture.|
177| fourFingerDoubleTapAndHold<sup>11+</sup> | string          | Four-finger double-tap and press-and-hold gesture.|
178| fourFingerTripleTap<sup>11+</sup> | string          | Four-finger triple-tap gesture.|
179| fourFingerTripleTapAndHold<sup>11+</sup> | string          | Four-finger triple-tap and press-and-hold gesture.|
180| threeFingerSwipeUp<sup>11+</sup>  | string          | Three-finger swipe-up gesture.|
181| threeFingerSwipeDown<sup>11+</sup> | string          | Three-finger swipe-down gesture.|
182| threeFingerSwipeLeft<sup>11+</sup> | string          | Three-finger swipe-left gesture.|
183| threeFingerSwipeRight<sup>11+</sup> | string          | Three-finger swipe-right gesture.|
184| fourFingerSwipeUp<sup>11+</sup>   | string          | Four-finger swipe-up gesture.|
185| fourFingerSwipeDown<sup>11+</sup> | string          | Four-finger swipe-down gesture.|
186| fourFingerSwipeLeft<sup>11+</sup> | string          | Four-finger swipe-left gesture.|
187| fourFingerSwipeRight<sup>11+</sup> | string          | Four-finger swipe-right gesture.|
188
189## PageUpdateType
190
191type PageUpdateType = 'pageContentUpdate' | 'pageStateUpdate'
192
193Enumerates the page update types.
194
195**System capability**: SystemCapability.BarrierFree.Accessibility.Core
196
197| Type               | Description           |
198| ----------------- | ---------------- |
199| 'pageContentUpdate' | Update of the page content.|
200| 'pageStateUpdate' | Update of the page content.|
201
202## TouchGuideType
203
204TouchGuideType = 'touchBegin' | 'touchEnd'
205
206Enumerates the touch guide event types.
207
208**System capability**: SystemCapability.BarrierFree.Accessibility.Core
209
210| Type               | Description                 |
211| ---------- | ------------------- |
212| 'touchBegin' | Start of touch in touch guide mode.|
213| 'touchEnd' | End of touch in touch guide mode.|
214
215## AccessibilityExtensionAbility.onConnect<sup>(deprecated)</sup>
216
217onConnect(): void;
218
219Called when the **AccessibilityExtensionAbility** is enabled and connected to the system service. In this API, you can have the service logic initialized. This API can be overridden as required.
220
221> **NOTE**
222>
223> This API is deprecated since API version 12.
224
225**System capability**: SystemCapability.BarrierFree.Accessibility.Core
226
227**Example**
228
229```ts
230import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
231
232class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
233  onConnect(): void {
234    console.log('AxExtensionAbility onConnect');
235  }
236}
237```
238
239## AccessibilityExtensionAbility.onDisconnect<sup>(deprecated)</sup>
240
241onDisconnect(): void;
242
243Called when the **AccessibilityExtensionAbility** is disabled and disconnected from the system service. In this API, you can implement the service logic of resource release and exit. This API can be overridden as required.
244
245> **NOTE**
246>
247> This API is deprecated since API version 12.
248
249**System capability**: SystemCapability.BarrierFree.Accessibility.Core
250
251**Example**
252
253```ts
254import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
255
256class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
257  onDisconnect(): void {
258    console.log('AxExtensionAbility onDisconnect');
259  }
260}
261```
262
263## AccessibilityExtensionAbility.onAccessibilityEvent<sup>(deprecated)</sup>
264
265onAccessibilityEvent(event: AccessibilityEvent): void;
266
267Called when an event that matches the specified bundle and event type occurs. In this API, you can implement event-specific service logic. Generally, this API needs to be overridden.
268
269> **NOTE**
270>
271> This API is deprecated since API version 12.
272
273**System capability**: SystemCapability.BarrierFree.Accessibility.Core
274
275**Parameters**
276
277| Name  | Type                                      | Mandatory  | Description             |
278| ----- | ---------------------------------------- | ---- | --------------- |
279| event | [AccessibilityEvent](#accessibilityevent) | Yes   | Accessibility event. No return value.|
280
281**Example**
282
283```ts
284import { AccessibilityExtensionAbility, AccessibilityEvent } from '@kit.AccessibilityKit';
285
286class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
287  onAccessibilityEvent(event: AccessibilityEvent): void {
288    console.log('AxExtensionAbility onAccessibilityEvent');
289    if (event.eventType === 'click') {
290      console.log('AxExtensionAbility onAccessibilityEvent: click');
291    }
292  }
293}
294```
295
296## AccessibilityExtensionAbility.onKeyEvent<sup>(deprecated)</sup>
297
298onKeyEvent(keyEvent: KeyEvent): boolean;
299
300Called when a physical key is pressed. In this API, you can determine whether to intercept an event based on the service.
301
302> **NOTE**
303>
304> This API is deprecated since API version 12.
305
306**System capability**: SystemCapability.BarrierFree.Accessibility.Core
307
308**Parameters**
309
310| Name     | Type                                              | Mandatory  | Description                     |
311| -------- |--------------------------------------------------| ---- | ----------------------- |
312| keyEvent | [KeyEvent](../apis-input-kit/js-apis-keyevent.md#keyevent) | Yes   | Key event. If **true** is returned, the key is intercepted.|
313
314**Example**
315
316```ts
317import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
318import { KeyEvent } from '@kit.InputKit';
319
320class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
321  onKeyEvent(keyEvent: KeyEvent): boolean {
322    console.log('AxExtensionAbility onKeyEvent');
323    if (keyEvent.key.code === 16) {
324      console.log('AxExtensionAbility onKeyEvent: intercept 16');
325      return true;
326    }
327    return false;
328  }
329}
330```
331