1# @ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力)
2
3AccessibilityExtensionAbility基于ExtensionAbility框架,提供辅助功能业务的能力。
4
5> **说明:**
6>
7> - 本模块首批接口从API version 9开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
13```
14
15### 属性
16
17**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
18
19| 名称      | 类型                                                                                          | 可读   | 可写   | 说明           |
20| ------- |---------------------------------------------------------------------------------------------| ---- | ---- | ------------ |
21| context | [AccessibilityExtensionContext](js-apis-inner-application-accessibilityExtensionContext.md) | 是    | 否    | 表示辅助扩展能力上下文。 |
22
23## AccessibilityEvent
24
25辅助事件信息。
26
27**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
28
29### 属性
30
31| 名称      | 类型                                                             | 可读                                                                           | 可写                                 | 说明                                                         |
32| --------- |----------------------------------------------------------------|------------------------------------------------------------------------------|------------------------------------| ------------------------------------------------------------ |
33| eventType | [accessibility.EventType](js-apis-accessibility.md#eventtype) \| [accessibility.WindowUpdateType](js-apis-accessibility.md#windowupdatetype) \| [TouchGuideType](#touchguidetype) \| [GestureType](#gesturetype) \| [PageUpdateType](#pageupdatetype) | 是   | 否   | 具体事件类型。<br />EventType:无障碍事件类型;<br />WindowUpdateType:窗口变化类型;TouchGuideType:触摸浏览事件类型;<br />GestureType:手势事件类型;<br />PageUpdateType:页面刷新类型。 |
34| target    | [AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9) | 是                                                                            | 否                                  | 发生事件的目标组件。                                         |
35| timeStamp | number                                                         | 是                                                                            | 否                                  | 事件时间戳,单位是毫秒。                                                 |
36| elementId<sup>12+</sup> | number                                                         | 是                                                                            | 否                                  | 主动聚焦的组件ID。                                                 |
37| textAnnouncedForAccessibility<sup>12+</sup> | string                                                         | 是                                                                            | 否                                  | 主动播报的内容。                                                 |
38
39
40## AccessibilityElement<sup>10+</sup>
41
42[AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9)二级模块
43
44**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
45
46**示例:**
47
48```ts
49import { AccessibilityElement } from '@kit.AccessibilityKit';
50
51let accessibilityElement: AccessibilityElement;
52```
53
54## ElementAttributeValues<sup>10+</sup>
55
56[ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues)二级模块
57
58**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
59
60**示例:**
61
62```ts
63import { ElementAttributeValues } from '@kit.AccessibilityKit';
64
65let elementAttributeValues: ElementAttributeValues;
66```
67
68## FocusDirection<sup>10+</sup>
69
70[FocusDirection](js-apis-inner-application-accessibilityExtensionContext.md#focusdirection)二级模块,表示查询下一焦点元素的方向。
71
72**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
73
74**示例:**
75
76```ts
77import { FocusDirection } from '@kit.AccessibilityKit';
78
79let focusDirection: FocusDirection;
80```
81
82## ElementAttributeKeys<sup>10+</sup>
83
84**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
85
86| 名称      | 类型                                                                                                                   | 可读   | 可写   | 说明                                                 |
87| ------- |----------------------------------------------------------------------------------------------------------------------| ---- | ---- |----------------------------------------------------|
88| ElementAttributeKeys | keyof [ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues) | 是    | 否    | 表示ElementAttributeValues的key。 |
89
90
91**示例:**
92
93```ts
94import { ElementAttributeKeys } from '@kit.AccessibilityKit';
95
96let elementAttributeKeys: ElementAttributeKeys;
97```
98
99## FocusType<sup>10+</sup>
100
101[FocusType](js-apis-inner-application-accessibilityExtensionContext.md#focustype)二级模块,表示查询焦点元素的类型。
102
103**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
104
105**示例:**
106
107```ts
108import { FocusType } from '@kit.AccessibilityKit';
109
110let focusType: FocusType;
111```
112
113## WindowType <sup>10+</sup>
114
115[WindowType](js-apis-inner-application-accessibilityExtensionContext.md#windowtype)二级模块,表示窗口的类型。
116
117**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
118
119**示例:**
120
121```ts
122import { WindowType } from '@kit.AccessibilityKit';
123
124let windowType: WindowType;
125```
126
127## Rect<sup>10+</sup>
128
129[Rect](js-apis-inner-application-accessibilityExtensionContext.md#rect)二级模块,表示矩形区域。
130
131**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
132
133**示例:**
134
135```ts
136import { Rect } from '@kit.AccessibilityKit';
137
138let rect: Rect;
139```
140
141## GestureType
142
143手势事件类型。
144
145**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
146
147| 名称            | 类型            | 描述                  |
148| ------------- | ------------- | ------------------- |
149| left          | string          | 表示向左的手势。     |
150| leftThenRight | string          | 表示先向左再向右的手势。 |
151| leftThenUp    | string          | 表示先向左再向上的手势。 |
152| leftThenDown  | string          | 表示先向左再向下的手势。 |
153| right         | string          | 表示向右的手势。     |
154| rightThenLeft | string          | 表示先向右再向左的手势。 |
155| rightThenUp   | string          | 表示先向右再向上的手势。 |
156| rightThenDown | string          | 表示先向右再向下的手势。 |
157| up            | string          | 表示向上的手势。     |
158| upThenLeft    | string          | 表示先向上再向左的手势。 |
159| upThenRight   | string          | 表示先向上再向右的手势。 |
160| upThenDown    | string          | 表示先向上再向下的手势。 |
161| down          | string          | 表示向下的手势。     |
162| downThenLeft  | string          | 表示先向下再向左的手势。 |
163| downThenRight | string          | 表示先向下再向右的手势。 |
164| downThenUp    | string          | 表示先向下再向上的手势。 |
165| twoFingerSingleTap<sup>11+</sup>  | string          | 表示双指单击的手势。 |
166| twoFingerDoubleTap<sup>11+</sup>  | string          | 表示双指双击的手势。 |
167| twoFingerDoubleTapAndHold<sup>11+</sup> | string          | 表示双指双击长按的手势。 |
168| twoFingerTripleTap<sup>11+</sup>  | string          | 表示双指三击的手势。 |
169| twoFingerTripleTapAndHold<sup>11+</sup> | string          | 表示双指三击长按的手势。 |
170| threeFingerSingleTap<sup>11+</sup> | string          | 表示三指单击的手势。 |
171| threeFingerDoubleTap<sup>11+</sup> | string          | 表示三指双击的手势。 |
172| threeFingerDoubleTapAndHold<sup>11+</sup> | string          | 表示三指双击长按的手势。 |
173| threeFingerTripleTap<sup>11+</sup> | string          | 表示三指三击的手势。 |
174| threeFingerTripleTapAndHold<sup>11+</sup> | string          | 表示三指三击长按的手势。 |
175| fourFingerSingleTap<sup>11+</sup> | string          | 表示四指单击的手势。 |
176| fourFingerDoubleTap<sup>11+</sup> | string          | 表示四指双击的手势。 |
177| fourFingerDoubleTapAndHold<sup>11+</sup> | string          | 表示四指双击长按的手势。 |
178| fourFingerTripleTap<sup>11+</sup> | string          | 表示四指三击的手势。 |
179| fourFingerTripleTapAndHold<sup>11+</sup> | string          | 表示四指三击长按的手势。 |
180| threeFingerSwipeUp<sup>11+</sup>  | string          | 表示三指向上滑动的手势。 |
181| threeFingerSwipeDown<sup>11+</sup> | string          | 表示三指向下滑动的手势。 |
182| threeFingerSwipeLeft<sup>11+</sup> | string          | 表示三指向左滑动的手势。 |
183| threeFingerSwipeRight<sup>11+</sup> | string          | 表示三指向右滑动的手势。 |
184| fourFingerSwipeUp<sup>11+</sup>   | string          | 表示四指向上滑动的手势。 |
185| fourFingerSwipeDown<sup>11+</sup> | string          | 表示四指向下滑动的手势。 |
186| fourFingerSwipeLeft<sup>11+</sup> | string          | 表示四指向左滑动的手势。 |
187| fourFingerSwipeRight<sup>11+</sup> | string          | 表示四指向右滑动的手势。 |
188
189## PageUpdateType
190
191type PageUpdateType = 'pageContentUpdate' | 'pageStateUpdate'
192
193页面刷新类型。
194
195**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
196
197| 类型                | 说明            |
198| ----------------- | ---------------- |
199| 'pageContentUpdate' | 表示页面内容刷新。 |
200| 'pageStateUpdate' | 表示页面内容刷新。 |
201
202## TouchGuideType
203
204TouchGuideType = 'touchBegin' | 'touchEnd'
205
206触摸浏览事件类型。
207
208**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
209
210| 类型                | 说明                  |
211| ---------- | ------------------- |
212| 'touchBegin' | 表示触摸浏览时开始触摸。 |
213| 'touchEnd' | 表示触摸浏览时结束触摸。 |
214
215## AccessibilityExtensionAbility.onConnect<sup>(deprecated)</sup>
216
217onConnect(): void;
218
219用户启用AccessibilityExtensionAbility时,系统服务完成连接后,回调此接口,可以该方法中执行初始化业务逻辑操作。该方法可以选择性重写。
220
221> **说明:**
222>
223> 从API version 12开始废弃。
224
225**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
226
227**示例:**
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
243用户停用AccessibilityExtensionAbility时,系统服务完成断开连接后,回调此接口,可以该方法中执行资源回收退出业务逻辑操作。该方法可以选择性重写。
244
245> **说明:**
246>
247> 从API version 12开始废弃。
248
249**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
250
251**示例:**
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
267在关注的应用及事件类型对应的事件发生时回调此接口,可以在该方法中根据事件信息进行业务逻辑处理。一般情况下需要重写该方法完成业务。
268
269> **说明:**
270>
271> 从API version 12开始废弃。
272
273**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
274
275**参数:**
276
277| 参数名   | 类型                                       | 必填   | 说明              |
278| ----- | ---------------------------------------- | ---- | --------------- |
279| event | [AccessibilityEvent](#accessibilityevent) | 是    | 无障碍事件回调函数。无返回值。 |
280
281**示例:**
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
300在物理按键按下时回调此方法,可以在该方法中根据业务判断是否对事件进行拦截。
301
302> **说明:**
303>
304> 从API version 12开始废弃。
305
306**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
307
308**参数:**
309
310| 参数名      | 类型                                               | 必填   | 说明                      |
311| -------- |--------------------------------------------------| ---- | ----------------------- |
312| keyEvent | [KeyEvent](../apis-input-kit/js-apis-keyevent.md#keyevent) | 是    | 按键事件回调函数。返回true表示拦截此按键。 |
313
314**示例:**
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