• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力)
2
3<!--Kit: Accessibility Kit-->
4<!--Subsystem: BarrierFree-->
5<!--Owner: @qiiiiiiian-->
6<!--Designer: @z7o-->
7<!--Tester: @A_qqq-->
8<!--Adviser: @w_Machine_cc-->
9
10AccessibilityExtensionAbility基于ExtensionAbility框架,提供辅助功能业务的能力。
11
12> **说明:**
13>
14> - 本模块首批接口从API version 9开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。
15
16## 导入模块
17
18```ts
19import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
20```
21
22## AccessibilityExtensionAbility
23
24AccessibilityExtensionAbility基于ExtensionAbility框架,提供辅助功能业务的能力。
25
26### 属性
27
28**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
29
30| 名称      | 类型                                                                                          | 只读   | 可选   | 说明           |
31| ------- |---------------------------------------------------------------------------------------------| ---- | ---- | ------------ |
32| context | [AccessibilityExtensionContext](js-apis-inner-application-accessibilityExtensionContext.md) | 否    | 否    | 表示辅助扩展能力上下文。 |
33
34## AccessibilityEvent
35
36辅助事件信息。
37
38**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
39
40### 属性
41
42| 名称      | 类型              | 只读             | 可选                      | 说明                       |
43| --------- |----------------------------------------------------------------|------------------------------------------------------------------------------|------------------------------------| ------------------------------------------------------------ |
44| 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:窗口变化类型;<br />TouchGuideType:触摸浏览事件类型;<br />GestureType:手势事件类型;<br />PageUpdateType:页面刷新类型。 |
45| target    | [AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9) | 否  | 是    | 发生事件的目标组件。  |
46| timeStamp | number              | 否        | 是         | 事件时间戳,单位是毫秒。默认值为0。                          |
47| elementId<sup>12+</sup> | number            | 否             | 是             | 主动聚焦的组件ID。默认值为0。                 |
48| textAnnouncedForAccessibility<sup>12+</sup> | string    | 否           | 是     | 主动播报的内容。当应用需要主动播报时根据实际场景设置播报内容,无特殊限制。                  |
49| extraInfo<sup>20+</sup> | string    | 否           | 是     | 针对TextArea、TextInput、SearchField、RichEdit组件,当文本内容有新增或删除时,携带的文本内容。根据实际场景设置,无特殊限制。                 |
50
51
52## AccessibilityElement<sup>10+</sup>
53
54type AccessibilityElement = _AccessibilityElement
55
56表示无障碍节点元素,请参考[AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9)。
57
58**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
59
60| 类型      | 说明       |
61| ------- | -------- |
62| _AccessibilityElement | 表示无障碍节点元素,请参考[AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9)。 |
63
64**示例:**
65
66```ts
67import { AccessibilityElement } from '@kit.AccessibilityKit';
68
69let accessibilityElement: AccessibilityElement;
70```
71
72## ElementAttributeValues<sup>10+</sup>
73
74type ElementAttributeValues = _ElementAttributeValues
75
76表示节点元素具备的属性名称及属性值类型信息,请参考[ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues)。
77
78**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
79
80| 类型      | 说明       |
81| ------- | -------- |
82| _ElementAttributeValues | 表示节点元素具备的属性名称及属性值类型信息,请参考[ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues)。 |
83
84**示例:**
85
86```ts
87import { ElementAttributeValues } from '@kit.AccessibilityKit';
88
89let elementAttributeValues: ElementAttributeValues;
90```
91
92## FocusDirection<sup>10+</sup>
93
94type FocusDirection = _FocusDirection
95
96表示查询下一焦点元素的方向,请参考[FocusDirection](js-apis-inner-application-accessibilityExtensionContext.md#focusdirection)。
97
98**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
99
100| 类型      | 说明       |
101| ------- | -------- |
102| _FocusDirection | 表示查询下一焦点元素的方向,请参考[FocusDirection](js-apis-inner-application-accessibilityExtensionContext.md#focusdirection)。 |
103
104**示例:**
105
106```ts
107import { FocusDirection } from '@kit.AccessibilityKit';
108
109let focusDirection: FocusDirection;
110```
111
112## ElementAttributeKeys<sup>10+</sup>
113
114**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
115
116| 名称      | 类型                                                                                                                   | 只读   | 可选   | 说明                                                 |
117| ------- |----------------------------------------------------------------------------------------------------------------------| ---- | ---- |----------------------------------------------------|
118| ElementAttributeKeys | keyof [ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues) | 否    | 否    | 表示ElementAttributeValues的key。 |
119
120
121**示例:**
122
123```ts
124import { ElementAttributeKeys } from '@kit.AccessibilityKit';
125
126let elementAttributeKeys: ElementAttributeKeys;
127```
128
129## FocusType<sup>10+</sup>
130
131type FocusType = _FocusType
132
133表示查询焦点元素的类型,请参考[FocusType](js-apis-inner-application-accessibilityExtensionContext.md#focustype)。
134
135**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
136
137| 类型      | 说明       |
138| ------- | -------- |
139| _FocusType | 表示查询焦点元素的类型,请参考[FocusType](js-apis-inner-application-accessibilityExtensionContext.md#focustype)。 |
140
141**示例:**
142
143```ts
144import { FocusType } from '@kit.AccessibilityKit';
145
146let focusType: FocusType;
147```
148
149## WindowType <sup>10+</sup>
150
151type WindowType = _WindowType
152
153表示窗口的类型,请参考[WindowType](js-apis-inner-application-accessibilityExtensionContext.md#windowtype)。
154
155**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
156
157| 类型      | 说明       |
158| ------- | -------- |
159| _WindowType | 表示窗口的类型,请参考[WindowType](js-apis-inner-application-accessibilityExtensionContext.md#windowtype)。 |
160
161**示例:**
162
163```ts
164import { WindowType } from '@kit.AccessibilityKit';
165
166let windowType: WindowType;
167```
168
169## Rect<sup>10+</sup>
170
171type Rect = _Rect
172
173表示矩形区域,请参考[Rect](js-apis-inner-application-accessibilityExtensionContext.md#rect)。
174
175**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
176
177| 类型      | 说明       |
178| ------- | -------- |
179| _Rect | 表示矩形区域,请参考[Rect](js-apis-inner-application-accessibilityExtensionContext.md#rect)。 |
180
181**示例:**
182
183```ts
184import { Rect } from '@kit.AccessibilityKit';
185
186let rect: Rect;
187```
188
189## AccessibilityExtensionContext
190
191type AccessibilityExtensionContext = _AccessibilityExtensionContext.default
192
193表示辅助功能扩展的上下文环境,请参考[AccessibilityExtensionContext](js-apis-inner-application-accessibilityExtensionContext.md)。
194
195**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
196
197| 类型      | 说明       |
198| ------- | -------- |
199| _AccessibilityExtensionContext.default | 表示辅助功能扩展的上下文环境,请参考[AccessibilityExtensionContext](js-apis-inner-application-accessibilityExtensionContext.md)。 |
200
201**示例:**
202
203```ts
204import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
205
206class EntryAbility extends AccessibilityExtensionAbility {
207  onConnect(): void {
208    let axContext = this.context;
209  }
210}
211```
212
213## GestureType
214
215type GestureType = 'left' | 'leftThenRight' | 'leftThenUp' | 'leftThenDown' | 'right' | 'rightThenLeft' | 'rightThenUp' | 'rightThenDown' | 'up' | 'upThenLeft' | 'upThenRight' | 'upThenDown' | 'down' | 'downThenLeft' | 'downThenRight' | 'downThenUp' | 'twoFingerSingleTap' | 'twoFingerDoubleTap' | 'twoFingerDoubleTapAndHold' | 'twoFingerTripleTap' | 'twoFingerTripleTapAndHold' | 'threeFingerSingleTap' | 'threeFingerDoubleTap' | 'threeFingerDoubleTapAndHold' | 'threeFingerTripleTap' | 'threeFingerTripleTapAndHold' | 'fourFingerSingleTap' | 'fourFingerDoubleTap' | 'fourFingerDoubleTapAndHold' | 'fourFingerTripleTap' | 'fourFingerTripleTapAndHold' | 'threeFingerSwipeUp' | 'threeFingerSwipeDown' | 'threeFingerSwipeLeft' | 'threeFingerSwipeRight' | 'fourFingerSwipeUp' | 'fourFingerSwipeDown' | 'fourFingerSwipeLeft' | 'fourFingerSwipeRight'
216
217手势事件类型。
218
219**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
220
221| 名称            | 类型            | 描述                  |
222| ------------- | ------------- | ------------------- |
223| left          | string          | 表示向左的手势。     |
224| leftThenRight | string          | 表示先向左再向右的手势。 |
225| leftThenUp    | string          | 表示先向左再向上的手势。 |
226| leftThenDown  | string          | 表示先向左再向下的手势。 |
227| right         | string          | 表示向右的手势。     |
228| rightThenLeft | string          | 表示先向右再向左的手势。 |
229| rightThenUp   | string          | 表示先向右再向上的手势。 |
230| rightThenDown | string          | 表示先向右再向下的手势。 |
231| up            | string          | 表示向上的手势。     |
232| upThenLeft    | string          | 表示先向上再向左的手势。 |
233| upThenRight   | string          | 表示先向上再向右的手势。 |
234| upThenDown    | string          | 表示先向上再向下的手势。 |
235| down          | string          | 表示向下的手势。     |
236| downThenLeft  | string          | 表示先向下再向左的手势。 |
237| downThenRight | string          | 表示先向下再向右的手势。 |
238| downThenUp    | string          | 表示先向下再向上的手势。 |
239| twoFingerSingleTap<sup>11+</sup>  | string          | 表示双指单击的手势。 |
240| twoFingerDoubleTap<sup>11+</sup>  | string          | 表示双指双击的手势。 |
241| twoFingerDoubleTapAndHold<sup>11+</sup> | string          | 表示双指双击长按的手势。 |
242| twoFingerTripleTap<sup>11+</sup>  | string          | 表示双指三击的手势。 |
243| twoFingerTripleTapAndHold<sup>11+</sup> | string          | 表示双指三击长按的手势。 |
244| threeFingerSingleTap<sup>11+</sup> | string          | 表示三指单击的手势。 |
245| threeFingerDoubleTap<sup>11+</sup> | string          | 表示三指双击的手势。 |
246| threeFingerDoubleTapAndHold<sup>11+</sup> | string          | 表示三指双击长按的手势。 |
247| threeFingerTripleTap<sup>11+</sup> | string          | 表示三指三击的手势。 |
248| threeFingerTripleTapAndHold<sup>11+</sup> | string          | 表示三指三击长按的手势。 |
249| fourFingerSingleTap<sup>11+</sup> | string          | 表示四指单击的手势。 |
250| fourFingerDoubleTap<sup>11+</sup> | string          | 表示四指双击的手势。 |
251| fourFingerDoubleTapAndHold<sup>11+</sup> | string          | 表示四指双击长按的手势。 |
252| fourFingerTripleTap<sup>11+</sup> | string          | 表示四指三击的手势。 |
253| fourFingerTripleTapAndHold<sup>11+</sup> | string          | 表示四指三击长按的手势。 |
254| threeFingerSwipeUp<sup>11+</sup>  | string          | 表示三指向上滑动的手势。 |
255| threeFingerSwipeDown<sup>11+</sup> | string          | 表示三指向下滑动的手势。 |
256| threeFingerSwipeLeft<sup>11+</sup> | string          | 表示三指向左滑动的手势。 |
257| threeFingerSwipeRight<sup>11+</sup> | string          | 表示三指向右滑动的手势。 |
258| fourFingerSwipeUp<sup>11+</sup>   | string          | 表示四指向上滑动的手势。 |
259| fourFingerSwipeDown<sup>11+</sup> | string          | 表示四指向下滑动的手势。 |
260| fourFingerSwipeLeft<sup>11+</sup> | string          | 表示四指向左滑动的手势。 |
261| fourFingerSwipeRight<sup>11+</sup> | string          | 表示四指向右滑动的手势。 |
262
263## PageUpdateType
264
265type PageUpdateType = 'pageContentUpdate' | 'pageStateUpdate'
266
267页面刷新类型。
268
269**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
270
271| 类型                | 说明            |
272| ----------------- | ---------------- |
273| 'pageContentUpdate' | 表示页面内容刷新。 |
274| 'pageStateUpdate' | 表示页面状态刷新。 |
275
276## TouchGuideType
277
278type TouchGuideType = 'touchBegin' | 'touchEnd'
279
280触摸浏览事件类型。
281
282**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
283
284| 类型                | 说明                  |
285| ---------- | ------------------- |
286| 'touchBegin' | 表示触摸浏览时开始触摸。 |
287| 'touchEnd' | 表示触摸浏览时结束触摸。 |
288
289## AccessibilityExtensionAbility.onConnect<sup>(deprecated)</sup>
290
291onConnect(): void;
292
293用户启用AccessibilityExtensionAbility时,系统服务完成连接后,回调此接口,可以该方法中执行初始化业务逻辑操作。该方法可以选择性重写。
294
295> **说明:**
296>
297> 从API version 12开始废弃。替代接口仅面向系统应用开放。
298
299**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
300
301**示例:**
302
303```ts
304import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
305
306class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
307  onConnect(): void {
308    console.log('AxExtensionAbility onConnect');
309  }
310}
311```
312
313## AccessibilityExtensionAbility.onDisconnect<sup>(deprecated)</sup>
314
315onDisconnect(): void;
316
317用户停用AccessibilityExtensionAbility时,系统服务完成断开连接后,回调此接口,可以该方法中执行资源回收退出业务逻辑操作。该方法可以选择性重写。
318
319> **说明:**
320>
321> 从API version 12开始废弃。替代接口仅面向系统应用开放。
322
323**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
324
325**示例:**
326
327```ts
328import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
329
330class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
331  onDisconnect(): void {
332    console.log('AxExtensionAbility onDisconnect');
333  }
334}
335```
336
337## AccessibilityExtensionAbility.onAccessibilityEvent<sup>(deprecated)</sup>
338
339onAccessibilityEvent(event: AccessibilityEvent): void;
340
341在关注的应用及事件类型对应的事件发生时回调此接口,可以在该方法中根据事件信息进行业务逻辑处理。一般情况下需要重写该方法完成业务。
342
343> **说明:**
344>
345> 从API version 12开始废弃。替代接口仅面向系统应用开放。
346
347**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
348
349**参数:**
350
351| 参数名   | 类型                                       | 必填   | 说明              |
352| ----- | ---------------------------------------- | ---- | --------------- |
353| event | [AccessibilityEvent](#accessibilityevent) | 是    | 无障碍事件。无返回值。 |
354
355**示例:**
356
357```ts
358import { AccessibilityExtensionAbility, AccessibilityEvent } from '@kit.AccessibilityKit';
359
360class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
361  onAccessibilityEvent(event: AccessibilityEvent): void {
362    console.log('AxExtensionAbility onAccessibilityEvent');
363    if (event.eventType === 'click') {
364      console.log('AxExtensionAbility onAccessibilityEvent: click');
365    }
366  }
367}
368```
369
370## AccessibilityExtensionAbility.onKeyEvent<sup>(deprecated)</sup>
371
372onKeyEvent(keyEvent: KeyEvent): boolean;
373
374在物理按键按下时回调此方法,可以在该方法中根据业务判断是否对事件进行拦截。
375
376> **说明:**
377>
378> 从API version 12开始废弃。替代接口仅面向系统应用开放。
379
380**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
381
382**参数:**
383
384| 参数名      | 类型                                               | 必填   | 说明                      |
385| -------- |--------------------------------------------------| ---- | ----------------------- |
386| keyEvent | [KeyEvent](../apis-input-kit/js-apis-keyevent.md#keyevent) | 是    | 按键事件回调函数。返回true表示拦截此按键。|
387
388**返回值:**
389| 类型    | 说明                                                         |
390| ------- | ------------------------------------------------------------ |
391| boolean | 返回true表示此事件被消费,不会继续传递。<br>返回false表示些事件未被消费,会继续传递。|
392
393**示例:**
394
395```ts
396import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
397import { KeyEvent } from '@kit.InputKit';
398
399class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
400  onKeyEvent(keyEvent: KeyEvent): boolean {
401    console.log('AxExtensionAbility onKeyEvent');
402    if (keyEvent.key.code === 16) {
403      console.log('AxExtensionAbility onKeyEvent: intercept 16');
404      return true;
405    }
406    return false;
407  }
408}
409```
410