• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# AccessibilityExtensionContext (辅助功能扩展上下文)(系统接口)
2
3<!--Kit: Accessibility Kit-->
4<!--Subsystem: BarrierFree-->
5<!--Owner: @qiiiiiiian-->
6<!--Designer: @z7o-->
7<!--Tester: @A_qqq-->
8<!--Adviser: @w_Machine_cc-->
9
10AccessibilityExtensionContext是AccessibilityExtensionAbility上下文环境,继承自ExtensionContext。
11
12辅助功能扩展上下文模块提供辅助功能扩展的上下文环境的能力,包括允许配置辅助应用关注信息类型、查询节点信息、手势注入等。
13
14> **说明:**
15>
16> - 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
17> - 当前页面仅包含本模块的系统接口,其他公开接口请参[AccessibilityExtensionContext (辅助功能扩展上下文)](js-apis-inner-application-accessibilityExtensionContext.md)。
18
19## 使用说明
20
21在使用AccessibilityExtensionContext的功能前,需要通过AccessibilityExtensionAbility子类实例获取AccessibilityExtensionContex的实例。
22
23```ts
24import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
25
26class EntryAbility extends AccessibilityExtensionAbility {
27  onConnect(): void {
28    let axContext = this.context;
29  }
30}
31```
32
33## Parameter<sup>20+</sup>
34
35无障碍节点元素执行特定操作时,为操作提供具体设置的参数值。
36详见[无障碍节点元素可执行的操作](./js-apis-accessibility-sys.md#accessibilityaction)。
37
38**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
39
40| 名称                  | 类型     | 只读  |可选| 说明                                |
41| ------------------- | ------ | ---- | ----|--------------------------------- |
42| setText             | string | 否   |是 |设置组件文本时文本内容。                 |
43| selectTextBegin     | string | 否  | 是|选定组件内文本时的起始坐标,如:'2'。        |
44| selectTextEnd       | string | 否   | 是|选定组件内文本时的结束坐标,如:'8'。      |
45| selectTextInForWard | bool   | 否    | 是|选定组件内文本时是否向前选择,如:true。      |
46| offset              | string | 否   | 是|设置光标的偏移量,如:'1'。    |
47| spanId              | string | 否   |是 |对超链接文本进行点击操作时文本编号。                |
48| scrollType          | string | 否   | 是|组件滚动类型,包括'fullScreen'(全屏)和'halfScreen'(半屏)。 |
49
50例如:选中文本输入框中index从0到7的字符时,executeAction(AccessibilityAction.SET_SELECTION, parameter)方法设置的参数如下:
51```ts
52let p : Parameter = { selectTextBegin: '0', selectTextEnd: '8', selectTextInForWard: true }
53```
54
55## AccessibilityGrid<sup>20+</sup>
56
57辅助功能网格信息。
58详见[AccessibilityElement.currentItem](#accessibilityelement12)。
59
60**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
61
62| 名称                  | 类型     | 只读  |可选| 说明                                |
63| ------------------- | ------ | ---- | ----|--------------------------------- |
64| rowIndex             | number | 否   |否 |网格行索引。                 |
65| columnIndex          | number | 否  | 否|网格列索引。        |
66
67
68## AccessibilitySpan<sup>20+</sup>
69
70辅助功能超链接文本信息。
71详见[AccessibilityElement.spans](#accessibilityelement12)。
72
73**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
74
75| 名称                  | 类型     | 只读  |可选| 说明                                |
76| ------------------- | ------ | ---- | ----|--------------------------------- |
77| spanId             | number | 否   |否 |超链接文本编号。                 |
78| spanText          | string | 否  | 否|超链接文本的文本内容。        |
79| accessibilityText          | string | 否  | 否|超链接文本的辅助功能文本。        |
80| accessibilityDescription          | string | 否  | 否|超链接文本的辅助功能描述。        |
81| accessibilityLevel          | string | 否  | 否|超链接文本的辅助功能级别。        |
82
83
84## startAbility<sup>12+</sup>
85
86startAbility(want: Want): Promise\<void>;
87
88提供拉起前台页面的能力。
89
90**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
91
92**参数:**
93
94| 参数名 | 类型 | 必填 | 说明 |
95| -------- | -------- | -------- | -------- |
96| want | [Want](../../reference/apis-ability-kit/js-apis-app-ability-want.md) | 是 | Want类型参数,传入需要启动的ability的信息,如Ability名称,Bundle名称等。 |
97
98**返回值:**
99
100| 类型                  | 说明               |
101| ------------------- | ---------------- |
102| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
103
104**错误码:**
105
106以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
107
108| 错误码ID   | 错误信息                                     |
109| ------- | ---------------------------------------- |
110| 201 | Permission denied. Interface caller does not have permission. |
111| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
112
113**示例:**
114
115```ts
116import { BusinessError } from '@kit.BasicServicesKit';
117
118let want: Want = {
119  bundleName: 'com.huawei.hmos.photos',
120  abilityName: 'com.huawei.hmos.photos.MainAbility'
121}
122
123axContext.startAbility(want).then(() => {
124  console.info(`startAbility Succeeded enable ability`);
125}).catch((err: BusinessError) => {
126  console.error(`startAbility failed to enable ability, Code is ${err.code}, message is ${err.message}`);
127});
128```
129
130## AccessibilityExtensionContext.getElements<sup>18+</sup>
131
132getElements(windowId: number, elementId?: number): Promise<Array&lt;AccessibilityElement&gt;>;
133
134提供批量查询节点的能力。
135
136**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
137
138**参数:**
139
140| 参数名 | 类型 | 必填 | 说明 |
141| -------- | -------- | -------- | -------- |
142| windowId | number | 是 | 表示查询的窗口id。 |
143| elementId | number | 否 | 表示查询的节点id。传入此参数表示查询当前节点下的所有子节点列表,不传则查询窗口下所有节点。默认值为-1。 |
144
145**返回值:**
146| 类型                                  | 说明                     |
147| ----------------------------------- | ---------------------- |
148| Promise<Array&lt;AccessibilityElement&gt;> | Promise对象,返回当前窗口或者当前节点下的所有子节点列表。 |
149
150**错误码:**
151
152以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[无障碍子系统错误码](errorcode-accessibility.md)。
153
154| 错误码ID   | 错误信息                                     |
155| ------- | ---------------------------------------- |
156| 202 | Permission verification failed. A non-system application calls a system API. |
157| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
158| 9300003 | No accessibility permission to perform the operation. |
159
160**示例:**
161
162```ts
163import { AccessibilityElement } from '@kit.AccessibilityKit';
164import { BusinessError } from '@kit.BasicServicesKit';
165
166let windowId: number = 10;
167let elementId: number = 10;
168
169axContext.getElements(windowId, elementId).then((data:AccessibilityElement[]) => {
170  console.log(`Succeeded in find element, ${JSON.stringify(data)}`);
171}).catch((err: BusinessError) => {
172  console.error(`failed to find element, Code is ${err.code}, message is ${err.message}`);
173});
174```
175
176## AccessibilityExtensionContext.getDefaultFocusedElementIds<sup>18+</sup>
177
178getDefaultFocusedElementIds(windowId: number): Promise<Array&lt;number&gt;>;
179
180提供查询应用自定义默认焦点的能力。
181
182**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
183
184**参数:**
185
186| 参数名 | 类型 | 必填 | 说明 |
187| -------- | -------- | -------- | -------- |
188| windowId | number | 是 | 表示查询的窗口id。 |
189
190**返回值:**
191| 类型                                  | 说明                     |
192| ----------------------------------- | ---------------------- |
193| Promise<Array&lt;number&gt;> | Promise对象,返回当前窗口下的自定义默认焦点列表。 |
194
195**错误码:**
196
197以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[无障碍子系统错误码](errorcode-accessibility.md)。
198
199| 错误码ID   | 错误信息                                     |
200| ------- | ---------------------------------------- |
201| 202 | Permission verification failed. A non-system application calls a system API. |
202| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
203| 9300003 | No accessibility permission to perform the operation. |
204
205**示例:**
206
207```ts
208import { AccessibilityElement } from '@kit.AccessibilityKit';
209import { BusinessError } from '@kit.BasicServicesKit';
210
211let windowId: number = 10;
212
213axContext.getDefaultFocusedElementIds(windowId).then((data: number[]) => {
214  console.log(`Succeeded in get default focus, ${JSON.stringify(data)}`);
215}).catch((err: BusinessError) => {
216  console.error(`failed to get default focus, Code is ${err.code}, message is ${err.message}`);
217});
218```
219
220## AccessibilityExtensionContext.holdRunningLockSync<sup>20+</sup>
221
222holdRunningLockSync(): void
223
224持有RunningLock锁,持锁后,屏幕不会自动灭屏。
225
226**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
227
228**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
229
230**错误码:**
231
232以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
233
234| 错误码ID   | 错误信息                                     |
235| ------- | ---------------------------------------- |
236| 201 | Permission verification failed. The application does not have the permission required to call the API.  |
237| 202 | Permission verification failed. A non-system application calls a system API. |
238
239**示例:**
240
241```ts
242import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
243import { BusinessError } from '@kit.BasicServicesKit';
244
245try {
246  axContext.holdRunningLockSync();
247} catch (err) {
248  console.error(`Failed to hold RunningLock, Code is ${err.code}, message is ${err.message}`);
249}
250```
251
252## AccessibilityExtensionContext.unholdRunningLockSync<sup>20+</sup>
253
254unholdRunningLockSync(): void
255
256释放RunningLock锁,恢复自动灭屏。
257
258**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
259
260**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
261
262**错误码:**
263
264以以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
265
266| 错误码ID   | 错误信息                                     |
267| ------- | ---------------------------------------- |
268| 201 | Permission verification failed. The application does not have the permission required to call the API.  |
269| 202 | Permission verification failed. A non-system application calls a system API. |
270
271**示例:**
272
273```ts
274import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
275import { BusinessError } from '@kit.BasicServicesKit';
276
277try {
278  axContext.unholdRunningLockSync();
279} catch (err) {
280  console.error(`Failed to unhold RunningLock, code is ${err.code}, message is ${err.message}`);
281}
282```
283
284## AccessibilityExtensionContext.on('preDisconnect')<sup>20+</sup>
285
286on(type: 'preDisconnect', callback: Callback&lt;void&gt;): void
287
288向无障碍服务注册回调函数,在无障碍服务关闭该无障碍扩展服务前会执行该回调函数。
289
290此注册函数需要与[notifyDisconnect](#accessibilityextensioncontextnotifydisconnect20)配合使用,如果不调用[notifyDisconnect](#accessibilityextensioncontextnotifydisconnect20),则默认等待30秒后,无障碍扩展服务会自动关闭。
291
292**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
293
294**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
295
296**参数:**
297
298| 参数名 | 类型 | 必填 | 说明 |
299| -------- | -------- | -------- | -------- |
300| type | string | 是 | 监听事件名,固定为‘preDisconnect’,即无障碍扩展服务即将关闭事件。 |
301| callback | Callback&lt;void&gt; | 是 |回调函数,在无障碍扩展服务即将关闭时回调。|
302
303**错误码:**
304
305以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
306
307| 错误码ID   | 错误信息                                     |
308| ------- | ---------------------------------------- |
309| 201 | Permission verification failed. The application does not have the permission required to call the API.  |
310| 202 | Permission verification failed. A non-system application calls a system API. |
311
312**示例:**
313
314```ts
315import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
316import { BusinessError } from '@kit.BasicServicesKit';
317
318try {
319  axContext.on('preDisconnect', () => {
320    console.info(`To do something before accessibilityExtension disconnect.`);
321  });
322} catch (err) {
323  console.error(`Failed to register, code is ${err.code}, message is ${err.message}`);
324}
325```
326
327## AccessibilityExtensionContext.off('preDisconnect')<sup>20+</sup>
328
329off(type: 'preDisconnect', callback?: Callback&lt;void&gt;): void
330
331取消已经向无障碍服务注册的预关闭回调函数,无障碍服务关闭该扩展服务前不再执行该回调。
332
333**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
334
335**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
336
337**参数:**
338
339| 参数名 | 类型 | 必填 | 说明 |
340| -------- | -------- | -------- | -------- |
341| type | string | 是 | 监听事件名,固定为‘preDisconnect’,即无障碍扩展服务即将关闭事件。 |
342| callback | Callback&lt;void&gt; | 否 |回调函数,取消指定无障碍扩展服务即将关闭时的回调。需与[on('preDisconnect')](#accessibilityextensioncontextonpredisconnect20)的callback一致。缺省时,表示注销所有已注册事件。|
343
344**错误码:**
345
346以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
347
348| 错误码ID   | 错误信息                                     |
349| ------- | ---------------------------------------- |
350| 201 | Permission verification failed. The application does not have the permission required to call the API.  |
351| 202 | Permission verification failed. A non-system application calls a system API. |
352
353**示例:**
354
355```ts
356import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
357import { BusinessError } from '@kit.BasicServicesKit';
358
359try {
360  axContext.off('preDisconnect', () => {
361    console.info(`To do something before accessibilityExtension disconnect.`);
362  });
363} catch (err) {
364  console.error(`Failed to unRegister, code is ${err.code}, message is ${err.message}`);
365}
366```
367
368## AccessibilityExtensionContext.notifyDisconnect<sup>20+</sup>
369
370notifyDisconnect(): void
371
372通知无障碍服务可以关闭该无障碍扩展服务。
373
374此函数需要与注册预关闭接口[on('preDisconnect')](#accessibilityextensioncontextonpredisconnect20)配合使用,如果没有调用过注册预关闭函数,直接调用此函数不生效。
375
376**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
377
378**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
379
380**错误码:**
381
382以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
383
384| 错误码ID   | 错误信息                                     |
385| ------- | ---------------------------------------- |
386| 201 | Permission verification failed. The application does not have the permission required to call the API.  |
387| 202 | Permission verification failed. A non-system application calls a system API. |
388
389**示例:**
390
391```ts
392import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
393import { BusinessError } from '@kit.BasicServicesKit';
394
395try {
396  axContext.notifyDisconnect();
397} catch (err) {
398  console.error(`Failed to notify accessibility, code is ${err.code}, message is ${err.message}`);
399}
400```
401
402## getAccessibilityFocusedElement<sup>20+</sup>
403
404getAccessibilityFocusedElement(): Promise\<AccessibilityElement>;
405
406获取当前获得焦点的元素。
407
408**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
409
410**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
411
412**返回值:**
413| 类型                                 | 描述                    |
414| ----------------------------------- | ---------------------- |
415| Promise\<[AccessibilityElement](#accessibilityelement12)>| 异步返回函数结果.|
416
417**错误码:**
418以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[无障碍子系统错误码](errorcode-accessibility.md)。
419
420| 错误码ID   | 错误信息                                     |
421| ------- | ---------------------------------------- |
422| 201 | Permission verification failed.The application does not have the permission required to call the API. |
423| 202 | Permission verification failed. A non-system application calls a system API. |
424| 9300003 | No accessibility permission to perform the operation. |
425| 9300006 |  The target application failed to connect to accessibility service. |
426
427**示例:**
428
429```ts
430import { AccessibilityElement } from '@kit.AccessibilityKit';
431import { BusinessError } from '@kit.BasicServicesKit';
432
433axContext.getAccessibilityFocusedElement().then((element: AccessibilityElement) => {
434  console.log(`Succeeded in get accessibility focused element, ${element.bundleName}`);
435}).catch((err: BusinessError) => {
436  console.error(`failed to get accessibility focused element, Code is ${err.code}, message is ${err.message}`);
437});
438```
439
440## getRootInActiveWindow<sup>20+</sup>
441
442getRootInActiveWindow(windowId ?: number): Promise\<[AccessibilityElement](#accessibilityelement12)>;
443
444获取活动窗口根元素。
445
446**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
447
448**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
449
450**参数:**
451| 参数名 | 类型 | 必填 | 说明 |
452| -------- | -------- | -------- | -------- |
453| windowId | number | No | Window ID to be obtained.|
454
455**返回值:**
456| 类型                                 | 描述                    |
457| ----------------------------------- | ---------------------- |
458| Promise\<[AccessibilityElement](#accessibilityelement12)>| Promise used to return the result.|
459
460**错误码:**
461以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[无障碍子系统错误码](errorcode-accessibility.md)。
462| 错误码ID   | 错误信息                                     |
463| ------- | ---------------------------------------- |
464| 201 | Permission verification failed.The application does not have the permission required to call the API. |
465| 202 | Permission verification failed. A non-system application calls a system API. |
466| 9300003 | No accessibility permission to perform the operation. |
467| 9300006 |  The target application failed to connect to accessibility service. |
468
469**示例:**
470
471```ts
472import { AccessibilityElement } from '@kit.AccessibilityKit';
473import { BusinessError } from '@kit.BasicServicesKit';
474
475let windowId: number = 0;
476
477axContext.getRootInActiveWindow(windowId).then((element: AccessibilityElement) => {
478  console.log(`Succeeded in get root inactive window element, ${element.bundleName}`);
479}).catch((err: BusinessError) => {
480  console.error(`failed to get root inactive window element, Code is ${err.code}, message is ${err.message}`);
481});
482```
483
484## getAccessibilityWindowsSync<sup>20+</sup>
485
486getAccessibilityWindowsSync(displayId?: number): Array\<[AccessibilityElement](#accessibilityelement12)>
487
488获取窗口列表。
489
490**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
491
492**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
493
494**参数:**
495| 参数名 | 类型 | 必填 | 说明 |
496| -------- | -------- | -------- | -------- |
497| displayId | number | No | 显示ID。如果未提供此参数,则表示默认displayId。 |
498
499**返回值:**
500
501| 类型                                 | 描述                    |
502| ----------------------------------- | ---------------------- |
503| Array\<[AccessibilityElement](#accessibilityelement12)> | 窗口列表。|
504
505**错误码:**
506以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[无障碍子系统错误码](errorcode-accessibility.md)。
507| 错误码ID   | 错误信息                                     |
508| ------- | ---------------------------------------- |
509| 201 | Permission verification failed.The application does not have the permission required to call the API. |
510| 202 | Permission verification failed. A non-system application calls a system API. |
511| 9300003 | No accessibility permission to perform the operation. |
512
513**示例:**
514
515```ts
516import { AccessibilityElement } from '@kit.AccessibilityKit';
517import { BusinessError } from '@kit.BasicServicesKit';
518
519try {
520  let displayId: number = 0;
521  let windowList = context?.getAccessibilityWindowsSync(displayId);
522  if (windowList) {
523    for (let window of windowList) {
524      console.log(`getAccessibilityWindowsSync: windowId: ${window.windowId}`);
525    }
526  }
527} catch (err) {
528  console.log(`[FAILED] getAccessibilityWindowsSync: ${err.code} ${err.message}`)
529}
530```
531
532## AccessibilityElement<sup>12+</sup>
533
534无障碍节点元素。在调用 **AccessibilityElement** 的 API 之前,应该调用 [AccessibilityExtensionContext.getAccessibilityFocusedElement()](#getaccessibilityfocusedelement20) 或 [AccessibilityExtensionContext.getRootInActiveWindow()](#getrootinactivewindow20) 来获取一个 **AccessibilityElement** 实例。
535
536**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
537
538### 属性
539
540| 名称                  | 类型                                                             | 只读 | 可选 | 描述             |
541|----------------------|--------------------------------------------------------------------|------|------|-------------------|
542| accessibilityFocused<sup>20+</sup> | boolean | 否 | 是 | 表示元素是否因无障碍目的获得焦点。true表示已获得焦点,false表示未获得焦点。<br>默认值:false。|
543| bundleName<sup>20+</sup> | string                                                             | 否  | 是  | 包名。|
544| checkable<sup>20+</sup> | boolean | 否 | 是 | 元素是否可勾选。true表示可勾选,false表示不可勾选。<br>默认值:false。|
545| checked<sup>20+</sup> | boolean | 否 | 是 | 元素是否已勾选。true表示已勾选,false表示未勾选。<br>默认值:false。|
546| clickable<sup>20+</sup> | boolean | 否 | 是 | 元素是否可点击。true表示可点击,false表示不可点击。<br>默认值:false。|
547| componentId<sup>20+</sup> | number | 否 | 是 | 元素所属组件的ID。<br>默认值:-1。|
548| componentType<sup>20+</sup> | string                                                             | 否  | 是  | 元素所属组件的类型。|
549| contents<sup>20+</sup> | Array&lt;string&gt;                                                | 否  | 是  | 元素显示内容。|
550| currentIndex<sup>20+</sup> | number                                                             | 否  | 是  | 当前项的索引。<br>默认值:0。|
551| description<sup>20+</sup> | string                                                             | 否  | 是  | 元素的描述信息。|
552| editable<sup>20+</sup> | boolean | 否 | 是 | 元素是否可编辑。true表示可编辑,false表示不可编辑。<br>默认值:false。|
553| endIndex<sup>20+</sup> | number                                                             | 否  | 是  | 屏幕上显示的最后一个列表项的索引。<br>默认值:0。|
554| error<sup>20+</sup> | string                                                             | 否  | 是  | 元素的错误状态。|
555| focusable<sup>20+</sup> | boolean | 否 | 是 | 元素是否可获得焦点。true表示可获得焦点,false表示不可获得焦点。<br/>默认值:false。|
556| hintText<sup>20+</sup> | string                                                             | 否  | 是  | 提示文本。|
557| inputType<sup>20+</sup> | number                                                             | 否  | 是  | 输入文本的类型。<br>默认值:0。|
558| inspectorKey<sup>20+</sup> | string                                                             | 否  | 是  | 检查器键。|
559| isActive<sup>20+</sup> | boolean | 否 | 是 | 元素是否处于活动状态。true表示活动状态,false表示非活动状态。<br>默认值:true。|
560| isEnable<sup>20+</sup> | boolean | 否 | 是 | 元素是否启用。true表示启用,false表示未启用。<br>默认值:false。|
561| isHint<sup>20+</sup> | boolean | 否 | 是 | 元素是否为提示信息。true表示元素是提示信息,false表示非提示信息。<br>默认值:false。|
562| isFocused<sup>20+</sup> | boolean | 否 | 是 | 表示元素是否已获得焦点。true表示已获得焦点,false表示未获得焦点。<br>默认值:false。|
563| isPassword<sup>20+</sup> | boolean                                                            | 否  | 是  | 元素是否为密码。true表示元素是密码,false表示不是密码。<br>默认值:false。|
564| isVisible<sup>20+</sup> | boolean | 否 | 是 | 元素是否可见。true表示元素可见,false表示元素不可见。<br>默认值:false。|
565| itemCount<sup>20+</sup> | number                                                             | 否  | 是  | 项目总数。<br>默认值:0。|
566| lastContent<sup>20+</sup> | string                                                             | 否  | 是  | 最后一项内容。|
567| layer<sup>20+</sup> | number                                                             | 否  | 是  | 元素的显示层级。|
568| longClickable<sup>20+</sup> | boolean | 否 | 是 | 元素是否可长按。true表示可长按,false表示不可长按。<br>默认值:false。|
569| pageId<sup>20+</sup> | number | 否 | 是 | 页面ID。<br>默认值:-1。|
570| pluralLineSupported<sup>20+</sup> | boolean | 否 | 是 | 表示元素是否支持多行文本。true表示支持,false表示不支持。<br>默认值:false。|
571| rect<sup>20+</sup>                 | [Rect](js-apis-inner-application-accessibilityExtensionContext.md#rect)                                                      | 否  | 是  | 元素的区域。|
572| resourceName<sup>20+</sup>         | string                                                             | 否  | 是  | 元素的资源名称。|
573| screenRect<sup>20+</sup>           | [Rect](js-apis-inner-application-accessibilityExtensionContext.md#rect)                                                      | 否  | 是  | 元素的显示区域。|
574| scrollable<sup>20+</sup>           | boolean                                                            | 否  | 是  | 元素是否可滚动。true表示元素可滚动,false表示不可滚动。<br>默认值:false。|
575| selected<sup>20+</sup>             | boolean                                                            | 否  | 是  | 元素是否已选中。true表示已选中,false表示未选中。<br>默认值:false。|
576| startIndex<sup>20+</sup>           | number                                                             | 否  | 是  | 屏幕上第一个列表项的索引。<br>默认值:0。|
577| text<sup>20+</sup>                 | string                                                             | 否  | 是  | 元素的文本内容。|
578| textLengthLimit<sup>20+</sup>      | number                                                             | 否  | 是  | 元素的最大文本长度。|
579| textMoveUnit<sup>20+</sup>         | [accessibility.TextMoveUnit](js-apis-accessibility.md#textmoveunit)| 否  | 是  | 文本朗读时的移动单位。<br>默认值:0。|
580| triggerAction<sup>20+</sup>        | [accessibility.Action](js-apis-accessibility.md#action)            | 否  | 是  | 触发元素事件的操作。|
581| type<sup>20+</sup>                 | [WindowType](js-apis-inner-application-accessibilityExtensionContext.md#windowtype)                                          | 否  | 是  | 元素的窗口类型。|
582| valueMax<sup>20+</sup>             | number                                                             | 否  | 是  | 最大值。<br>默认值:0。|
583| valueMin<sup>20+</sup>             | number                                                             | 否  | 是  | 最小值。<br>默认值:0。|
584| valueNow<sup>20+</sup>             | number                                                             | 否  | 是  | 当前值。<br>默认值:0。|
585| windowId<sup>20+</sup>             | number                                                             | 否  | 是  | 窗口ID。<br>默认值:-1。|
586| offset<sup>20+</sup>             | number              | 否  | 是  | 内容区域相对于可滚动组件(如List和Grid)顶部坐标的像素偏移量。<br>默认值:0。|
587| textType<sup>20+</sup>             | string                                                             | 否  | 是  | 元素的无障碍文本类型,由组件的accessibilityTextHint属性配置。|
588| accessibilityText<sup>20+</sup> | string                                                  | 否  | 是  | 元素的无障碍文本信息。|
589| hotArea<sup>20+</sup>             | [Rect](js-apis-inner-application-accessibilityExtensionContext.md#rect)                                                              | 否  | 是  | 元素的可触摸区域。|
590| customComponentType<sup>20+</sup>             | string                                                             | 否  | 是  | 自定义组件类型。|
591| accessibilityNextFocusId<sup>20+</sup>             | number                | 否  | 是  | 下一个要获得焦点的组件的ID。<br>默认值:-1。|
592| accessibilityPreviousFocusId<sup>20+</sup>             | number                | 否  | 是  | 上一个要获得焦点的组件的ID。<br>默认值:-1。|
593| extraInfo<sup>20+</sup>             | string     | 否  | 是  | 元素的额外信息。值为JSON字符串。|
594| accessibilityScrollable<sup>20+</sup>             | boolean                 | 否  | 是  | 元素是否因无障碍目的而可滚动。此属性优先级高于scrollable。<br>true表示元素可滚动,false表示元素不可滚动。<br>默认值:true。|
595| supportedActionNames<sup>20+</sup> | Array&lt;string&gt;                                                | 否  | 是  | 支持的操作名称。|
596| accessibilityGroup<sup>20+</sup>  | boolean                                                            | 否  | 是  | 元素是否为无障碍组。true表示元素是无障碍组,false表示元素不是无障碍组。<br>默认值:false。|
597| accessibilityLevel<sup>20+</sup>             | string                                                             | 否  | 是  | 组件的无障碍级别。<br>'auto':当前组件由无障碍分组服务和ArkUI进行综合判断组件是否可被辅助功能识别。<br>'yes':当前组件可被辅助功能识别。<br>'no':当前组件不可被辅助功能识别。<br>'no-hide-descendants':当前组件及其所有子组件不可被辅助功能识别。|
598| navDestinationId<sup>20+</sup>             | number                                                             | 否  | 是  | 组件的导航目标ID。|
599| currentItem<sup>20+</sup>             | [AccessibilityGrid](#accessibilitygrid20)                                                             | 否  | 是  | 组件网格中的当前项。|
600| spans<sup>20+</sup>             | [AccessibilitySpan](#accessibilityspan20)[]                                                             | 否  | 是  | 组件的跨度数组。|
601| accessibilityVisible<sup>20+</sup>  | boolean                                                            | 否  | 是  | 组件是否无障碍可见。true表示可见,false表示不可见。|
602| mainWindowId<sup>20+</sup>             | number                                                             | 否  | 是 | 组件的主窗口ID。|
603| clip<sup>20+</sup>  | boolean                                                            | 否  | 是  | 组件是否需要裁剪。true表示需要裁剪,false表示不需要裁剪。|
604| parentId<sup>20+</sup>             | number                                                             | 否  | 是  | 组件的父元素ID。|
605| childrenIds<sup>20+</sup>             | Array\<number>                                                             | 否  | 是  | 组件的子元素ID列表。|
606
607**示例:**
608```ts
609import { AccessibilityElement } from '@kit.AccessibilityKit';
610import { BusinessError } from '@kit.BasicServicesKit';
611
612let windowId: number = 10;
613
614axContext.getRootInActiveWindow(windowId)..then((element: AccessibilityElement) => {
615  console.info("AccessibilityElement.checkable: " + element.checkable)
616  console.info("AccessibilityElement.checked: " + element.checked)
617  console.info("AccessibilityElement.clickable: " + element.clickable)
618  console.info("AccessibilityElement.componentId: " + element.componentId)
619  console.info("AccessibilityElement.componentType: " + element.componentType)
620  console.info("AccessibilityElement.contents: " + element.contents)
621  console.info("AccessibilityElement.currentIndex: " + element.currentIndex)
622  console.info("AccessibilityElement.description: " + element.description)
623  // ....
624}).catch((err) => {
625  console.log(`getRootInActiveWindow failed, code: ${err.code}, message: ${err.message}`);
626})
627```
628
629### enableScreenCurtain<sup>12+</sup>
630
631enableScreenCurtain(isEnable: boolean): void;
632
633提供开启/关闭幕帘屏的能力。
634
635**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
636
637**参数:**
638
639| 参数名         | 类型                                     | 必填   | 说明             |
640| ----------- | ---------------------------------------- | ---- | -------------- |
641| isEnable | boolean | 是    | true表示打开幕帘屏功能,false表示关闭幕帘屏功能。|
642
643**错误码:**
644
645以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[无障碍子系统错误码](errorcode-accessibility.md)。
646
647| 错误码ID   | 错误信息                                     |
648| ------- | ---------------------------------------- |
649| 202 | Permission verification failed. A non-system application calls a system API. |
650| 401  | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
651| 9300003 | No accessibility permission to perform the operation. |
652
653**示例:**
654
655```ts
656import {
657  AccessibilityElement,
658  AccessibilityEvent,
659  AccessibilityExtensionContext
660} from '@kit.AccessibilityKit';
661import { BusinessError } from '@kit.BasicServicesKit';
662
663export default class AccessibilityManager {
664  private static instance: AccessibilityManager;
665  context?: AccessibilityExtensionContext;
666
667  static getInstance(): AccessibilityManager {
668    if (!AccessibilityManager.instance) {
669      AccessibilityManager.instance = new AccessibilityManager();
670    }
671    return AccessibilityManager.instance;
672  }
673
674  onStart(context: AccessibilityExtensionContext) {
675    this.context = context;
676  }
677
678  onStop() {
679    this.context = undefined;
680  }
681
682  onEvent(accessibilityEvent: AccessibilityEvent): void {
683    if (!this.context) {
684      console.error('context is not available!');
685      return;
686    }
687    this.context.getWindowRootElement().then((rootElement: AccessibilityElement) => {
688      console.log(`Succeeded in get root element of the window, ${JSON.stringify(rootElement)}`);
689      rootElement.enableScreenCurtain(true);
690      console.log(`Succeeded in enableScreenCurtain`);
691    }).catch((err: BusinessError) => {
692      console.error(`failed to enableScreenCurtain, Code is ${err.code}, message is ${err.message}`);
693    });
694  }
695}
696```
697
698### findElement('elementId')<sup>12+</sup>
699
700findElement(type: 'elementId', condition: number): Promise\<AccessibilityElement>;
701
702根据elementId查询当前活动窗口下的节点元素,使用Promise异步回调。
703
704**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
705
706**参数:**
707
708| 参数名       | 类型                                | 必填   | 说明                                       |
709| --------- | --------------------------------- | ---- | ---------------------------------------- |
710| type      | string                            | 是    | 固定为'elementId', 表示根据elementId查询当前活动窗口下的节点元素。 |
711| condition | number | 是    | 表示要查询的节点元素的elementId。                           |
712
713**返回值:**
714
715| 类型                                  | 说明                               |
716| ----------------------------------- | -------------------------------- |
717| Promise&lt;[AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9)&gt; | Promise对象,返回满足指定查询条件的节点元素。 |
718
719**错误码:**
720
721以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
722
723| 错误码ID   | 错误信息                          |
724| ------- | ----------------------------- |
725| 401  | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
726
727**示例:**
728
729```ts
730import { BusinessError } from '@kit.BasicServicesKit';
731
732//elementId为10
733let condition = 10;
734
735// rootElement是AccessibilityElement的实例
736rootElement.findElement('elementId', condition).then((data: AccessibilityElement) => {
737  console.log(`Succeeded in find element, ${JSON.stringify(data)}`);
738}).catch((err: BusinessError) => {
739  console.error(`failed to find element, Code is ${err.code}, message is ${err.message}`);
740});
741```
742
743### findElement('textType')<sup>12+</sup>
744
745findElement(type: 'textType', condition: string): Promise\<Array\<AccessibilityElement>>;
746
747根据节点配置的accessibilityTextHint无障碍文本类型查询所有节点元素,使用Promise异步回调。
748
749**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
750
751**参数:**
752
753| 参数名       | 类型     | 必填   | 说明                            |
754| --------- | ------ | ---- | ----------------------------- |
755| type      | string | 是    | 固定为'textType', 表示根据文本类型查找节点元素。 |
756| condition | string | 是    | 表示查找的条件。                      |
757
758**返回值:**
759
760| 类型                                       | 说明                            |
761| ---------------------------------------- | ----------------------------- |
762| Promise&lt;Array&lt;[AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9)&gt;&gt; | Promise对象,返回满足指定查询关键字的所有节点元素。 |
763
764**错误码:**
765
766以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
767
768| 错误码ID   | 错误信息                          |
769| ------- | ----------------------------- |
770| 401  | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
771
772**示例:**
773
774```ts
775import { BusinessError } from '@kit.BasicServicesKit';
776
777// condition的内容需要与目标组件accessibilityTextHint属性的type字段值保持一致
778let condition = 'location';
779
780// rootElement是AccessibilityElement的实例
781rootElement.findElement('textType', condition).then((data: AccessibilityElement[]) => {
782  console.log(`Succeeded in find element, ${JSON.stringify(data)}`);
783}).catch((err: BusinessError) => {
784  console.error(`failed to find element, Code is ${err.code}, message is ${err.message}`);
785});
786```
787
788### getCursorPosition<sup>12+</sup>
789
790getCursorPosition(): Promise\<number>;
791
792获取文本组件中光标位置,使用Promise异步回调。
793
794**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
795
796**返回值:**
797
798| 类型                  | 说明               |
799| ------------------- | ---------------- |
800| Promise&lt;number&gt; | Promise对象,返回当前光标所处位置。 |
801
802**示例:**
803
804```ts
805import { BusinessError } from '@kit.BasicServicesKit';
806
807// rootElement是AccessibilityElement的实例
808rootElement.getCursorPosition().then((data: number) => {
809  console.info(`Succeeded in getCursorPosition, ${data}`);
810}).catch((err: BusinessError) => {
811  console.error(`failed to getCursorPosition, Code is ${err.code}, message is ${err.message}`);
812});
813```
814
815### getCursorPosition<sup>12+</sup>
816
817getCursorPosition(callback: AsyncCallback\<number>): void;
818
819获取文本组件中光标位置,使用callback异步回调。
820
821**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
822
823**参数:**
824
825| 参数名         | 类型                                     | 必填   | 说明             |
826| ----------- | ---------------------------------------- | ---- | -------------- |
827| callback | AsyncCallback&lt;number&gt; | 是    | 回调函数,表示文本组件中光标位置。|
828
829**示例:**
830
831```ts
832import { BusinessError } from '@kit.BasicServicesKit';
833
834// rootElement是AccessibilityElement的实例
835rootElement.getCursorPosition((err: BusinessError, data: number) => {
836  if (err && err.code) {
837    console.error(`failed to getCursorPosition, Code is ${err.code}, message is ${err.message}`);
838    return;
839  }
840  console.info(`Succeeded in getCursorPosition, ${data}`);
841});
842```
843
844
845### executeAction<sup>20+</sup>
846
847executeAction(action: AccessibilityAction, parameters?: Parameter): Promise\<void>;
848
849根据action指定的操作类型和parameters传入的参数,执行特定操作。使用Promise异步回调。
850
851**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
852
853**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
854
855**参数:**
856
857| 参数名         | 类型                                     | 必填   | 说明                                                       |
858| ----------- | ---------------------------------------- | ---- |----------------------------------------------------------|
859| action    | [AccessibilityAction](./js-apis-accessibility-sys.md#accessibilityaction)| 是    | 无障碍节点可执行的操作。
860| parameters | [Parameter](#parameter20) | 否    | 执行操作时设置的参数值,默认为空。                            |
861
862**返回值:**
863
864| 类型                  | 说明               |
865| ------------------- | ---------------- |
866| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
867
868**错误码:**
869
870以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[无障碍子系统错误码](errorcode-accessibility.md)。
871
872| 错误码ID   | 错误信息                                     |
873| ------- | ---------------------------------------- |
874| 201     | Permission verification failed.The application does not have the permission required to call the API. |
875| 202     | Permission verification failed. A non-system application calls a system API.     |
876| 9300005 | This action is not supported.            |
877
878**示例:**
879```ts
880//无参数Action示例:
881import { BusinessError } from '@kit.BasicServicesKit';
882import { AccessibilityAction, Parameter } from '@kit.AccessibilityKit';
883
884// rootElement是AccessibilityElement的实例
885// Action描述中无明确要求的,均为无参数Action
886try {
887  rootElement.executeAction(AccessibilityAction.CLICK);
888  console.info(`Succeeded in perform action CLICK`);
889}catch (error){
890  console.error(`failed to perform action CLICK, Code is ${error?.code}, message is ${error?.message}`);
891}
892```
893
894
895
896```ts
897//有参数Action示例:
898import { BusinessError } from '@kit.BasicServicesKit';
899import { AccessibilityAction, Parameter } from '@kit.AccessibilityKit';
900
901try {
902  // selectTextBegin: 表示选择起始位置
903  // selectTextEnd: 表示选择结束位置
904  // selectTextInForWard: true表示为前光标,false表示为后光标
905  let p : Parameter = { selectTextBegin: '0', selectTextEnd: '8', selectTextInForWard: true }
906  // rootElement是AccessibilityElement的实例
907  // setSelection示例代码
908  rootElement.executeAction(AccessibilityAction.SET_SELECTION, p);
909  console.info(`Succeeded in perform action SET_SELECTION`);
910}catch (error){
911  console.error(`failed to perform action SET_SELECTION, Code is ${error?.code}, message is ${error?.message}`);
912}
913```
914
915```ts
916//有参数Action示例:
917import { BusinessError } from '@kit.BasicServicesKit';
918import { AccessibilityAction, Parameter } from '@kit.AccessibilityKit';
919
920try {
921  // offset: 表示光标的设置位置
922  let p : Parameter = { offset: '1' }
923  // rootElement是AccessibilityElement的实例
924  // setCursorPosition示例代码
925  rootElement.executeAction(AccessibilityAction.SET_CURSOR_POSITION, p);
926  console.info(`Succeeded in perform action SET_CURSOR_POSITION`);
927}catch (error){
928  console.error(`failed to perform action SET_CURSOR_POSITION, Code is ${error?.code}, message is ${error?.message}`);
929}
930```
931
932### getParent<sup>20+</sup>
933
934getParent(): Promise\<AccessibilityElement>;
935
936获取无障碍节点元素的父元素。
937
938**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
939
940**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
941
942**返回值:**
943
944| 类型                                      | 描述                   |
945| ---------------------------------------- | --------------------- |
946| Promise\<[AccessibilityElement](#accessibilityelement12)> | 父元素。|
947
948**错误码:**
949
950以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
951
952| 错误码ID  | 错误信息                                    |
953| ------- | ---------------------------------------- |
954| 201 | Permission verification failed.The application does not have the permission required to call the API. |
955| 202 | Permission verification failed. A non-system application calls a system API. |
956
957**示例:**
958
959```ts
960import { AccessibilityElement } from '@kit.AccessibilityKit';
961import { BusinessError } from '@kit.BasicServicesKit';
962
963axContext.getAccessibilityFocusedElement().then((element: AccessibilityElement) => {
964  console.log(`element parent id: ${element.parentId}`);
965  element.getParent().then((parent: AccessibilityElement) => {
966    console.log(`parent element's parent id: ${parent.parentId}`);
967  }).catch((err) => {
968    console.log(`getParent failed, code: ${err.code}, message: ${err.message}`);
969  })
970}).catch((err) => {
971  console.log(`getAccessibilityFocusedElement failed, code: ${err.code}, message: ${err.message}`);
972})
973```
974
975### getChildren<sup>20+</sup>
976
977getChildren(): Promise\<Array\<AccessibilityElement>>;
978
979获取元素的子元素列表。
980
981**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
982
983**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
984
985**返回值:**
986
987| 类型                                      | 描述                   |
988| ---------------------------------------- | --------------------- |
989| Promise\<Array\<[AccessibilityElement](#accessibilityelement12)>> | 子元素数组。|
990
991**错误码:**
992
993以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
994
995| 错误码ID  | 错误信息                                    |
996| ------- | ---------------------------------------- |
997| 201 | Permission verification failed.The application does not have the permission required to call the API. |
998| 202 | Permission verification failed. A non-system application calls a system API. |
999
1000**示例:**
1001
1002```ts
1003import { AccessibilityElement } from '@kit.AccessibilityKit';
1004import { BusinessError } from '@kit.BasicServicesKit';
1005
1006axContext.getAccessibilityFocusedElement().then((element: AccessibilityElement) => {
1007  console.log(`element childrenIds: ${element.childrenIds}`);
1008  element.getChildren().then((children: AccessibilityElement[]) => {
1009    console.log(`children element's size: ${children.length}`);
1010  }).catch((err) => {
1011    console.log(`getChildren failed, code: ${err.code}, message: ${err.message}`);
1012  })
1013}).catch((err) => {
1014  console.log(`getAccessibilityFocusedElement failed, code: ${err.code}, message: ${err.message}`);
1015})
1016```
1017
1018### getRoot<sup>20+</sup>
1019
1020getRoot(): Promise\<AccessibilityElement>;
1021
1022获取活动窗口中的根元素。
1023
1024**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
1025
1026**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
1027
1028**返回值:**
1029
1030| 类型                                      | 描述                   |
1031| ---------------------------------------- | --------------------- |
1032| Promise\<[AccessibilityElement](#accessibilityelement12)> | 根元素。|
1033
1034**错误码:**
1035
1036以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1037
1038| 错误码ID  | 错误信息                                    |
1039| ------- | ---------------------------------------- |
1040| 201 | Permission verification failed.The application does not have the permission required to call the API. |
1041| 202 | Permission verification failed. A non-system application calls a system API. |
1042
1043**示例:**
1044
1045```ts
1046import { AccessibilityElement } from '@kit.AccessibilityKit';
1047import { BusinessError } from '@kit.BasicServicesKit';
1048
1049let windows: AccessibilityWindow[] = axContext.getAccessibilityWindowsSync()
1050for (let window of windows) {
1051  console.log(`window id: ${window.windowId}`);
1052  window.getRoot().then((root: AccessibilityElement) => {
1053    console.log(`root element's componentId: ${root.componentId}`);
1054  }).catch((err) => {
1055    console.log(`getRoot failed, code: ${err.code}, message: ${err.message}`);
1056  })
1057}
1058```
1059
1060### findElementByContent<sup>20+</sup>
1061
1062findElementByContent(condition: string): Promise\<Array\<AccessibilityElement>>;
1063
1064根据内容查找元素。
1065
1066**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
1067
1068**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
1069
1070**参数:**
1071
1072| 名称 | 类型 | 必填 | 描述 |
1073| -------- | ---- | -------- | ------------------------------------------------------------ |
1074| condition | string | 是 | 内容。 |
1075
1076**返回值:**
1077
1078| 类型                                      | 描述                   |
1079| ---------------------------------------- | --------------------- |
1080| Promise\<Array\<[AccessibilityElement](#accessibilityelement12)>> | 元素数组。|
1081
1082**错误码:**
1083
1084以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[无障碍子系统错误码](errorcode-accessibility.md)。
1085
1086| 错误码ID  | 错误信息                                    |
1087| ------- | ---------------------------------------- |
1088| 201 | Permission verification failed.The application does not have the permission required to call the API. |
1089| 202 | Permission verification failed. A non-system application calls a system API. |
1090| 9300006 | The target application failed to connect to accessibility service. |
1091
1092**示例:**
1093
1094```ts
1095// Page.ets
1096  build() {
1097    Text('Connect')
1098        .id('connect')
1099        .fontSize($r('app.float.page_text_font_size'))
1100        .fontWeight(FontWeight.Bold)
1101// ...
1102
1103// AccessibilityExtAbility.ets
1104import { AccessibilityElement } from '@kit.AccessibilityKit';
1105import { BusinessError } from '@kit.BasicServicesKit';
1106
1107let windowId: number = 10;
1108
1109axContext.getRootInActiveWindow(windowId)..then((root: AccessibilityElement) => {
1110    root.findElementByContent('connect').then((elements: AccessibilityElement[]) => {
1111        console.log("findElementByContent size=" + elements.length)
1112    }).catch((err) => {
1113        console.log(`findElementByContent failed, code: ${err.code}, message: ${err.message}`);
1114    })
1115}).catch((err) => {
1116  console.log(`getRootInActiveWindow failed, code: ${err.code}, message: ${err.message}`);
1117})
1118```
1119
1120### findElementByFocusDirection<sup>20+</sup>
1121
1122findElementByFocusDirection(condition: FocusDirection): Promise\<AccessibilityElement>;
1123
1124根据焦点方向查找元素。
1125
1126**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
1127
1128**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
1129
1130**参数:**
1131
1132| 名称 | 类型 | 必填 | 描述 |
1133| -------- | ---- | -------- | ------------------------------------------------------------ |
1134| condition | FocusDirection | 是 | 焦点方向。 |
1135
1136**返回值:**
1137
1138| 类型                                      | 描述                   |
1139| ---------------------------------------- | --------------------- |
1140| Promise\<[AccessibilityElement](#accessibilityelement12)> | AccessibilityElement.|
1141
1142**错误码:**
1143
1144以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[无障碍子系统错误码](errorcode-accessibility.md)。
1145
1146| 错误码ID  | 错误信息                                    |
1147| ------- | ---------------------------------------- |
1148| 201 | Permission verification failed.The application does not have the permission required to call the API. |
1149| 202 | Permission verification failed. A non-system application calls a system API. |
1150| 9300006 | The target application failed to connect to accessibility service. |
1151
1152**示例:**
1153
1154```ts
1155// Page.ets
1156// Click TextInput and then it is the accessibility focus element, up direction element is Text#connect
1157  build() {
1158    Text('Connect')
1159        .id('connect')
1160        .fontSize($r('app.float.page_text_font_size'))
1161        .fontWeight(FontWeight.Bold)
1162
1163    TextInput({ placeholder: 'please input...' })
1164        .id('text_input')
1165        .fontSize($r('app.float.page_text_font_size'))
1166// ...
1167
1168// AccessibilityExtAbility.ets
1169import { AccessibilityElement } from '@kit.AccessibilityKit';
1170import { BusinessError } from '@kit.BasicServicesKit';
1171
1172axContext.getAccessibilityFocusedElement().then((focus: AccessibilityElement) => {
1173    focus.findElementByFocusDirection('up').then((element: AccessibilityElement) => {
1174        console.log("findElementByFocusDirection UP componentId: " + element.componentId);
1175    }).catch((err) => {
1176        console.log(`findElementByFocusDirection UP failed, code: ${err.code}, message: ${err.message}`);
1177    })
1178}).catch((err) => {
1179  console.log(`getAccessibilityFocusedElement failed, code: ${err.code}, message: ${err.message}`);
1180})
1181```
1182
1183### findElementsByAccessibilityHintText<sup>20+</sup>
1184
1185findElementsByAccessibilityHintText(condition: string): Promise\<Array\<AccessibilityElement>>;
1186
1187根据性提示文本查找元素。
1188
1189**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
1190
1191**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
1192
1193**参数:**
1194
1195| 名称 | 类型 | 必填 | 描述 |
1196| -------- | ---- | -------- | ------------------------------------------------------------ |
1197| condition | string | 是 | 提示文本。 |
1198
1199**返回值:**
1200
1201| 类型                                      | 描述                   |
1202| ---------------------------------------- | --------------------- |
1203| Promise\<Array\<[AccessibilityElement](#accessibilityelement12)>> | 元素数组。|
1204
1205**错误码:**
1206
1207以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[无障碍子系统错误码](errorcode-accessibility.md)。
1208
1209| 错误码ID  | 错误信息                                    |
1210| ------- | ---------------------------------------- |
1211| 201 | Permission verification failed.The application does not have the permission required to call the API. |
1212| 202 | Permission verification failed. A non-system application calls a system API. |
1213| 9300006 | The target application failed to connect to accessibility service. |
1214
1215**示例:**
1216
1217```ts
1218// Page.ets
1219  build() {
1220    Text('Connect')
1221        .id('connect')
1222        .fontSize($r('app.float.page_text_font_size'))
1223        .fontWeight(FontWeight.Bold)
1224
1225    TextInput({ placeholder: 'please input...' })
1226        .id('text_input')
1227        .fontSize($r('app.float.page_text_font_size'))
1228        .accessibilityTextHint('location')
1229// ...
1230
1231// AccessibilityExtAbility.ets
1232import { AccessibilityElement } from '@kit.AccessibilityKit';
1233import { BusinessError } from '@kit.BasicServicesKit';
1234
1235let windowId: number = 10;
1236
1237axContext.getRootInActiveWindow(windowId).then((root: AccessibilityElement) => {
1238    root.findElementsByAccessibilityHintText('location').then((elements: AccessibilityElement[]) => {
1239        console.log("findElementsByAccessibilityHintText size=" + elements.length)
1240    }).catch((err) => {
1241        console.log(`findElementsByAccessibilityHintText failed, code: ${err.code}, message: ${err.message}`);
1242    })
1243}).catch((err) => {
1244  console.log(`getRootInActiveWindow failed, code: ${err.code}, message: ${err.message}`);
1245})
1246```
1247
1248### findElementById<sup>20+</sup>
1249
1250findElementById(condition: number): Promise\<AccessibilityElement>;
1251
1252根据元素 ID 查找元素。
1253
1254**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
1255
1256**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
1257
1258**参数:**
1259
1260| 名称 | 类型 | 必填 | 描述 |
1261| -------- | ---- | -------- | ------------------------------------------------------------ |
1262| condition | number | 是 | 元素 ID。 |
1263
1264**返回值:**
1265
1266| 类型                                      | 描述                   |
1267| ---------------------------------------- | --------------------- |
1268| Promise\<[AccessibilityElement](#accessibilityelement12)> | AccessibilityElement.|
1269
1270**错误码:**
1271
1272以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[无障碍子系统错误码](errorcode-accessibility.md)。
1273
1274| 错误码ID  | 错误信息                                    |
1275| ------- | ---------------------------------------- |
1276| 201 | Permission verification failed.The application does not have the permission required to call the API.|
1277| 202 | Permission verification failed. A non-system application calls a system API. |
1278| 9300006 | The target application failed to connect to accessibility service. |
1279
1280**示例:**
1281
1282```ts
1283// Page.ets
1284// Click TextInput and then it is the accessibility focus element
1285  build() {
1286    Text('Connect')
1287        .id('connect')
1288        .fontSize($r('app.float.page_text_font_size'))
1289        .fontWeight(FontWeight.Bold)
1290
1291    TextInput({ placeholder: 'please input...' })
1292        .id('text_input')
1293        .fontSize($r('app.float.page_text_font_size'))
1294// ...
1295
1296// AccessibilityExtAbility.ets
1297import { AccessibilityElement } from '@kit.AccessibilityKit';
1298import { BusinessError } from '@kit.BasicServicesKit';
1299
1300axContext.getAccessibilityFocusedElement().then((focus: AccessibilityElement) => {
1301    focus.findElementById(0).then((element: AccessibilityElement) => {
1302        console.log("findElementById componentId: " + element.componentId);
1303    }).catch((err) => {
1304        console.log(`findElementById failed, code: ${err.code}, message: ${err.message}`);
1305    })
1306}).catch((err) => {
1307  console.log(`getAccessibilityFocusedElement failed, code: ${err.code}, message: ${err.message}`);
1308})
1309```
1310