• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# AccessibilityExtensionContext (辅助功能扩展上下文)
2
3AccessibilityExtensionContext是AccessibilityExtensionAbility上下文环境,继承自ExtensionContext。
4
5辅助功能扩展上下文模块提供辅助功能扩展的上下文环境的能力,包括允许配置辅助应用关注信息类型、查询节点信息、手势注入等。
6
7> **说明:**
8>
9> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
10> 本模块接口仅可在Stage模型下使用。
11
12## 使用说明
13
14在使用AccessibilityExtensionContext的功能前,需要通过AccessibilityExtensionAbility子类实例获取AccessibilityExtensionContex的实例。
15
16```ts
17import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility';
18let axContext;
19class MainAbility extends AccessibilityExtensionAbility {
20    onConnect(): void {
21        console.log('AxExtensionAbility onConnect');
22        axContext = this.context;
23    }
24}
25```
26
27## FocusDirection
28
29表示查询下一焦点元素的方向。
30
31**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
32
33| 名称       | 说明      |
34| -------- | ------- |
35| up       | 表示向上查询。 |
36| down     | 表示向上查询。 |
37| left     | 表示向左查询。 |
38| right    | 表示向右查询。 |
39| forward  | 表示向前查询。 |
40| backward | 表示向后查询。 |
41
42## FocusType
43
44表示查询焦点元素的类型。
45
46**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
47
48| 名称            | 说明          |
49| ------------- | ----------- |
50| accessibility | 表示无障碍的焦点类型。 |
51| normal        | 表示普通的焦点类型。  |
52
53## Rect
54
55表示矩形区域。
56
57**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
58
59| 名称     | 类型   | 可读   | 可写   | 说明        |
60| ------ | ------ | ---- | ---- | --------- |
61| left   | number | 是    | 否    | 矩形区域的左边界。 |
62| top    | number | 是    | 否    | 矩形区域的上边界。 |
63| width  | number | 是    | 否    | 矩形区域的宽度。  |
64| height | number | 是    | 否    | 矩形区域的高度。  |
65
66## WindowType
67
68表示窗口的类型。
69
70**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
71
72| 名称          | 说明        |
73| ----------- | --------- |
74| application | 表示应用窗口类型。 |
75| system      | 表示系统窗口类型。 |
76
77## AccessibilityExtensionContext.setTargetBundleName
78
79setTargetBundleName(targetNames: Array\<string>): Promise\<void>;
80
81设置关注的目标包名,使用Promise异步回调。
82
83**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
84
85**参数:**
86
87| 参数名         | 类型                | 必填   | 说明       |
88| ----------- | ------------------- | ---- | -------- |
89| targetNames | Array&lt;string&gt; | 是    | 关注的目标包名。 |
90
91**返回值:**
92
93| 类型                     | 说明                    |
94| ---------------------- | --------------------- |
95| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
96
97**示例:**
98
99```ts
100let targetNames = ['com.ohos.xyz'];
101try {
102    axContext.setTargetBundleName(targetNames).then(() => {
103        console.info('set target bundle names success');
104    }).catch((err) => {
105        console.error('failed to set target bundle names, because ' + JSON.stringify(err));
106    });
107} catch (exception) {
108    console.error('failed to set target bundle names, because ' + JSON.stringify(exception));
109};
110```
111
112## AccessibilityExtensionContext.setTargetBundleName
113
114setTargetBundleName(targetNames: Array\<string>, callback: AsyncCallback\<void>): void;
115
116设置关注的目标包名,使用callback异步回调。
117
118**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
119
120**参数:**
121
122| 参数名         | 类型                | 必填   | 说明       |
123| ----------- | ------------------- | ---- | -------- |
124| targetNames | Array&lt;string&gt; | 是    | 关注的目标包名。 |
125| callback    | AsyncCallback&lt;void&gt; | 是    | 回调函数,如果设置关注的目标包名失败,则AsyncCallback中err有数据返回。 |
126
127**示例:**
128
129```ts
130let targetNames = ['com.ohos.xyz'];
131try {
132    axContext.setTargetBundleName(targetNames, (err, data) => {
133        if (err) {
134            console.error('failed to set target bundle names, because ' + JSON.stringify(err));
135            return;
136        }
137        console.info('set target bundle names success');
138    });
139} catch (exception) {
140    console.error('failed to set target bundle names, because ' + JSON.stringify(exception));
141};
142```
143
144## AccessibilityExtensionContext.getFocusElement
145
146getFocusElement(isAccessibilityFocus?: boolean): Promise\<AccessibilityElement>;
147
148获取焦点元素, 使用Promise异步回调。
149
150**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
151
152**参数:**
153
154| 参数名                  | 类型    | 必填   | 说明                  |
155| -------------------- | ------- | ---- | ------------------- |
156| isAccessibilityFocus | boolean | 否    | 获取的是否是无障碍焦点元素,默认为否。 |
157
158**返回值:**
159
160| 类型                                  | 说明                     |
161| ----------------------------------- | ---------------------- |
162| Promise&lt;AccessibilityElement&gt; | Promise对象,返回当前对应的焦点元素。 |
163
164**错误码:**
165
166以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
167
168| 错误码ID | 错误信息 |
169| ------- | -------------------------------- |
170| 9300003 | Do not have accessibility right for this operation. |
171
172**示例:**
173
174```ts
175let focusElement;
176try {
177    axContext.getFocusElement().then((data) => {
178        focusElement = data;
179        console.log('get focus element success');
180    }).catch((err) => {
181        console.error('failed to get focus element, because ' + JSON.stringify(err));
182    });
183} catch (exception) {
184    console.error('failed to get focus element, because ' + JSON.stringify(exception));
185}
186```
187
188## AccessibilityExtensionContext.getFocusElement
189
190getFocusElement(callback: AsyncCallback\<AccessibilityElement>): void;
191
192获取焦点元素, 使用callback异步回调。
193
194**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
195
196**参数:**
197
198| 参数名 | 类型 | 必填 | 说明 |
199| -------- | -------- | -------- | -------- |
200| callback    | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回当前对应的焦点元素。 |
201
202**错误码:**
203
204以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
205
206| 错误码ID | 错误信息 |
207| ------- | -------------------------------- |
208| 9300003 | Do not have accessibility right for this operation. |
209
210**示例:**
211
212```ts
213let focusElement;
214try {
215    axContext.getFocusElement((err, data) => {
216        if (err) {
217            console.error('failed to get focus element, because ' + JSON.stringify(err));
218            return;
219        }
220        focusElement = data;
221        console.info('get focus element success');
222    });
223} catch (exception) {
224    console.error('failed to get focus element, because ' + JSON.stringify(exception));
225}
226```
227
228## AccessibilityExtensionContext.getFocusElement
229
230getFocusElement(isAccessibilityFocus: boolean, callback: AsyncCallback\<AccessibilityElement>): void;
231
232获取焦点元素, 使用callback异步回调。
233
234**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
235
236**参数:**
237
238| 参数名                  | 类型    | 必填   | 说明                  |
239| -------------------- | ------- | ---- | ------------------- |
240| isAccessibilityFocus | boolean | 是    | 获取的是否是无障碍焦点元素。 |
241| callback    | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回当前对应的焦点元素。 |
242
243**示例:**
244
245```ts
246let focusElement;
247let isAccessibilityFocus = true;
248try {
249    axContext.getFocusElement(isAccessibilityFocus, (err, data) => {
250    if (err) {
251        console.error('failed to get focus element, because ' + JSON.stringify(err));
252        return;
253    }
254    focusElement = data;
255    console.info('get focus element success');
256});
257} catch (exception) {
258    console.error('failed to get focus element, because ' + JSON.stringify(exception));
259}
260```
261## AccessibilityExtensionContext.getWindowRootElement
262
263getWindowRootElement(windowId?: number): Promise\<AccessibilityElement>;
264
265获取指定窗口的根节点元素, 使用Promise异步回调。
266
267**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
268
269**参数:**
270
271| 参数名                  | 类型    | 必填   | 说明                  |
272| -------------------- | ------- | ---- | ------------------- |
273| windowId | number | 否    | 指定窗口的编号,未指定则从当前活跃窗口获取。 |
274
275**返回值:**
276
277| 类型                                  | 说明                     |
278| ----------------------------------- | ---------------------- |
279| Promise&lt;AccessibilityElement&gt; | Promise对象,返回指定屏幕的所有窗口。 |
280
281**错误码:**
282
283以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
284
285| 错误码ID | 错误信息 |
286| ------- | -------------------------------- |
287| 9300003 | Do not have accessibility right for this operation. |
288
289**示例:**
290
291```ts
292let rootElement;
293try {
294    axContext.getWindowRootElement().then((data) => {
295        rootElement = data;
296        console.log('get root element of the window success');
297    }).catch((err) => {
298        console.error('failed to get root element of the window, because ' + JSON.stringify(err));
299    });
300} catch (exception) {
301    console.error('failed to get root element of the window, ' + JSON.stringify(exception));
302}
303```
304
305## AccessibilityExtensionContext.getWindowRootElement
306
307getWindowRootElement(callback: AsyncCallback\<AccessibilityElement>): void;
308
309获取指定窗口的根节点元素, 使用callback异步回调。
310
311**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
312
313**参数:**
314
315| 参数名 | 类型 | 必填 | 说明 |
316| -------- | -------- | -------- | -------- |
317| callback    | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回指定窗口的根节点元素。 |
318
319**错误码:**
320
321以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
322
323| 错误码ID | 错误信息 |
324| ------- | -------------------------------- |
325| 9300003 | Do not have accessibility right for this operation. |
326
327**示例:**
328
329```ts
330let rootElement;
331try {
332    axContext.getWindowRootElement((err, data) => {
333    if (err) {
334        console.error('failed to get root element of the window, because ' + JSON.stringify(err));
335        return;
336    }
337    rootElement = data;
338    console.info('get root element of the window success');
339});
340} catch (exception) {
341    console.error('failed to get root element of the window, because ' + JSON.stringify(exception));
342}
343```
344
345## AccessibilityExtensionContext.getWindowRootElement
346
347getWindowRootElement(windowId: number, callback: AsyncCallback\<AccessibilityElement>): void;
348
349获取指定屏幕中的所有窗口, 使用callback异步回调。
350
351**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
352
353**参数:**
354
355| 参数名                  | 类型    | 必填   | 说明                  |
356| -------------------- | ------- | ---- | ------------------- |
357| windowId | number | 是    | 指定窗口的编号,未指定则从当前活跃窗口获取。 |
358| callback    | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回指定窗口的根节点元素。 |
359
360**错误码:**
361
362以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
363
364| 错误码ID | 错误信息 |
365| ------- | -------------------------------- |
366| 9300003 | Do not have accessibility right for this operation. |
367
368**示例:**
369
370```ts
371let rootElement;
372let windowId = 10;
373try {
374    axContext.getWindowRootElement(windowId, (err, data) => {
375    if (err) {
376        console.error('failed to get root element of the window, because ' + JSON.stringify(err));
377        return;
378    }
379    rootElement = data;
380    console.info('get root element of the window success');
381});
382} catch (exception) {
383    console.error('failed to get root element of the window, because ' + JSON.stringify(exception));
384}
385```
386
387## AccessibilityExtensionContext.getWindows
388
389getWindows(displayId?: number): Promise\<Array\<AccessibilityElement>>;
390
391获取指定屏幕中的所有窗口, 使用Promise异步回调。
392
393**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
394
395**参数:**
396
397| 参数名                  | 类型    | 必填   | 说明                  |
398| -------------------- | ------- | ---- | ------------------- |
399| displayId | number | 否    | 指定的屏幕编号,未指定则从默认主屏幕获取。 |
400
401**返回值:**
402
403| 类型                                  | 说明                     |
404| ----------------------------------- | ---------------------- |
405| Promise&lt;Array&lt;AccessibilityElement&gt;&gt; | Promise对象,返回指定屏幕的所有窗口。 |
406
407**错误码:**
408
409以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
410
411| 错误码ID | 错误信息 |
412| ------- | -------------------------------- |
413| 9300003 | Do not have accessibility right for this operation. |
414
415**示例:**
416
417```ts
418let windows;
419try {
420    axContext.getWindows().then((data) => {
421        windows = data;
422        console.log('get windows success');
423    }).catch((err) => {
424        console.error('failed to get windows, because ' + JSON.stringify(err));
425    });
426} catch (exception) {
427    console.error('failed to get windows, because ' + JSON.stringify(exception));
428}
429```
430
431## AccessibilityExtensionContext.getWindows
432
433getWindows(callback: AsyncCallback\<Array\<AccessibilityElement>>): void;
434
435获取指定屏幕中的所有窗口, 使用callback异步回调。
436
437**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
438
439**参数:**
440
441| 参数名 | 类型 | 必填 | 说明 |
442| -------- | -------- | -------- | -------- |
443| callback    | AsyncCallback&lt;Array&lt;AccessibilityElement&gt;&gt; | 是    | 回调函数,返回指定屏幕的所有窗口。 |
444
445**错误码:**
446
447以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
448
449| 错误码ID | 错误信息 |
450| ------- | -------------------------------- |
451| 9300003 | Do not have accessibility right for this operation. |
452
453**示例:**
454
455```ts
456let windows;
457try {
458    axContext.getWindows((err, data) => {
459        if (err) {
460            console.error('failed to get windows, because ' + JSON.stringify(err));
461            return;
462        }
463        windows = data;
464        console.info('get windows success');
465    });
466} catch (exception) {
467    console.error('failed to get windows, because ' + JSON.stringify(exception));
468}
469```
470
471## AccessibilityExtensionContext.getWindows
472
473getWindows(displayId: number, callback: AsyncCallback\<Array\<AccessibilityElement>>): void;
474
475获取指定屏幕中的所有窗口, 使用callback异步回调。
476
477**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
478
479**参数:**
480
481| 参数名                  | 类型    | 必填   | 说明                  |
482| -------------------- | ------- | ---- | ------------------- |
483| displayId | number | 是    | 指定的屏幕编号,未指定则从默认主屏幕获取。 |
484| callback    | AsyncCallback&lt;Array&lt;AccessibilityElement&gt;&gt; | 是    | 回调函数,返回指定屏幕的所有窗口。 |
485
486**错误码:**
487
488以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
489
490| 错误码ID | 错误信息 |
491| ------- | -------------------------------- |
492| 9300003 | Do not have accessibility right for this operation. |
493
494**示例:**
495
496```ts
497let windows;
498let displayId = 10;
499try {
500    axContext.getWindows(displayId, (err, data) => {
501        if (err) {
502            console.error('failed to get windows, because ' + JSON.stringify(err));
503            return;
504        }
505        windows = data;
506        console.info('get windows success');
507    });
508} catch (exception) {
509    console.error('failed to get windows, because ' + JSON.stringify(exception));
510}
511```
512
513## AccessibilityExtensionContext.injectGesture
514
515injectGesture(gesturePath: GesturePath): Promise\<void>;
516
517注入手势,使用Promise异步回调。
518
519**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
520
521**参数:**
522
523| 参数名         | 类型                                     | 必填   | 说明             |
524| ----------- | ---------------------------------------- | ---- | -------------- |
525| gesturePath | [GesturePath](js-apis-accessibility-GesturePath.md#gesturepath) | 是    | 表示手势的路径信息。     |
526
527**返回值:**
528
529| 类型                                  | 说明                     |
530| ----------------------------------- | ---------------------- |
531| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
532
533**错误码:**
534
535以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
536
537| 错误码ID | 错误信息 |
538| ------- | -------------------------------- |
539| 9300003 | Do not have accessibility right for this operation. |
540
541**示例:**
542
543```ts
544import GesturePath from '@ohos.accessibility.GesturePath';
545import GesturePoint from '@ohos.accessibility.GesturePoint';
546let gesturePath = new GesturePath.GesturePath(100);
547try {
548    for (let i = 0; i < 10; i++) {
549        let gesturePoint = new GesturePoint.GesturePoint(100, i * 200);
550        gesturePath.points.push(gesturePoint);
551    }
552    axContext.injectGesture(gesturePath).then(() => {
553        console.info('inject gesture success');
554    }).catch((err) => {
555        console.error('failed to inject gesture, because ' + JSON.stringify(err));
556    });
557} catch (exception) {
558    console.error('failed to inject gesture, because ' + JSON.stringify(exception));
559}
560```
561## AccessibilityExtensionContext.injectGesture
562
563injectGesture(gesturePath: GesturePath, callback: AsyncCallback\<void>): void
564
565注入手势,使用callback异步回调。
566
567**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
568
569**参数:**
570
571| 参数名         | 类型                                     | 必填   | 说明             |
572| ----------- | ---------------------------------------- | ---- | -------------- |
573| gesturePath | [GesturePath](js-apis-accessibility-GesturePath.md#gesturepath) | 是    | 表示手势的路径信息。     |
574| callback    | AsyncCallback&lt;void&gt;                  | 是    | 回调函数,表示注入手势执行结果的回调。 |
575
576**错误码:**
577
578以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
579
580| 错误码ID | 错误信息 |
581| ------- | -------------------------------- |
582| 9300003 | Do not have accessibility right for this operation. |
583
584**示例:**
585
586```ts
587import GesturePath from '@ohos.accessibility.GesturePath';
588import GesturePoint from '@ohos.accessibility.GesturePoint';
589let gesturePath = new GesturePath.GesturePath(100);
590try {
591    for (let i = 0; i < 10; i++) {
592        let gesturePoint = new GesturePoint.GesturePoint(100, i * 200);
593        gesturePath.points.push(gesturePoint);
594    }
595    axContext.injectGesture(gesturePath, (err, data) => {
596        if (err) {
597            console.error('failed to inject gesture, because ' + JSON.stringify(err));
598            return;
599        }
600        console.info('inject gesture success');
601    });
602} catch (exception) {
603    console.error('failed to inject gesture, because ' + JSON.stringify(exception));
604}
605```
606## AccessibilityElement<sup>9+</sup>
607
608无障碍节点元素, 在调用AccessibilityElement的方法前,需要先通过[AccessibilityExtensionContext.getFocusElement()](#accessibilityextensioncontextgetfocuselement)或者[AccessibilityExtensionContext.getWindowRootElement()](#accessibilityextensioncontextgetwindowrootelement)获取AccessibilityElement实例。
609
610**系统能力**:以下各项对应的系统能力均为SystemCapability.BarrierFree.Accessibility.Core
611
612## attributeNames
613
614attributeNames\<T extends keyof ElementAttributeValues>(): Promise\<Array\<T>>;
615
616获取节点元素的所有属性名称,使用Promise异步回调。
617
618**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
619
620**返回值:**
621
622| 类型                                       | 说明                       |
623| ---------------------------------------- | ------------------------ |
624| Promise&lt;Array&lt;T&gt;&gt; | Promise对象,返回节点元素的所有属性名称。 |
625
626**示例:**
627
628```ts
629let rootElement;
630let attributeNames;
631rootElement.attributeNames().then((data) => {
632    console.log('get attribute names success');
633    attributeNames = data;
634}).catch((err) => {
635    console.log('failed to get attribute names, because '  + JSON.stringify(err));
636});
637```
638## attributeNames
639
640attributeNames\<T extends keyof ElementAttributeValues>(callback: AsyncCallback\<Array\<T>>): void;
641
642获取节点元素的所有属性名称,使用callback异步回调。
643
644**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
645
646**参数:**
647
648| 参数名         | 类型                                     | 必填   | 说明             |
649| ----------- | ---------------------------------------- | ---- | -------------- |
650| callback    | AsyncCallback&lt;Array&lt;T&gt;&gt;                  | 是    | 回调函数,返回节点元素的所有属性名称。 |
651
652**示例:**
653
654```ts
655let rootElement;
656let attributeNames;
657rootElement.attributeNames((err, data) => {
658    if (err) {
659        console.error('failed to get attribute names, because ' + JSON.stringify(err));
660        return;
661    }
662    attributeNames = data;
663    console.info('get attribute names success');
664});
665```
666## AccessibilityElement.attributeValue
667
668attributeValue\<T extends keyof ElementAttributeValues>(attributeName: T): Promise\<ElementAttributeValues[T]>;
669
670根据属性名称获取属性值,使用Promise异步回调。
671
672**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
673
674**参数:**
675
676| 参数名         | 类型                                     | 必填   | 说明             |
677| ----------- | ---------------------------------------- | ---- | -------------- |
678| attributeName | T | 是    | 表示属性的名称。     |
679
680**返回值:**
681
682| 类型                                       | 说明                       |
683| ---------------------------------------- | ------------------------ |
684| Promise&lt;ElementAttributeValues[T]&gt; | Promise对象,返回根据节点属性名称获取的属性值。 |
685
686**错误码:**
687
688以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
689
690| 错误码ID | 错误信息 |
691| ------- | -------------------------------- |
692| 9300004 | This property does not exist. |
693
694**示例:**
695
696```ts
697let attributeName = 'name';
698let attributeValue;
699let rootElement;
700try {
701    rootElement.attributeValue(attributeName).then((data) => {
702        console.log('get attribute value by name success');
703        attributeValue = data;
704    }).catch((err) => {
705        console.log('failed to get attribute value, because '  + JSON.stringify(err));
706    });
707} catch (exception) {
708    console.log('failed to get attribute value, because ' + JSON.stringify(exception));
709}
710```
711## AccessibilityElement.attributeValue
712
713attributeValue\<T extends keyof ElementAttributeValues>(attributeName: T,
714    callback: AsyncCallback\<ElementAttributeValues[T]>): void;
715
716根据属性名称获取属性值,使用callback异步回调。
717
718**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
719
720**参数:**
721
722| 参数名         | 类型                                     | 必填   | 说明             |
723| ----------- | ---------------------------------------- | ---- | -------------- |
724| attributeName | T | 是    | 表示属性的名称。     |
725| callback    | AsyncCallback&lt;ElementAttributeValues[T]&gt;   | 是    | 回调函数,返回根据节点属性名称获取的属性值。 |
726
727**错误码:**
728
729以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
730
731| 错误码ID | 错误信息 |
732| ------- | -------------------------------- |
733| 9300004 | This property does not exist. |
734
735**示例:**
736
737```ts
738let rootElement;
739let attributeValue;
740let attributeName = 'name';
741try {
742    rootElement.attributeValue(attributeName, (err, data) => {
743        if (err) {
744            console.error('failed to get attribute value, because ' + JSON.stringify(err));
745            return;
746        }
747        attributeValue = data;
748        console.info('get attribute value success');
749    });
750} catch (exception) {
751    console.log('failed to get attribute value, because ' + JSON.stringify(exception));
752}
753```
754## actionNames
755
756actionNames(): Promise\<Array\<string>>;
757
758获取节点元素支持的所有操作名称,使用Promise异步回调。
759
760**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
761
762**返回值:**
763
764| 类型                                       | 说明                       |
765| ---------------------------------------- | ------------------------ |
766| Promise&lt;Array&lt;string&gt;&gt; | Promise对象,返回节点元素支持的所有操作名称。 |
767
768**示例:**
769
770```ts
771let rootElement;
772let actionNames;
773rootElement.actionNames().then((data) => {
774    console.log('get action names success');
775    actionNames = data;
776}).catch((err) => {
777    console.log('failed to get action names because '  + JSON.stringify(err));
778});
779```
780## actionNames
781
782actionNames(callback: AsyncCallback\<Array\<string>>): void;
783
784获取节点元素支持的所有操作名称,使用callback异步回调。
785
786**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
787
788**参数:**
789
790| 参数名         | 类型                                     | 必填   | 说明             |
791| ----------- | ---------------------------------------- | ---- | -------------- |
792| callback    | AsyncCallback&lt;Array&lt;string&gt;&gt;   | 是    | 回调函数,返回节点元素支持的所有操作名称。 |
793
794**示例:**
795
796```ts
797let rootElement;
798let actionNames;
799rootElement.actionNames((err, data) => {
800    if (err) {
801        console.error('failed to get action names, because ' + JSON.stringify(err));
802        return;
803    }
804    actionNames = data;
805    console.info('get action names success');
806});
807```
808## performAction
809
810performAction(actionName: string, parameters?: object): Promise\<void>;
811
812根据操作名称执行某个操作,使用Promise异步回调。
813
814**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
815
816**参数:**
817
818| 参数名         | 类型                                     | 必填   | 说明             |
819| ----------- | ---------------------------------------- | ---- | -------------- |
820| actionName | string | 是    | 表示属性的名称。     |
821| parameters | object | 否    | 表示执行操作时所需要的参数。     |
822
823**返回值:**
824
825| 类型                                       | 说明                       |
826| ---------------------------------------- | ------------------------ |
827| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
828
829**错误码:**
830
831以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
832
833| 错误码ID | 错误信息 |
834| ------- | -------------------------------- |
835| 9300005 | This action is not supported. |
836
837**示例:**
838
839```ts
840let rootElement;
841try {
842    rootElement.performAction('action').then((data) => {
843        console.info('perform action success');
844    }).catch((err) => {
845        console.log('failed to perform action, because '  + JSON.stringify(err));
846    });
847} catch (exception) {
848    console.log('failed to perform action, because ' + JSON.stringify(exception));
849}
850```
851## performAction
852
853performAction(actionName: string, callback: AsyncCallback\<void>): void;
854
855根据操作名称执行某个操作,使用callback异步回调。
856
857**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
858
859**参数:**
860
861| 参数名         | 类型                                     | 必填   | 说明             |
862| ----------- | ---------------------------------------- | ---- | -------------- |
863| actionName | string | 是    | 表示属性的名称。     |
864| callback | AsyncCallback&lt;void&gt; | 是    | 回调函数,表示执行指定操作的回调。|
865
866**错误码:**
867
868以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
869
870| 错误码ID | 错误信息 |
871| ------- | -------------------------------- |
872| 9300005 | This action is not supported. |
873
874**示例:**
875
876```ts
877let rootElement;
878try {
879    rootElement.performAction('action', (err, data) => {
880        if (err) {
881            console.error('failed to perform action, because ' + JSON.stringify(err));
882            return;
883        }
884        console.info('perform action success');
885    });
886} catch (exception) {
887    console.log('failed to perform action, because ' + JSON.stringify(exception));
888}
889```
890## performAction
891
892performAction(actionName: string, parameters: object, callback: AsyncCallback\<void>): void;
893
894根据操作名称执行某个操作,使用callback异步回调。
895
896**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
897
898**参数:**
899
900| 参数名         | 类型                                     | 必填   | 说明             |
901| ----------- | ---------------------------------------- | ---- | -------------- |
902| actionName | string | 是    | 表示属性的名称。     |
903| parameters | object | 是    | 表示执行操作时所需要的参数。     |
904| callback | AsyncCallback&lt;void&gt; | 是    | 回调函数,表示执行指定操作的回调。|
905
906**错误码:**
907
908以下错误码的详细介绍请参见[无障碍子系统错误码](../errorcodes/errorcode-accessibility.md)。
909
910| 错误码ID | 错误信息 |
911| ------- | -------------------------------- |
912| 9300005 | This action is not supported. |
913
914**示例:**
915
916```ts
917let rootElement;
918let actionName = 'action';
919let parameters = {
920    'setText': 'test text'
921};
922try {
923    rootElement.performAction(actionName, parameters, (err, data) => {
924        if (err) {
925            console.error('failed to perform action, because ' + JSON.stringify(err));
926            return;
927        }
928        console.info('perform action success');
929    });
930} catch (exception) {
931    console.log('failed to perform action, because ' + JSON.stringify(exception));
932}
933```
934## findElement('content')
935
936findElement(type: 'content', condition: string): Promise\<Array\<AccessibilityElement>>;
937
938根据节点内容查询所有节点元素,使用Promise异步回调。
939
940**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
941
942**参数:**
943
944| 参数名         | 类型                                     | 必填   | 说明             |
945| ----------- | ---------------------------------------- | ---- | -------------- |
946| type | string | 是    | 固定为'content', 表示查找的类型为节点元素内容。     |
947| condition | string | 是    | 表示查找的条件。     |
948
949**返回值:**
950
951| 类型                                       | 说明                       |
952| ---------------------------------------- | ------------------------ |
953| Promise&lt;Array&lt;AccessibilityElement&gt;&gt; | Promise对象,返回满足指定查询关键字的所有节点元素。 |
954
955**示例:**
956
957```ts
958let rootElement;
959let type = 'content';
960let condition = 'keyword';
961let elements;
962try {
963    rootElement.findElement(type, condition).then((data) => {
964        elements = data;
965        console.log('find element success');
966    }).catch((err) => {
967        console.log('failed to find element, because '  + JSON.stringify(err));
968    });
969} catch (exception) {
970    console.log('failed to find element, because ' + JSON.stringify(exception));
971}
972```
973## findElement('content')
974
975findElement(type: 'content', condition: string, callback: AsyncCallback\<Array\<AccessibilityElement>>): void;
976
977根据节点内容查询所有节点元素。
978
979**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
980
981**参数:**
982
983| 参数名         | 类型                                     | 必填   | 说明             |
984| ----------- | ---------------------------------------- | ---- | -------------- |
985| type | string | 是    | 固定为'content',表示查找的类型为节点元素内容。     |
986| condition | string | 是    | 表示查找的条件。     |
987| callback | AsyncCallback&lt;Array&lt;AccessibilityElement&gt;&gt; | 是    | 回调函数,返回满足指定查询关键字的所有节点元素。 |
988
989**示例:**
990
991```ts
992let rootElement;
993let type = 'content';
994let condition = 'keyword';
995let elements;
996try {
997    rootElement.findElement(type, condition, (err, data) => {
998        if (err) {
999            console.error('failed to find element, because ' + JSON.stringify(err));
1000            return;
1001        }
1002        elements = data;
1003        console.info('find element success');
1004    });
1005} catch (exception) {
1006    console.log('failed to find element, because ' + JSON.stringify(exception));
1007}
1008```
1009## findElement('focusType')
1010
1011findElement(type: 'focusType', condition: FocusType): Promise\<AccessibilityElement>;
1012
1013根据焦点元素类型查询节点元素,使用Promise异步回调。
1014
1015**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
1016
1017**参数:**
1018
1019| 参数名         | 类型                                     | 必填   | 说明             |
1020| ----------- | ---------------------------------------- | ---- | -------------- |
1021| type | string | 是    | 固定为'focusType', 表示查询的类型为节点的焦点元素类型。     |
1022| condition | [FocusType](#focustype) | 是    | 表示查询焦点元素的类型。     |
1023
1024**返回值:**
1025
1026| 类型                                       | 说明                       |
1027| ---------------------------------------- | ------------------------ |
1028| Promise&lt;AccessibilityElement&gt; | Promise对象,返回满足指定查询焦点元素类型的节点元素。 |
1029
1030**示例:**
1031
1032```ts
1033let rootElement;
1034let type = 'focusType';
1035let condition = 'normal';
1036let element;
1037try {
1038    rootElement.findElement(type, condition).then((data) => {
1039        element = data;
1040        console.log('find element success');
1041    }).catch((err) => {
1042        console.log('failed to find element, because '  + JSON.stringify(err));
1043    });
1044} catch (exception) {
1045    console.log('failed to find element, because ' + JSON.stringify(exception));
1046}
1047```
1048## findElement('focusType')
1049
1050findElement(type: 'focusType', condition: FocusType, callback: AsyncCallback\<AccessibilityElement>): void;
1051
1052根据焦点元素类型查询节点元素,使用callback异步回调。
1053
1054**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
1055
1056**参数:**
1057
1058| 参数名         | 类型                                     | 必填   | 说明             |
1059| ----------- | ---------------------------------------- | ---- | -------------- |
1060| type | string | 是    | 固定为'focusType', 表示查询的类型为节点的焦点元素类型。     |
1061| condition | [FocusType](#focustype) | 是    | 表示查询焦点元素的类型。     |
1062| callback | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回满足指定查询焦点元素类型的节点元素。 |
1063
1064**示例:**
1065
1066```ts
1067let rootElement;
1068let type = 'focusType';
1069let condition = 'normal';
1070let element;
1071try {
1072    rootElement.findElement(type, condition, (err, data) => {
1073        if (err) {
1074            console.error('failed to find element, because ' + JSON.stringify(err));
1075            return;
1076        }
1077        element = data;
1078        console.info('find element success');
1079    });
1080} catch (exception) {
1081    console.log('failed to find element, because ' + JSON.stringify(exception));
1082}
1083```
1084## findElement('focusDirection')
1085
1086findElement(type: 'focusDirection', condition: FocusDirection): Promise\<AccessibilityElement>;
1087
1088根据下一焦点元素方向查询节点元素,使用Promise异步回调。
1089
1090**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
1091
1092**参数:**
1093
1094| 参数名         | 类型                                     | 必填   | 说明             |
1095| ----------- | ---------------------------------------- | ---- | -------------- |
1096| type | string | 是    | 固定为'focusDirection', 表示查询的类型为节点的下一焦点元素方向。     |
1097| condition | [FocusDirection](#focusdirection) | 是    | 表示查询下一焦点元素的方向。     |
1098
1099**返回值:**
1100
1101| 类型                                       | 说明                       |
1102| ---------------------------------------- | ------------------------ |
1103| Promise&lt;AccessibilityElement&gt; | Promise对象,返回满足指定查询下一焦点元素方向的节点元素。 |
1104
1105**示例:**
1106
1107```ts
1108let rootElement;
1109let type = 'focusDirection';
1110let condition = 'up';
1111let element;
1112try {
1113    rootElement.findElement(type, condition).then((data) => {
1114        element = data;
1115        console.log('find element success');
1116    }).catch((err) => {
1117        console.log('failed to find element, because '  + JSON.stringify(err));
1118    });
1119} catch (exception) {
1120    console.log('failed to find element, because ' + JSON.stringify(exception));
1121}
1122```
1123## findElement('focusDirection')
1124
1125findElement(type: 'focusDirection', condition: FocusDirection, callback: AsyncCallback\<AccessibilityElement>): void;
1126
1127根据下一焦点元素方向查询所有节点元素,使用callback异步回调。
1128
1129**系统能力:**  SystemCapability.BarrierFree.Accessibility.Core
1130
1131**参数:**
1132
1133| 参数名         | 类型                                     | 必填   | 说明             |
1134| ----------- | ---------------------------------------- | ---- | -------------- |
1135| type | string | 是    | 固定为'focusDirection', 表示查询的类型为节点的下一焦点元素方向。     |
1136| condition | [FocusDirection](#focusdirection) | 是    | 表示下一查询焦点元素的方向。     |
1137| callback | AsyncCallback&lt;AccessibilityElement&gt; | 是    | 回调函数,返回满足指定查询下一焦点元素方向的节点元素。 |
1138
1139**示例:**
1140
1141```ts
1142let rootElement;
1143let type = 'focusDirection';
1144let condition = 'up';
1145let elements;
1146try {
1147    rootElement.findElement(type, condition, (err, data) => {
1148        if (err) {
1149            console.error('failed to find element, because ' + JSON.stringify(err));
1150            return;
1151        }
1152        elements = data;
1153        console.info('find element success');
1154    });
1155} catch (exception) {
1156    console.log('failed to find element, because ' + JSON.stringify(exception));
1157}
1158```
1159