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<string> | 是 | 关注的目标包名。 | 90 91**返回值:** 92 93| 类型 | 说明 | 94| ---------------------- | --------------------- | 95| Promise<void> | 无返回结果的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<string> | 是 | 关注的目标包名。 | 125| callback | AsyncCallback<void> | 是 | 回调函数,如果设置关注的目标包名失败,则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<AccessibilityElement> | 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<AccessibilityElement> | 是 | 回调函数,返回当前对应的焦点元素。 | 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<AccessibilityElement> | 是 | 回调函数,返回当前对应的焦点元素。 | 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<AccessibilityElement> | 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<AccessibilityElement> | 是 | 回调函数,返回指定窗口的根节点元素。 | 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<AccessibilityElement> | 是 | 回调函数,返回指定窗口的根节点元素。 | 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<Array<AccessibilityElement>> | 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<Array<AccessibilityElement>> | 是 | 回调函数,返回指定屏幕的所有窗口。 | 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<Array<AccessibilityElement>> | 是 | 回调函数,返回指定屏幕的所有窗口。 | 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<void> | 无返回结果的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<void> | 是 | 回调函数,表示注入手势执行结果的回调。 | 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<Array<T>> | 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<Array<T>> | 是 | 回调函数,返回节点元素的所有属性名称。 | 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<ElementAttributeValues[T]> | 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<ElementAttributeValues[T]> | 是 | 回调函数,返回根据节点属性名称获取的属性值。 | 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<Array<string>> | 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<Array<string>> | 是 | 回调函数,返回节点元素支持的所有操作名称。 | 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<void> | 无返回结果的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<void> | 是 | 回调函数,表示执行指定操作的回调。| 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<void> | 是 | 回调函数,表示执行指定操作的回调。| 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<Array<AccessibilityElement>> | 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<Array<AccessibilityElement>> | 是 | 回调函数,返回满足指定查询关键字的所有节点元素。 | 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<AccessibilityElement> | 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<AccessibilityElement> | 是 | 回调函数,返回满足指定查询焦点元素类型的节点元素。 | 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<AccessibilityElement> | 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<AccessibilityElement> | 是 | 回调函数,返回满足指定查询下一焦点元素方向的节点元素。 | 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