diff --git a/zh-cn/application-dev/reference/apis-accessibility-kit/Readme-CN.md b/zh-cn/application-dev/reference/apis-accessibility-kit/Readme-CN.md
index 9820c78210c5a9336a3ab9168b34b679dd5535b1..fde457fcdb95afc265872b2825092553eefd9ab6 100644
--- a/zh-cn/application-dev/reference/apis-accessibility-kit/Readme-CN.md
+++ b/zh-cn/application-dev/reference/apis-accessibility-kit/Readme-CN.md
@@ -7,7 +7,9 @@
- [@ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力)](js-apis-application-accessibilityExtensionAbility.md)
- [AccessibilityExtensionContext (辅助功能扩展上下文)](js-apis-inner-application-accessibilityExtensionContext.md)
+ - [@ohos.accessibility (辅助功能)(系统接口)](js-apis-accessibility-sys.md)
- [@ohos.accessibility.config (系统辅助功能配置)(系统接口)](js-apis-accessibility-config-sys.md)
+ - [@ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力)(系统接口)](js-apis-application-accessibilityExtensionAbility-sys.md)
- [AccessibilityExtensionContext (辅助功能扩展上下文)(系统接口)](js-apis-inner-application-accessibilityExtensionContext-sys.md)
- 错误码
diff --git a/zh-cn/application-dev/reference/apis-accessibility-kit/js-apis-accessibility-sys.md b/zh-cn/application-dev/reference/apis-accessibility-kit/js-apis-accessibility-sys.md
new file mode 100755
index 0000000000000000000000000000000000000000..c368c184fcf9c673b4377176787f2c1f53d09d5d
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis-accessibility-kit/js-apis-accessibility-sys.md
@@ -0,0 +1,126 @@
+# @ohos.accessibility (辅助功能)(系统接口)
+
+本模块提供无障碍事件类型和无障碍节点元素可执行的操作。
+
+> **说明:**
+>
+> - 本模块首批接口从 API version 20 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
+> - 当前页面仅包含本模块的系统接口。其他公开接口参见[@ohos.accessibility](js-apis-accessibility.md)。
+
+## 导入模块
+
+```ts
+import { accessibility } from '@kit.AccessibilityKit';
+```
+
+
+## AccessibilityEventType
+
+无障碍事件类型。
+
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
+
+
+| 名称 | 值 |说明|
+| ---------------------------------------- | ---- | ---------------------- |
+| TYPE_ACCESSIBILITY_FOCUS | 0 | 表示获得无障碍焦点。 |
+| TYPE_ACCESSIBILITY_FOCUS_CLEAR | 1 | 表示清除无障碍焦点。 |
+| TYPE_CLICK | 2 | 表示点击组件。 |
+| TYPE_LONG_CLICK | 3 | 表示长按点击组件。 |
+| TYPE_SELECT | 4 | 表示选择组件。 |
+| TYPE_HOVER_ENTER | 5 | 表示悬停进入组件。 |
+| TYPE_HOVER_EXIT | 6 | 表示悬停离开组件。 |
+| TYPE_FOCUS | 7 | 表示组件获得焦点。 |
+| TYPE_TEXT_UPDATE | 8 | 表示组件文本已更改。 |
+| TYPE_TEXT_SELECTION_UPDATE | 9 | 表示组件选定文本已更改。 |
+| TYPE_SCROLL | 10 | 表示滚动视图。 |
+| TYPE_REQUEST_FOCUS_FOR_ACCESSIBILITY | 11 | 表示主动聚焦。 |
+| TYPE_ANNOUNCE_FOR_ACCESSIBILITY | 12 | 表示主动播报。 |
+| TYPE_REQUEST_FOCUS_FOR_ACCESSIBILITY_NOT_INTERRUPT | 13 | 表示主动聚焦不打断。 |
+| TYPE_ANNOUNCE_FOR_ACCESSIBILITY_NOT_INTERRUPT | 14 | 表示主动播报不打断。 |
+| TYPE_ELEMENT_INFO_CHANGE | 15 | 表示组件信息改变。 |
+| TYPE_SCROLLING | 16 | 表示滚动视图中有item被滚出屏幕。 |
+| TYPE_WINDOW_ADD | 17 | 表示添加窗口。 |
+| TYPE_WINDOW_REMOVE | 18 | 表示删除窗口。 |
+| TYPE_WINDOW_BOUNDS | 19 | 表示窗口边界改变。 |
+| TYPE_WINDOW_ACTIVE | 20 | 表示切换窗口活动状态 |
+| TYPE_WINDOW_FOCUS | 21 | 表示窗口焦点发生变化。 |
+| TYPE_WINDOW_PROPERTY | 22 | 表示窗口属性变化事件。例如:透明度、大小等。 |
+| TYPE_WINDOW_LAYER | 23 | 表示窗口层级变化。 |
+| TYPE_TOUCH_BEGIN | 24 | 表示开始手指触摸事件。 |
+| TYPE_TOUCH_END | 25 | 表示结束手指触摸事件。 |
+| TYPE_PAGE_CONTENT_UPDATE |26| 表示页面内容刷新。|
+| TYPE_PAGE_STATE_UPDATE |27| 表示页面状态刷新。|
+| TYPE_PAGE_OPEN |28| 表示页面打开。|
+| TYPE_PAGE_CLOSE |29| 表示页面关闭。|
+| TYPE_SWIPE_LEFT |30| 表示向左的手势。 |
+| TYPE_SWIPE_LEFT_THEN_RIGHT |31| 表示先向左再向右的手势。|
+| TYPE_SWIPE_LEFT_THEN_UP |32| 表示先向左再向上的手势。|
+| TYPE_SWIPE_LEFT_THEN_DOWN |33| 表示先向左再向下的手势。|
+| TYPE_SWIPE_RIGHT |34| 表示向右的手势。 |
+| TYPE_SWIPE_RIGHT_THEN_LEFT |35| 表示先向右再向左的手势。|
+| TYPE_SWIPE_RIGHT_THEN_UP |36| 表示先向右再向上的手势。|
+| TYPE_SWIPE_RIGHT_THEN_DOWN |37| 表示先向右再向下的手势。|
+| TYPE_SWIPE_UP |38| 表示向上的手势。 |
+| TYPE_SWIPE_UP_THEN_LEFT |39| 表示先向上再向左的手势。|
+| TYPE_SWIPE_UP_THEN_RIGHT |40| 表示先向上再向右的手势。|
+| TYPE_SWIPE_UP_THEN_DOWN |41| 表示先向上再向下的手势。|
+| TYPE_SWIPE_DOWN |42| 表示向下的手势。 |
+| TYPE_SWIPE_DOWN_THEN_LEFT |43| 表示先向下再向左的手势。|
+| TYPE_SWIPE_DOWN_THEN_RIGHT |44| 表示先向下再向右的手势。|
+| TYPE_SWIPE_DOWN_THEN_UP |45| 表示先向下再向上的手势。|
+| TYPE_TWO_FINGER_SINGLE_TAP |46| 表示双指单击的手势。|
+| TYPE_TWO_FINGER_DOUBLE_TAP |47| 表示双指双击的手势。|
+| TYPE_TWO_FINGER_DOUBLE_TAP_AND_HOLD | 48 | 表示双指双击且长按的手势。 |
+| TYPE_TWO_FINGER_TRIPLE_TAP |49| 表示双指三击的手势。|
+| TYPE_TWO_FINGER_TRIPLE_TAP_AND_HOLD | 50 | 表示双指三击且长按的手势。 |
+| TYPE_THREE_FINGER_SINGLE_TAP |51| 表示三指单击的手势。|
+| TYPE_THREE_FINGER_DOUBLE_TAP |52| 表示三指双击的手势。|
+| TYPE_THREE_FINGER_DOUBLE_TAP_AND_HOLD | 53 | 表示三指双击且长按的手势。 |
+| TYPE_THREE_FINGER_TRIPLE_TAP |54| 表示三指三击的手势。|
+| TYPE_THREE_FINGER_TRIPLE_TAP_AND_HOLD | 55 | 表示三指三击且长按的手势。 |
+| TYPE_FOUR_FINGER_SINGLE_TAP |56| 表示四指单击的手势。|
+| TYPE_FOUR_FINGER_DOUBLE_TAP |57| 表示四指双击的手势。|
+| TYPE_FOUR_FINGER_DOUBLE_TAP_AND_HOLD | 58 | 表示四指双击且长按的手势。 |
+| TYPE_FOUR_FINGER_TRIPLE_TAP |59| 表示四指三击的手势。|
+| TYPE_FOUR_FINGER_TRIPLE_TAP_AND_HOLD | 60 | 表示四指三击且长按的手势。 |
+| TYPE_THREE_FINGER_SWIPE_UP |61| 表示三指向上滑动的手势。|
+| TYPE_THREE_FINGER_SWIPE_DOWN |62| 表示三指向下滑动的手势。|
+| TYPE_THREE_FINGER_SWIPE_LEFT |63| 表示三指向左滑动的手势。|
+| TYPE_THREE_FINGER_SWIPE_RIGHT |64| 表示三指向右滑动的手势。|
+| TYPE_FOUR_FINGER_SWIPE_UP |65| 表示四指向上滑动的手势。|
+| TYPE_FOUR_FINGER_SWIPE_DOWN |66| 表示四指向下滑动的手势。|
+| TYPE_FOUR_FINGER_SWIPE_LEFT |67| 表示四指向左滑动的手势。|
+| TYPE_FOUR_FINGER_SWIPE_RIGHT |68| 表示四指向右滑动的手势。|
+
+## AccessibilityAction
+
+无障碍节点元素可执行的操作,无障碍节点元素是指,UI界面上可执行无障碍操作的一些组件,例如:按钮、文本输入框等组件。
+
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
+
+| 名称 | 值 | 说明 |
+| -------------------------- | ---- | ------------------------ |
+| ACCESSIBILITY_FOCUS | 0 | 表示获得无障碍焦点。 |
+| CLEAR_ACCESSIBILLITY_FOCUS | 1 | 表示清除无障碍焦点。 |
+| FOCUS | 2 | 表示组件获得焦点。 |
+| CLEAR_FOCUS | 3 | 表示清除组件焦点。 |
+| CLICK | 4 | 表示点击组件。 |
+| LONG_CLICK | 5 | 表示长按点击组件。 |
+| CUT | 6 | 表示剪切组件内容。 |
+| COPY | 7 | 表示拷贝组件内容。 |
+| PASTE | 8 | 表示粘贴内容到组件。 |
+| SELECT | 9 | 表示选择组件。 |
+| SET_TEXT | 10 | 表示设置组件的文本。 |
+| SCROLL_FORWARD | 11 | 表示向前滚动组件。 |
+| SCROLL_BACKWARD | 12 | 表示向后滚动组件。 |
+| SET_SELECTION | 13 | 表示选定组件内文本范围。 |
+| SET_CURSOR_POSITION | 14 | 表示设置组件内的光标位置。 |
+| HOME | 15 | 表示组件返回首页操作。 |
+| BACK | 16 | 表示执行返回操作。 |
+| RECENT_TASK | 17 | 显示最近任务。 |
+| NOTIFICATION_CENTER | 18 | 显示通知中心。 |
+| CONTROL_CENTER | 19 | 显示控制中心。 |
+| COMMON | 20 | 表示没有特定操作,用于主动聚焦、主动播报等场景。 |
+| SPAN_CLICK | 21 | 对局部文本进行点击操作。 |
+
diff --git a/zh-cn/application-dev/reference/apis-accessibility-kit/js-apis-application-accessibilityExtensionAbility-sys.md b/zh-cn/application-dev/reference/apis-accessibility-kit/js-apis-application-accessibilityExtensionAbility-sys.md
new file mode 100644
index 0000000000000000000000000000000000000000..baaddf7b7359f7f0be6a73a9b2593c9dabcbe3d1
--- /dev/null
+++ b/zh-cn/application-dev/reference/apis-accessibility-kit/js-apis-application-accessibilityExtensionAbility-sys.md
@@ -0,0 +1,138 @@
+# @ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力)(系统接口)
+
+AccessibilityExtensionAbility基于ExtensionAbility框架,提供辅助功能业务的能力,能力包括成功连接无障碍服务、断开无障碍服务、处理无障碍服务事件和无障碍按键事件等。
+
+> **说明:**
+>
+> - 本模块首批接口从API version 20开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。
+> - 当前页面仅包含本模块的系统接口。其他公开接口参见[@ohos.application.AccessibilityExtensionAbility](js-apis-application-accessibilityExtensionAbility.md)。
+
+## 导入模块
+
+```ts
+import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+```
+## AccessibilityEventInfo
+
+无障碍事件信息。
+
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
+
+### 属性
+
+| 名称 | 类型 | 只读 | 可选 | 说明 |
+| ----------------------------- | ---------------------------------------- | ---- | ---- | ---------------------------------------- |
+| eventType | [AccessibilityEventType](./js-apis-accessibility-sys.md#accessibilityeventtype) | 否 | 否 | 无障碍事件类型。 |
+| target | [AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext-sys.md#accessibilityelement12) | 否 | 是 | 发生事件的目标组件。 |
+| timeStamp | number | 否 | 是 | 事件时间戳,单位是毫秒。默认值为0。 |
+| elementId | number | 否 | 是 | 主动聚焦的组件ID。默认值为0。 |
+| textAnnouncedForAccessibility | string | 否 | 是 | 主动播报的内容。 |
+| extraInfo | string | 否 | 是 | 针对TextArea、TextInput、SearchField、RichEdit组件, 组件文本内容有新增或删除时,新增或删除的文本内容。 |
+
+
+## AccessibilityExtensionAbility.onAccessibilityConnect
+
+onAccessibilityConnect(): void;
+
+用户启用AccessibilityExtensionAbility时,系统服务完成连接后,回调此接口,可以在该方法中执行初始化业务逻辑操作。该方法可以选择性重写。无障碍服务通过此回调,通知此Ability已经成功连接到无障碍服务。
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**示例:**
+
+```ts
+import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+
+class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
+ onAccessibilityConnect(): void {
+ console.log('AxExtensionAbility onAccessibilityConnect');
+ }
+}
+```
+
+## AccessibilityExtensionAbility.onAccessibilityDisconnect
+
+onAccessibilityDisconnect(): void;
+
+用户停用AccessibilityExtensionAbility时,系统服务完成断开连接后,回调此接口,可以该方法中执行资源回收退出业务逻辑操作。该方法可以选择性重写。
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**示例:**
+
+```ts
+import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+
+class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
+ onAccessibilityDisconnect(): void {
+ console.log('AxExtensionAbility onAccessibilityDisconnect');
+ }
+}
+```
+
+## AccessibilityExtensionAbility.onAccessibilityEvent
+
+onAccessibilityEvent(event: onAccessibilityEventInfo): void;
+
+在关注的应用及事件类型对应的事件发生时回调此接口,可以在该方法中根据事件信息进行业务逻辑处理。通常需要重写。
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| ----- | ---------------------------------------- | ---- | ----- |
+| event | [onAccessibilityEventInfo](#accessibilityeventinfo) | 是 | 无障碍事件 |
+
+**示例:**
+
+```ts
+import { AccessibilityExtensionAbility, AccessibilityEventInfo, AccessibilityEventType } from '@kit.AccessibilityKit';
+
+class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
+ onAccessibilityEventInfo(event: AccessibilityEventInfo): void {
+ console.log('AxExtensionAbility onAccessibilityEventInfo');
+ if (event.eventType === AccessibilityEventType.TYPE_CLICK) {
+ console.log('AxExtensionAbility onAccessibilityEventInfo: click');
+ }
+ }
+}
+```
+
+## AccessibilityExtensionAbility.onAccessibilityKeyEvent
+
+onAccessibilityKeyEvent(keyEvent: KeyEvent): boolean;
+
+在物理按键按下时回调该方法,在该方法中根据业务判断是否消费事件。
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | ---------------------------------------- | ---- | ---- |
+| keyEvent | [KeyEvent](../apis-input-kit/js-apis-keyevent.md#keyevent) | 是 | 按键事件。 |
+
+**返回值:**
+| 类型 | 说明 |
+| ------- | ------------------------------------------------------------ |
+| boolean | 返回true表示此事件被消费,不会继续传递。
返回false表示些事件未被消费,会继续传递。|
+
+
+**示例:**
+
+```ts
+import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+import { KeyEvent, KeyCode } from '@kit.InputKit';
+
+class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
+ onAccessibilityKeyEvent(keyEvent: KeyEvent): boolean {
+ console.log('AxExtensionAbility onAccessibilityKeyEvent');
+ if (keyEvent.key.code === KeyCode.KEYCODE_VOLUME_UP) {
+ console.log('AxExtensionAbility onAccessibilityKeyEvent: intercept 16');
+ return true;
+ }
+ return false;
+ }
+}
+```
\ No newline at end of file
diff --git a/zh-cn/application-dev/reference/apis-accessibility-kit/js-apis-inner-application-accessibilityExtensionContext-sys.md b/zh-cn/application-dev/reference/apis-accessibility-kit/js-apis-inner-application-accessibilityExtensionContext-sys.md
index e6aa6eacbb4465ca2e034217ca1250985862fa2f..98e7e231933ba6b069e0673493720fe2b1300c1d 100644
--- a/zh-cn/application-dev/reference/apis-accessibility-kit/js-apis-inner-application-accessibilityExtensionContext-sys.md
+++ b/zh-cn/application-dev/reference/apis-accessibility-kit/js-apis-inner-application-accessibilityExtensionContext-sys.md
@@ -23,6 +23,568 @@ class EntryAbility extends AccessibilityExtensionAbility {
}
```
+## Parameter20
+
+无障碍节点元素执行特定操作时,为操作提供具体设置的参数值。
+详见[无障碍节点元素可执行的操作](./js-apis-accessibility-sys.md#accessibilityaction)
+
+**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
+
+| 名称 | 类型 | 只读 |可选| 说明 |
+| ------------------- | ------ | ---- | ----|--------------------------------- |
+| setText | string | 否 |是 |SET_TEXT操作对应的文本内容 |
+| selectTextBegin | string | 否 | 是|SET_SELECTION操作的起始坐标。例:‘2’ |
+| selectTextEnd | string | 否 | 是|SET_SELECTION操作的结束坐标。例:‘8’ |
+| selectTextInForWard | bool | 否 | 是|SET_SELECTION操作是否向前选择,例:true |
+| offset | string | 否 | 是|SET_CURSOR_POSITION操作的位移。例:'1' |
+| spanId | string | 否 |是 |SPAN文本进行点击操作时文本id |
+| scrollType | string | 否 | 是|组件滚动类型,包括SCROLL_FORWARD(向前滚动)和SCROLL_BACKWARD(向后滚动) |
+
+例如:针对action: AccessibilityAction.SET_SELECTION, executeAction方法的第二个参数如下:
+```ts
+let p : Parameter = { selectTextBegin: '0', selectTextEnd: '8', selectTextInForWard: true }
+```
+可以选中文本输入框中index从0到7的字符
+
+## startAbility12+
+
+startAbility(want: Want): Promise\;
+
+提供拉起前台页面的能力。
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| want | [Want](../../reference/apis-ability-kit/js-apis-app-ability-want.md) | 是 | Want类型参数,传入需要启动的ability的信息,如Ability名称,Bundle名称等。 |
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------- | ---------------- |
+| Promise<void> | 无返回结果的Promise对象。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | ---------------------------------------- |
+| 201 | Permission denied. Interface caller does not have permission. |
+| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
+
+**示例:**
+
+```ts
+import { BusinessError } from '@kit.BasicServicesKit';
+
+let want: Want = {
+ bundleName: 'com.huawei.hmos.photos'
+ abilityName: 'com.huawei.hmos.photos.MainAbility'
+}
+
+axContext.startAbility(want).then(() => {
+ console.info(`startAbility Succeeded enable ability`);
+}).catch((err: BusinessError) => {
+ console.error(`startAbility failed to enable ability, Code is ${err.code}, message is ${err.message}`);
+});
+```
+
+## AccessibilityExtensionContext.getElements18+
+
+getElements(windowId: number, elementId?: number): Promise;
+
+提供批量查询节点的能力。
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| windowId | number | 是 | 表示查询的窗口id。 |
+| elementId | number | 否 | 表示查询的节点id。传入此参数表示查询当前节点下的所有子节点列表,不传则查询窗口下所有节点。默认值为-1。 |
+
+**返回值:**
+| 类型 | 说明 |
+| ----------------------------------- | ---------------------- |
+| Promise | Promise对象,返回当前窗口或者当前节点下的所有子节点列表。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | ---------------------------------------- |
+| 202 | Permission verification failed. A non-system application calls a system API. |
+| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
+| 9300003 | No accessibility permission to perform the operation. |
+
+**示例:**
+
+```ts
+import { AccessibilityElement } from '@kit.AccessibilityKit';
+import { BusinessError } from '@kit.BasicServicesKit';
+
+let windowId: number = 10;
+let elementId: number = 10;
+
+axContext.getElements(windowId, elementId).then((data:AccessibilityElement[]) => {
+ console.log(`Succeeded in find element, ${JSON.stringify(data)}`);
+}).catch((err: BusinessError) => {
+ console.error(`failed to find element, Code is ${err.code}, message is ${err.message}`);
+});
+```
+
+## AccessibilityExtensionContext.getDefaultFocusedElementIds18+
+
+getDefaultFocusedElementIds(windowId: number): Promise;
+
+提供查询应用自定义默认焦点的能力。
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| windowId | number | 是 | 表示查询的窗口id。 |
+
+**返回值:**
+| 类型 | 说明 |
+| ----------------------------------- | ---------------------- |
+| Promise | Promise对象,返回当前窗口下的自定义默认焦点列表。 |
+
+**错误码:**
+
+以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | ---------------------------------------- |
+| 202 | Permission verification failed. A non-system application calls a system API. |
+| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
+| 9300003 | No accessibility permission to perform the operation. |
+
+**示例:**
+
+```ts
+import { AccessibilityElement } from '@kit.AccessibilityKit';
+import { BusinessError } from '@kit.BasicServicesKit';
+
+let windowId: number = 10;
+
+axContext.getDefaultFocusedElementIds(windowId).then((data: number[]) => {
+ console.log(`Succeeded in get default focus, ${JSON.stringify(data)}`);
+}).catch((err: BusinessError) => {
+ console.error(`failed to get default focus, Code is ${err.code}, message is ${err.message}`);
+});
+```
+
+## AccessibilityExtensionContext.holdRunningLockSync20+
+
+holdRunningLockSync(): void
+
+持有RunningLock锁,持锁后,屏幕不会自动灭屏。
+
+**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**错误码:**
+
+以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | ---------------------------------------- |
+| 201 | Permission verification failed. The application does not have the permission required to call the API. |
+| 202 | Permission verification failed. A non-system application calls a system API. |
+
+**示例:**
+
+```ts
+import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+import { BusinessError } from '@kit.BasicServicesKit';
+
+try {
+ axContext.holdRunningLockSync();
+} catch (err) {
+ console.error(`Failed to hold RunningLock, Code is ${err.code}, message is ${err.message}`);
+}
+```
+
+## AccessibilityExtensionContext.unholdRunningLockSync20+
+
+unholdRunningLockSync(): void
+
+释放RunningLock锁,恢复自动灭屏。
+
+**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**错误码:**
+
+以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | ---------------------------------------- |
+| 201 | Permission verification failed. The application does not have the permission required to call the API. |
+| 202 | Permission verification failed. A non-system application calls a system API. |
+
+**示例:**
+
+```ts
+import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+import { BusinessError } from '@kit.BasicServicesKit';
+
+try {
+ axContext.unholdRunningLockSync();
+} catch (err) {
+ console.error(`Failed to unhold RunningLock, code is ${err.code}, message is ${err.message}`);
+}
+```
+
+## AccessibilityExtensionContext.on('preDisconnect')20+
+
+on(type: 'preDisconnect', callback: Callback<void>): void
+
+向无障碍服务注册回调函数,在无障碍服务关闭该无障碍扩展服务前会执行该回调函数。
+
+此注册函数需要与[notifyDisconnect](#accessibilityextensioncontextnotifydisconnect20)配合使用,如果不调用[notifyDisconnect](#accessibilityextensioncontextnotifydisconnect20),则默认等待30秒后,无障碍扩展服务会自动关闭。
+
+**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| type | string | 是 | 监听事件名,固定为‘preDisconnect’,即无障碍扩展服务即将关闭事件。 |
+| callback | Callback<void> | 是 |回调函数,在无障碍扩展服务即将关闭时回调。|
+
+**错误码:**
+
+以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | ---------------------------------------- |
+| 201 | Permission verification failed. The application does not have the permission required to call the API. |
+| 202 | Permission verification failed. A non-system application calls a system API. |
+
+**示例:**
+
+```ts
+import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+import { BusinessError } from '@kit.BasicServicesKit';
+
+try {
+ axContext.on('preDisconnect', () => {
+ console.info(`To do something before accessibilityExtension disconnect.`);
+ });
+} catch (err) {
+ console.error(`Failed to register, code is ${err.code}, message is ${err.message}`);
+}
+```
+
+## AccessibilityExtensionContext.off('preDisconnect')20+
+
+off(type: 'preDisconnect', callback?: Callback<void>): void
+
+取消已经向无障碍服务注册的预关闭回调函数,无障碍服务关闭该扩展服务前不再执行该回调。
+
+**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**参数:**
+
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| type | string | 是 | 监听事件名,固定为‘preDisconnect’,即无障碍扩展服务即将关闭事件。 |
+| callback | Callback<void> | 否 |回调函数,取消指定无障碍扩展服务即将关闭时的回调。需与[on('preDisconnect')](#accessibilityextensioncontextonpredisconnect20)的callback一致。缺省时,表示注销所有已注册事件。|
+
+**错误码:**
+
+以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | ---------------------------------------- |
+| 201 | Permission verification failed. The application does not have the permission required to call the API. |
+| 202 | Permission verification failed. A non-system application calls a system API. |
+
+**示例:**
+
+```ts
+import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+import { BusinessError } from '@kit.BasicServicesKit';
+
+try {
+ axContext.off('preDisconnect', () => {
+ console.info(`To do something before accessibilityExtension disconnect.`);
+ });
+} catch (err) {
+ console.error(`Failed to unRegister, code is ${err.code}, message is ${err.message}`);
+}
+```
+
+## AccessibilityExtensionContext.notifyDisconnect20+
+
+notifyDisconnect(): void
+
+通知无障碍服务可以关闭该无障碍扩展服务。
+
+此函数需要与注册预关闭接口[on('preDisconnect')](#accessibilityextensioncontextonpredisconnect20)配合使用,如果没有调用过注册预关闭函数,直接调用此函数不生效。
+
+**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+
+**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+
+**错误码:**
+
+以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | ---------------------------------------- |
+| 201 | Permission verification failed. The application does not have the permission required to call the API. |
+| 202 | Permission verification failed. A non-system application calls a system API. |
+
+**示例:**
+
+```ts
+import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+import { BusinessError } from '@kit.BasicServicesKit';
+
+try {
+ axContext.notifyDisconnect();
+} catch (err) {
+ console.error(`Failed to notify accessibility, code is ${err.code}, message is ${err.message}`);
+}
+```
+
+## getAccessibilityFocusedElement20+
+
+getAccessibilityFocusedElement(): Promise\;
+
+获取当前获得焦点的元素。
+
+**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+
+**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
+
+**返回值:**
+| 类型 | 描述 |
+| ----------------------------------- | ---------------------- |
+| Promise\<[AccessibilityElement](#accessibilityelement12)>| 异步返回函数结果.|
+
+**错误码:**
+以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+
+| 错误码ID | 错误信息 |
+| ------- | ---------------------------------------- |
+| 201 | Permission verification failed.The application does not have the permission required to call the API. |
+| 202 | Permission verification failed. A non-system application calls a system API. |
+| 9300003 | No accessibility permission to perform the operation. |
+
+**示例:**
+
+```ts
+import { AccessibilityElement } from '@kit.AccessibilityKit';
+import { BusinessError } from '@kit.BasicServicesKit';
+
+axContext.getAccessibilityFocusedElement().then((element: AccessibilityElement) => {
+ console.log(`Succeeded in get accessibility focused element, ${element.bundleName}`);
+}).catch((err: BusinessError) => {
+ console.error(`failed to get accessibility focused element, Code is ${err.code}, message is ${err.message}`);
+});
+```
+
+## getRootInActiveWindow20+
+
+getRootInActiveWindow(windowId ?: number): Promise\<[AccessibilityElement](#accessibilityelement12)>;
+
+获取活动窗口根元素。
+
+**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+
+**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
+
+**参数:**
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| windowId | number | No | Window ID to be obtained.|
+
+**返回值:**
+| 类型 | 描述 |
+| ----------------------------------- | ---------------------- |
+| Promise\<[AccessibilityElement](#accessibilityelement12)>| Promise used to return the result.|
+
+**错误码:**
+以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+| 错误码ID | 错误信息 |
+| ------- | ---------------------------------------- |
+| 201 | Permission verification failed.The application does not have the permission required to call the API. |
+| 202 | Permission verification failed. A non-system application calls a system API. |
+| 9300003 | No accessibility permission to perform the operation. |
+
+**示例:**
+
+```ts
+import { AccessibilityElement } from '@kit.AccessibilityKit';
+import { BusinessError } from '@kit.BasicServicesKit';
+
+let windowId: number = 0;
+
+axContext.getRootInActiveWindow(windowId).then((element: AccessibilityElement) => {
+ console.log(`Succeeded in get root inactive window element, ${element.bundleName}`);
+}).catch((err: BusinessError) => {
+ console.error(`failed to get root inactive window element, Code is ${err.code}, message is ${err.message}`);
+});
+```
+
+## getAccessibilityWindowsSync20+
+
+getAccessibilityWindowsSync(displayId?: number): Array\<[AccessibilityElement](#accessibilityelement12)>
+
+获取窗口列表。
+
+**权限:** ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+
+**系统能力:** SystemCapability.BarrierFree.Accessibility.Core
+
+**参数:**
+| 参数名 | 类型 | 必填 | 说明 |
+| -------- | -------- | -------- | -------- |
+| displayId | number | No | 显示ID。如果未提供此参数,则表示默认displayId。 |
+
+**返回值:**
+
+| 类型 | 描述 |
+| ----------------------------------- | ---------------------- |
+| Array\<[AccessibilityElement](#accessibilityelement12)> | 窗口列表。|
+
+**错误码:**
+以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+| 错误码ID | 错误信息 |
+| ------- | ---------------------------------------- |
+| 201 | Permission verification failed.The application does not have the permission required to call the API. |
+| 202 | Permission verification failed. A non-system application calls a system API. |
+| 9300003 | No accessibility permission to perform the operation. |
+
+**示例:**
+
+```ts
+import { AccessibilityElement } from '@kit.AccessibilityKit';
+import { BusinessError } from '@kit.BasicServicesKit';
+
+let displayId: number = 0;
+
+let windowList: AccessibilityElement[] = axContext.getAccessibilityWindowsSync(displayId);
+
+for (let window of windowList) {
+ console.log(`window id: ${window.windowId}`);
+}
+```
+
+## AccessibilityElement12+
+
+无障碍节点元素。在调用 **AccessibilityElement** 的 API 之前,应该调用 [AccessibilityExtensionContext.getAccessibilityFocusedElement()](#getaccessibilityfocusedelement20) 或 [AccessibilityExtensionContext.getRootInActiveWindow()](#getrootinactivewindow20) 来获取一个 **AccessibilityElement** 实例。
+
+**系统能力:**: SystemCapability.BarrierFree.Accessibility.Core
+
+### 属性
+
+| 名称 | 类型 | 可读 | 可写 | 描述 |
+|----------------------|--------------------------------------------------------------------|------|------|-------------------|
+| accessibilityFocused20+ | boolean | 是 | 否 | 元素是否因无障碍目的而获得焦点。值为 **true** 表示元素已获得焦点,**false** 表示相反情况。
默认值:**false**。|
+| bundleName20+ | string | 是 | 否 | 包名。|
+| checkable20+ | boolean | 是 | 否 | 元素是否可勾选。值为 **true** 表示元素可勾选,**false** 表示相反情况。
默认值:**false**。|
+| checked20+ | boolean | 是 | 否 | 元素是否已勾选。值为 **true** 表示元素已勾选,**false** 表示相反情况。
默认值:**false**。|
+| clickable20+ | boolean | 是 | 否 | 元素是否可点击。值为 **true** 表示元素可点击,**false** 表示相反情况。
默认值:**false**。|
+| componentId20+ | number | 是 | 否 | 元素所属组件的 ID。
默认值:**-1**。|
+| componentType20+ | string | 是 | 否 | 元素所属组件的类型。|
+| contents20+ | Array<string> | 是 | 否 | 元素显示内容。|
+| currentIndex20+ | number | 是 | 否 | 当前项的索引。
默认值:**0**。|
+| description20+ | string | 是 | 否 | 元素的描述信息。|
+| editable20+ | boolean | 是 | 否 | 元素是否可编辑。值为 **true** 表示元素可编辑,**false** 表示相反情况。
默认值:**false**。|
+| endIndex20+ | number | 是 | 否 | 屏幕上显示的最后一个列表项的索引。
默认值:**0**。|
+| error20+ | string | 是 | 否 | 元素的错误状态。|
+| focusable20+ | boolean | 是 | 否 | 元素是否可获得焦点。值为 **true** 表示元素可获得焦点,**false** 表示相反情况。
默认值:**false**。|
+| hintText20+ | string | 是 | 否 | 提示文本。|
+| inputType20+ | number | 是 | 否 | 输入文本的类型。
默认值:**0**。|
+| inspectorKey20+ | string | 是 | 否 | 检查器键。|
+| isActive20+ | boolean | 是 | 否 | 元素是否处于活动状态。值为 **true** 表示元素处于活动状态,**false** 表示相反情况。
默认值:**true**。|
+| isEnable20+ | boolean | 是 | 否 | 元素是否已启用。值为 **true** 表示元素已启用,**false** 表示相反情况。
默认值:**false**。|
+| isHint20+ | boolean | 是 | 否 | 元素是否为提示信息。值为 **true** 表示元素是提示信息,**false** 表示相反情况。
默认值:**false**。|
+| isFocused20+ | boolean | 是 | 否 | 元素是否已获得焦点。值为 **true** 表示元素已获得焦点,**false** 表示相反情况。
默认值:**false**。|
+| isPassword20+ | boolean | 是 | 否 | 元素是否为密码。值为 **true** 表示元素是密码,**false** 表示相反情况。
默认值:**false**。|
+| isVisible20+ | boolean | 是 | 否 | 元素是否可见。值为 **true** 表示元素可见,**false** 表示相反情况。
默认值:**false**。|
+| itemCount20+ | number | 是 | 否 | 项目总数。
默认值:**0**。|
+| lastContent20+ | string | 是 | 否 | 最后一项内容。|
+| layer20+ | number | 是 | 否 | 元素的显示层级。|
+| longClickable20+ | boolean | 是 | 否 | 元素是否可长按。值为 **true** 表示元素可长按,**false** 表示相反情况。
默认值:**false**。|
+| pageId20+ | number | 是 | 否 | 页面 ID。
默认值:**-1**。|
+| pluralLineSupported20+ | boolean | 是 | 否 | 元素是否支持多行文本。值为 **true** 表示元素支持多行文本,**false** 表示相反情况。
默认值:**false**。|
+| rect20+ | [Rect](js-apis-inner-application-accessibilityExtensionContext.md#Rect) | 是 | 否 | 元素的区域。|
+| resourceName20+ | string | 是 | 否 | 元素的资源名称。|
+| screenRect20+ | [Rect](js-apis-inner-application-accessibilityExtensionContext.md#Rect) | 是 | 否 | 元素的显示区域。|
+| scrollable20+ | boolean | 是 | 否 | 元素是否可滚动。值为 **true** 表示元素可滚动,**false** 表示相反情况。
默认值:**false**。|
+| selected20+ | boolean | 是 | 否 | 元素是否已选中。值为 **true** 表示元素已选中,**false** 表示相反情况。
默认值:**false**。|
+| startIndex20+ | number | 是 | 否 | 屏幕上第一个列表项的索引。
默认值:**0**。|
+| text20+ | string | 是 | 否 | 元素的文本内容。|
+| textLengthLimit20+ | number | 是 | 否 | 元素的最大文本长度。|
+| textMoveUnit20+ | [accessibility.TextMoveUnit](js-apis-accessibility.md#textmoveunit)| 是 | 否 | 文本朗读时的移动单位。
默认值:**0**。|
+| triggerAction20+ | [accessibility.Action](js-apis-accessibility.md#action) | 是 | 否 | 触发元素事件的操作。|
+| type20+ | [WindowType](js-apis-inner-application-accessibilityExtensionContext.md#windowtype) | 是 | 否 | 元素的窗口类型。|
+| valueMax20+ | number | 是 | 否 | 最大值。
默认值:**0**。|
+| valueMin20+ | number | 是 | 否 | 最小值。
默认值:**0**。|
+| valueNow20+ | number | 是 | 否 | 当前值。
默认值:**0**。|
+| windowId20+ | number | 是 | 否 | 窗口 ID。
默认值:**-1**。|
+| offset20+ | number | 是 | 否 | 内容区域相对于可滚动组件(如 **List** 和 **Grid**)顶部坐标的像素偏移量。
默认值:**0**。|
+| textType20+ | string | 是 | 否 | 元素的无障碍文本类型,由组件的 **accessibilityTextHint** 属性配置。|
+| accessibilityText20+ | string | 是 | 否 | 元素的无障碍文本信息。|
+| hotArea20+ | [Rect](js-apis-inner-application-accessibilityExtensionContext.md#Rect) | 是 | 否 | 元素的可触摸区域。|
+| customComponentType20+ | string | 是 | 否 | 自定义组件类型。|
+| accessibilityNextFocusId20+ | number | 是 | 否 | 下一个要获得焦点的组件的 ID。
默认值:**-1**。|
+| accessibilityPreviousFocusId20+ | number | 是 | 否 | 上一个要获得焦点的组件的 ID。
默认值:**-1**。|
+| extraInfo20+ | string | 是 | 否 | 元素的额外信息。值为 JSON 字符串。|
+| accessibilityScrollable20+ | boolean | 是 | 否 | 元素是否因无障碍目的而可滚动。此属性优先级高于 **scrollable**。
- **true**(默认值):元素可滚动。
- **false**:元素不可滚动。|
+| supportedActionNames20+ | Array<string> | 是 | 否 | 支持的操作名称。|
+| accessibilityGroup20+ | boolean | 是 | 否 | 元素是否为无障碍组。值为 **true** 表示元素是无障碍组,**false** 表示相反情况。
默认值:**false**。|
+| accessibilityLevel20+ | string | 是 | 否 | 组件的无障碍级别。|
+| navDestinationId20+ | number | 是 | 否 | 组件的导航目标 ID。|
+| currentItem20+ | AccessibilityGrid | 是 | 否 | 组件网格中的当前项。|
+| spans20+ | AccessibilitySpan[] | 是 | 否 | 组件的跨度数组。|
+| accessibilityVisible20+ | boolean | 是 | 否 | 组件是否无障碍可见。|
+| mainWindowId20+ | number | 是 | 否 | 组件的主窗口 ID。|
+| clip20+ | boolean | 是 | 否 | 组件是否需要裁剪。|
+| parentId20+ | number | 是 | 否 | 组件的父元素 ID。|
+| childrenIds20+ | Array\ | 是 | 否 | 组件的子元素 ID 列表。|
+
+**示例:**
+```ts
+import { AccessibilityElement } from '@kit.AccessibilityKit';
+import { BusinessError } from '@kit.BasicServicesKit';
+
+let windowId: number = 10;
+
+axContext.getRootInActiveWindow(windowId)..then((element: AccessibilityElement) => {
+ console.info("AccessibilityElement.checkable: " + element.checkable)
+ console.info("AccessibilityElement.checked: " + element.checked)
+ console.info("AccessibilityElement.clickable: " + element.clickable)
+ console.info("AccessibilityElement.componentId: " + element.componentId)
+ console.info("AccessibilityElement.componentType: " + element.componentType)
+ console.info("AccessibilityElement.contents: " + element.contents)
+ console.info("AccessibilityElement.currentIndex: " + element.currentIndex)
+ console.info("AccessibilityElement.description: " + element.description)
+ // ....
+}).catch((err) => {
+ console.log(`getRootInActiveWindow failed, code: ${err.code}, message: ${err.message}`);
+})
+```
+
### enableScreenCurtain12+
enableScreenCurtain(isEnable: boolean): void;
@@ -211,19 +773,23 @@ rootElement.getCursorPosition((err: BusinessError, data: number) => {
});
```
-### startAbility12+
-startAbility(want: Want): Promise\;
+### executeAction20+
-提供拉起前台页面的能力。
+executeAction(action: AccessibilityAction, parameters?: Parameter): Promise\;
+
+根据action指定的操作类型和parameters传入的参数,执行特定操作。使用Promise异步回调。
+
+**权限**: ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| want | [Want](../../reference/apis-ability-kit/js-apis-app-ability-want.md) | 是 | Want类型参数,传入需要启动的ability的信息,如Ability名称,Bundle名称等。 |
+| 参数名 | 类型 | 必填 | 说明 |
+| ----------- | ---------------------------------------- | ---- |----------------------------------------------------------|
+| action | [AccessibilityAction](./js-apis-accessibility-sys.md#accessibilityaction)| 是 | 无障碍节点可执行的操作。。
+| parameters | [Parameter](#parameter20) | 否 | 执行操作时设置的参数值,默认为空。 |
**返回值:**
@@ -237,55 +803,98 @@ startAbility(want: Want): Promise\;
| 错误码ID | 错误信息 |
| ------- | ---------------------------------------- |
-| 201 | Permission denied. Interface caller does not have permission. |
-| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
+| 401 | Input parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
+| 9300005 | This action is not supported. |
**示例:**
```ts
import { BusinessError } from '@kit.BasicServicesKit';
+import { AccessibilityAction, Parameter } from '@kit.AccessibilityKit';
-let want: Want = {
- bundleName: 'com.huawei.hmos.photos'
- abilityName: 'com.huawei.hmos.photos.MainAbility'
-}
+// rootElement是AccessibilityElement的实例
+rootElement.executeAction(action).then(() => {
+ console.info(`Succeeded in perform action,actionName is ${actionName}`);
+}).catch((err: BusinessError) => {
+ console.error(`failed to perform action, Code is ${err.code}, message is ${err.message}`);
+});
+```
-axContext.startAbility(want).then(() => {
- console.info(`startAbility Succeeded enable ability`);
+
+```ts
+//无参数Action示例:
+import { BusinessError } from '@kit.BasicServicesKit';
+import { AccessibilityAction, Parameter } from '@kit.AccessibilityKit';
+
+// rootElement是AccessibilityElement的实例
+// Action描述中无明确要求的,均为无参数Action
+rootElement.executeAction(AccessibilityAction.CLICK).then(() => {
+ console.info(`Succeeded in perform action.`);
}).catch((err: BusinessError) => {
- console.error(`startAbility failed to enable ability, Code is ${err.code}, message is ${err.message}`);
+ console.error(`failed to perform action, Code is ${err.code}, message is ${err.message}`);
});
```
-### AccessibilityExtensionContext.getElements18+
-getElements(windowId: number, elementId?: number): Promise;
-提供批量查询节点的能力。
+```ts
+//有参数Action示例:
+import { BusinessError } from '@kit.BasicServicesKit';
+import { AccessibilityAction, Parameter } from '@kit.AccessibilityKit';
+
+// selectTextBegin: 表示选择起始位置
+// selectTextEnd: 表示选择结束位置
+// selectTextInForWard: true表示为前光标,false表示为后光标
+let p : Parameter = { selectTextBegin: '0', selectTextEnd: '8', selectTextInForWard: true }
+// rootElement是AccessibilityElement的实例
+// setSelection示例代码
+rootElement.executeAction(AccessibilityAction.SET_SELECTION, p).then(() => {
+ console.info(`Succeeded in perform action`);
+}).catch((err: BusinessError) => {
+ console.error(`failed to perform action, Code is ${err.code}, message is ${err.message}`);
+});
+```
-**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+```ts
+//有参数Action示例:
+import { BusinessError } from '@kit.BasicServicesKit';
+import { AccessibilityAction, Parameter } from '@kit.AccessibilityKit';
-**参数:**
+// offset: 表示光标的设置位置
+let p : Parameter = { offset: '1' }
+// rootElement是AccessibilityElement的实例
+// setCursorPosition示例代码
+rootElement.executeAction(AccessibilityAction.SET_CURSOR_POSITION, p).then(() => {
+ console.info(`Succeeded in perform action`);
+}).catch((err: BusinessError) => {
+ console.error(`failed to perform action, Code is ${err.code}, message is ${err.message}`);
+});
+```
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| windowId | number | 是 | 表示查询的窗口id。 |
-| elementId | number | 否 | 表示查询的节点id。传入此参数表示查询当前节点下的所有子节点列表,不传则查询窗口下所有节点。默认值为-1。 |
+### getParent20+
+
+getParent(): Promise\;
+
+获取元素的父元素。
+
+**权限**: ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+
+**系统能力**: SystemCapability.BarrierFree.Accessibility.Core
**返回值:**
-| 类型 | 说明 |
-| ----------------------------------- | ---------------------- |
-| Promise | Promise对象,返回当前窗口或者当前节点下的所有子节点列表。 |
+
+| 类型 | 描述 |
+| ---------------------------------------- | --------------------- |
+| Promise\<[AccessibilityElement](#accessibilityelement12)> | 父元素。|
**错误码:**
-以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+有关错误码的详细信息,请参阅[无障碍子系统错误码](errorcode-accessibility.md)。
-| 错误码ID | 错误信息 |
+| 错误码ID | 错误信息 |
| ------- | ---------------------------------------- |
+| 201 | Permission verification failed.The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
-| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
-| 9300003 | No accessibility permission to perform the operation. |
**示例:**
@@ -293,44 +902,42 @@ getElements(windowId: number, elementId?: number): Promise {
- console.log(`Succeeded in find element, ${JSON.stringify(data)}`);
-}).catch((err: BusinessError) => {
- console.error(`failed to find element, Code is ${err.code}, message is ${err.message}`);
-});
+axContext.getAccessibilityFocusedElement().then((element: AccessibilityElement) => {
+ console.log(`element parent id: ${element.parentId}`);
+ element.getParent().then((parent: AccessibilityElement) => {
+ console.log(`parent element's parent id: ${parent.parentId}`);
+ }).catch((err) => {
+ console.log(`getParent failed, code: ${err.code}, message: ${err.message}`);
+ })
+}).catch((err) => {
+ console.log(`getAccessibilityFocusedElement failed, code: ${err.code}, message: ${err.message}`);
+})
```
-### AccessibilityExtensionContext.getDefaultFocusedElementIds18+
+### getChildren20+
-getDefaultFocusedElementIds(windowId: number): Promise;
-
-提供查询应用自定义默认焦点的能力。
+getChildren(): Promise\>;
-**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+获取元素的子元素列表。
-**参数:**
+**权限:**: ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| windowId | number | 是 | 表示查询的窗口id。 |
+**系统能力**: SystemCapability.BarrierFree.Accessibility.Core
**返回值:**
-| 类型 | 说明 |
-| ----------------------------------- | ---------------------- |
-| Promise | Promise对象,返回当前窗口下的自定义默认焦点列表。 |
+
+| 类型 | 描述 |
+| ---------------------------------------- | --------------------- |
+| Promise\> | 子元素数组。|
**错误码:**
-以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+有关错误码的详细信息,请参阅[无障碍子系统错误码](errorcode-accessibility.md)。
-| 错误码ID | 错误信息 |
+| 错误码ID | 错误信息 |
| ------- | ---------------------------------------- |
+| 201 | Permission verification failed.The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
-| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
-| 9300003 | No accessibility permission to perform the operation. |
**示例:**
@@ -338,193 +945,303 @@ getDefaultFocusedElementIds(windowId: number): Promise;
import { AccessibilityElement } from '@kit.AccessibilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
-let windowId: number = 10;
-
-axContext.getDefaultFocusedElementIds(windowId).then((data: number[]) => {
- console.log(`Succeeded in get default focus, ${JSON.stringify(data)}`);
-}).catch((err: BusinessError) => {
- console.error(`failed to get default focus, Code is ${err.code}, message is ${err.message}`);
-});
+axContext.getAccessibilityFocusedElement().then((element: AccessibilityElement) => {
+ console.log(`element childrenIds: ${element.childrenIds}`);
+ element.getChildren().then((children: AccessibilityElement[]) => {
+ console.log(`children element's size: ${children.length}`);
+ }).catch((err) => {
+ console.log(`getChildren failed, code: ${err.code}, message: ${err.message}`);
+ })
+}).catch((err) => {
+ console.log(`getAccessibilityFocusedElement failed, code: ${err.code}, message: ${err.message}`);
+})
```
-### AccessibilityExtensionContext.holdRunningLockSync20+
+### getRoot20+
-holdRunningLockSync(): void
+getRoot(): Promise\;
-持有RunningLock锁,持锁后,屏幕不会自动灭屏。
+获取活动窗口中的根元素。
-**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+**权限:**: ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
-**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+**系统能力**: SystemCapability.BarrierFree.Accessibility.Core
+
+**返回值:**
+
+| 类型 | 描述 |
+| ---------------------------------------- | --------------------- |
+| Promise\<[AccessibilityElement](#accessibilityelement12)> | 根元素。|
**错误码:**
-以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+有关错误码的详细信息,请参阅[无障碍子系统错误码](errorcode-accessibility.md)。
-| 错误码ID | 错误信息 |
+| 错误码ID | 错误信息 |
| ------- | ---------------------------------------- |
-| 201 | Permission verification failed. The application does not have the permission required to call the API. |
+| 201 | Permission verification failed.The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
**示例:**
```ts
-import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+import { AccessibilityElement } from '@kit.AccessibilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
-try {
- axContext.holdRunningLockSync();
-} catch (err) {
- console.error(`Failed to hold RunningLock, Code is ${err.code}, message is ${err.message}`);
+let windows: AccessibilityWindow[] = axContext.getAccessibilityWindowsSync()
+for (let window of windows) {
+ console.log(`window id: ${window.windowId}`);
+ window.getRoot().then((root: AccessibilityElement) => {
+ console.log(`root element's componentId: ${root.componentId}`);
+ }).catch((err) => {
+ console.log(`getRoot failed, code: ${err.code}, message: ${err.message}`);
+ })
}
```
-### AccessibilityExtensionContext.unholdRunningLockSync20+
+### findElementByContent
-unholdRunningLockSync(): void
+findElementByContent(content: string): Promise\>;
-释放RunningLock锁,恢复自动灭屏。
+根据内容查找元素。
-**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+**权限:**: ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
-**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+**系统能力**: SystemCapability.BarrierFree.Accessibility.Core
+
+**参数:**
+
+| 名称 | 类型 | 必填 | 描述 |
+| -------- | ---- | -------- | ------------------------------------------------------------ |
+| content | string | 是 | 内容。 |
+
+**返回值:**
+
+| 类型 | 描述 |
+| ---------------------------------------- | --------------------- |
+| Promise\> | 元素数组。|
**错误码:**
-以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+有关错误码的详细信息,请参阅[无障碍子系统错误码](errorcode-accessibility.md)。
-| 错误码ID | 错误信息 |
+| 错误码ID | 错误信息 |
| ------- | ---------------------------------------- |
-| 201 | Permission verification failed. The application does not have the permission required to call the API. |
+| 201 | Permission verification failed.The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
**示例:**
```ts
-import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+// Page.ets
+ build() {
+ Text('Connect')
+ .id('connect')
+ .fontSize($r('app.float.page_text_font_size'))
+ .fontWeight(FontWeight.Bold)
+// ...
+
+// AccessibilityExtAbility.ets
+import { AccessibilityElement } from '@kit.AccessibilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
-try {
- axContext.unholdRunningLockSync();
-} catch (err) {
- console.error(`Failed to unhold RunningLock, code is ${err.code}, message is ${err.message}`);
-}
-```
+let windowId: number = 10;
-### AccessibilityExtensionContext.on('preDisconnect')20+
+axContext.getRootInActiveWindow(windowId)..then((root: AccessibilityElement) => {
+ root.findElementByContent('connect').then((elements: AccessibilityElement[]) => {
+ console.log("findElementByContent size=" + elements.length)
+ }).catch((err) => {
+ console.log(`findElementByContent failed, code: ${err.code}, message: ${err.message}`);
+ })
+}).catch((err) => {
+ console.log(`getRootInActiveWindow failed, code: ${err.code}, message: ${err.message}`);
+})
+```
-on(type: 'preDisconnect', callback: Callback<void>): void
+### findElementByFocusDirection
-向无障碍服务注册回调函数,在无障碍服务关闭该无障碍扩展服务前会执行该回调函数。
+findElementByFocusDirection(direction: FocusDirection): Promise\;
-此注册函数需要与[notifyDisconnect](#accessibilityextensioncontextnotifydisconnect20)配合使用,如果不调用[notifyDisconnect](#accessibilityextensioncontextnotifydisconnect20),则默认等待30秒后,无障碍扩展服务会自动关闭。
+根据焦点方向查找元素。
-**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+**权限:**: ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
-**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+**系统能力**: SystemCapability.BarrierFree.Accessibility.Core
**参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| type | string | 是 | 监听事件名,固定为‘preDisconnect’,即无障碍扩展服务即将关闭事件。 |
-| callback | Callback<void> | 是 |回调函数,在无障碍扩展服务即将关闭时回调。|
+| 名称 | 类型 | 必填 | 描述 |
+| -------- | ---- | -------- | ------------------------------------------------------------ |
+| direction | FocusDirection | 是 | 焦点方向。 |
+
+**返回值:**
+
+| 类型 | 描述 |
+| ---------------------------------------- | --------------------- |
+| Promise\<[AccessibilityElement](#accessibilityelement12)> | AccessibilityElement.|
**错误码:**
-以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+有关错误码的详细信息,请参阅[无障碍子系统错误码](errorcode-accessibility.md)。
-| 错误码ID | 错误信息 |
+| 错误码ID | 错误信息 |
| ------- | ---------------------------------------- |
-| 201 | Permission verification failed. The application does not have the permission required to call the API. |
+| 201 | Permission verification failed.The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
**示例:**
```ts
-import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+// Page.ets
+// Click TextInput and then it is the accessibility focus element, up direction element is Text#connect
+ build() {
+ Text('Connect')
+ .id('connect')
+ .fontSize($r('app.float.page_text_font_size'))
+ .fontWeight(FontWeight.Bold)
+
+ TextInput({ placeholder: 'please input...' })
+ .id('text_input')
+ .fontSize($r('app.float.page_text_font_size'))
+// ...
+
+// AccessibilityExtAbility.ets
+import { AccessibilityElement } from '@kit.AccessibilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
-try {
- axContext.on('preDisconnect', () => {
- console.info(`To do something before accessibilityExtension disconnect.`);
- });
-} catch (err) {
- console.error(`Failed to register, code is ${err.code}, message is ${err.message}`);
-}
+axContext.getAccessibilityFocusedElement().then((focus: AccessibilityElement) => {
+ focus.findElementByFocusDirection('up').then((element: AccessibilityElement) => {
+ console.log("findElementByFocusDirection UP componentId: " + element.componentId);
+ }).catch((err) => {
+ console.log(`findElementByFocusDirection UP failed, code: ${err.code}, message: ${err.message}`);
+ })
+}).catch((err) => {
+ console.log(`getAccessibilityFocusedElement failed, code: ${err.code}, message: ${err.message}`);
+})
```
-### AccessibilityExtensionContext.off('preDisconnect')20+
+### findElementByAccessibilityHintText
-off(type: 'preDisconnect', callback?: Callback<void>): void
+findElementsByAccessibilityHintText(hintText: string): Promise\>;
-取消已经向无障碍服务注册的预关闭回调函数,无障碍服务关闭该扩展服务前不再执行该回调。
+根据性提示文本查找元素。
-**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+**权限:**: ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
-**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+**系统能力**: SystemCapability.BarrierFree.Accessibility.Core
**参数:**
-| 参数名 | 类型 | 必填 | 说明 |
-| -------- | -------- | -------- | -------- |
-| type | string | 是 | 监听事件名,固定为‘preDisconnect’,即无障碍扩展服务即将关闭事件。 |
-| callback | Callback<void> | 否 |回调函数,取消指定无障碍扩展服务即将关闭时的回调。需与[on('preDisconnect')](#accessibilityextensioncontextonpredisconnect20)的callback一致。缺省时,表示注销所有已注册事件。|
+| 名称 | 类型 | 必填 | 描述 |
+| -------- | ---- | -------- | ------------------------------------------------------------ |
+| hintText | string | 是 | 提示文本。 |
+
+**返回值:**
+
+| 类型 | 描述 |
+| ---------------------------------------- | --------------------- |
+| Promise\> | 元素数组。|
**错误码:**
-以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+有关错误码的详细信息,请参阅[无障碍子系统错误码](errorcode-accessibility.md)。
-| 错误码ID | 错误信息 |
+| 错误码ID | 错误信息 |
| ------- | ---------------------------------------- |
-| 201 | Permission verification failed. The application does not have the permission required to call the API. |
+| 201 | Permission verification failed.The application does not have the permission required to call the API. |
| 202 | Permission verification failed. A non-system application calls a system API. |
**示例:**
```ts
-import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+// Page.ets
+ build() {
+ Text('Connect')
+ .id('connect')
+ .fontSize($r('app.float.page_text_font_size'))
+ .fontWeight(FontWeight.Bold)
+
+ TextInput({ placeholder: 'please input...' })
+ .id('text_input')
+ .fontSize($r('app.float.page_text_font_size'))
+ .accessibilityTextHint('location')
+// ...
+
+// AccessibilityExtAbility.ets
+import { AccessibilityElement } from '@kit.AccessibilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
-try {
- axContext.off('preDisconnect', () => {
- console.info(`To do something before accessibilityExtension disconnect.`);
- });
-} catch (err) {
- console.error(`Failed to unRegister, code is ${err.code}, message is ${err.message}`);
-}
+let windowId: number = 10;
+
+axContext.getRootInActiveWindow(windowId).then((root: AccessibilityElement) => {
+ root.findElementByAccessibilityHintText('location').then((elements: AccessibilityElement[]) => {
+ console.log("findElementByAccessibilityHintText size=" + elements.length)
+ }).catch((err) => {
+ console.log(`findElementByAccessibilityHintText failed, code: ${err.code}, message: ${err.message}`);
+ })
+}).catch((err) => {
+ console.log(`getRootInActiveWindow failed, code: ${err.code}, message: ${err.message}`);
+})
```
-### AccessibilityExtensionContext.notifyDisconnect20+
+### findElementById
-notifyDisconnect(): void
+findElementById(elementId: number): Promise\;
-通知无障碍服务可以关闭该无障碍扩展服务。
+根据元素 ID 查找元素。
-此函数需要与注册预关闭接口[on('preDisconnect')](#accessibilityextensioncontextonpredisconnect20)配合使用,如果没有调用过注册预关闭函数,直接调用此函数不生效。
+**权限:**: ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
-**需要权限**:ohos.permission.ACCESSIBILITY_EXTENSION_ABILITY
+**系统能力**: SystemCapability.BarrierFree.Accessibility.Core
-**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
+**参数:**
+
+| 名称 | 类型 | 必填 | 描述 |
+| -------- | ---- | -------- | ------------------------------------------------------------ |
+| id | number | 是 | 元素 ID。 |
+
+**返回值:**
+
+| 类型 | 描述 |
+| ---------------------------------------- | --------------------- |
+| Promise\<[AccessibilityElement](#accessibilityelement12)> | AccessibilityElement.|
**错误码:**
-以下错误码的详细介绍请参见[无障碍子系统错误码](errorcode-accessibility.md)。
+有关错误码的详细信息,请参阅[无障碍子系统错误码](errorcode-accessibility.md)。
-| 错误码ID | 错误信息 |
+| 错误码ID | 错误信息 |
| ------- | ---------------------------------------- |
-| 201 | Permission verification failed. The application does not have the permission required to call the API. |
+| 201 | Permission verification failed.The application does not have the permission required to call the API.|
| 202 | Permission verification failed. A non-system application calls a system API. |
**示例:**
```ts
-import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
+// Page.ets
+// Click TextInput and then it is the accessibility focus element
+ build() {
+ Text('Connect')
+ .id('connect')
+ .fontSize($r('app.float.page_text_font_size'))
+ .fontWeight(FontWeight.Bold)
+
+ TextInput({ placeholder: 'please input...' })
+ .id('text_input')
+ .fontSize($r('app.float.page_text_font_size'))
+// ...
+
+// AccessibilityExtAbility.ets
+import { AccessibilityElement } from '@kit.AccessibilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
-try {
- axContext.notifyDisconnect();
-} catch (err) {
- console.error(`Failed to notify accessibility, code is ${err.code}, message is ${err.message}`);
-}
-```
\ No newline at end of file
+axContext.getAccessibilityFocusedElement().then((focus: AccessibilityElement) => {
+ focus.findElementById(0).then((element: AccessibilityElement) => {
+ console.log("findElementById componentId: " + element.componentId);
+ }).catch((err) => {
+ console.log(`findElementById failed, code: ${err.code}, message: ${err.message}`);
+ })
+}).catch((err) => {
+ console.log(`getAccessibilityFocusedElement failed, code: ${err.code}, message: ${err.message}`);
+})
+```