# @ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力)
AccessibilityExtensionAbility基于ExtensionAbility框架,提供辅助功能业务的能力。
> **说明:**
>
> - 本模块首批接口从API version 9开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```ts
import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
```
### 属性
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- |---------------------------------------------------------------------------------------------| ---- | ---- | ------------ |
| context | [AccessibilityExtensionContext](js-apis-inner-application-accessibilityExtensionContext.md) | 是 | 否 | 表示辅助扩展能力上下文。 |
## AccessibilityEvent
辅助事件信息。
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
### 属性
| 名称 | 类型 | 可读 | 可写 | 说明 |
| --------- |----------------------------------------------------------------|------------------------------------------------------------------------------|------------------------------------| ------------------------------------------------------------ |
| eventType | [accessibility.EventType](js-apis-accessibility.md#eventtype) \| [accessibility.WindowUpdateType](js-apis-accessibility.md#windowupdatetype) \| [TouchGuideType](#touchguidetype) \| [GestureType](#gesturetype) \| [PageUpdateType](#pageupdatetype) | 是 | 否 | 具体事件类型。
EventType:无障碍事件类型;
WindowUpdateType:窗口变化类型;TouchGuideType:触摸浏览事件类型;
GestureType:手势事件类型;
PageUpdateType:页面刷新类型。 |
| target | [AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9) | 是 | 否 | 发生事件的目标组件。 |
| timeStamp | number | 是 | 否 | 事件时间戳,单位是毫秒。 |
| elementId12+ | number | 是 | 否 | 主动聚焦的组件ID。 |
| textAnnouncedForAccessibility12+ | string | 是 | 否 | 主动播报的内容。 |
## AccessibilityElement10+
[AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9)二级模块
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**示例:**
```ts
import { AccessibilityElement } from '@kit.AccessibilityKit';
let accessibilityElement: AccessibilityElement;
```
## ElementAttributeValues10+
[ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues)二级模块
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**示例:**
```ts
import { ElementAttributeValues } from '@kit.AccessibilityKit';
let elementAttributeValues: ElementAttributeValues;
```
## FocusDirection10+
[FocusDirection](js-apis-inner-application-accessibilityExtensionContext.md#focusdirection)二级模块,表示查询下一焦点元素的方向。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**示例:**
```ts
import { FocusDirection } from '@kit.AccessibilityKit';
let focusDirection: FocusDirection;
```
## ElementAttributeKeys10+
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- |----------------------------------------------------------------------------------------------------------------------| ---- | ---- |----------------------------------------------------|
| ElementAttributeKeys | keyof [ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues) | 是 | 否 | 表示ElementAttributeValues的key。 |
**示例:**
```ts
import { ElementAttributeKeys } from '@kit.AccessibilityKit';
let elementAttributeKeys: ElementAttributeKeys;
```
## FocusType10+
[FocusType](js-apis-inner-application-accessibilityExtensionContext.md#focustype)二级模块,表示查询焦点元素的类型。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**示例:**
```ts
import { FocusType } from '@kit.AccessibilityKit';
let focusType: FocusType;
```
## WindowType 10+
[WindowType](js-apis-inner-application-accessibilityExtensionContext.md#windowtype)二级模块,表示窗口的类型。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**示例:**
```ts
import { WindowType } from '@kit.AccessibilityKit';
let windowType: WindowType;
```
## Rect10+
[Rect](js-apis-inner-application-accessibilityExtensionContext.md#rect)二级模块,表示矩形区域。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**示例:**
```ts
import { Rect } from '@kit.AccessibilityKit';
let rect: Rect;
```
## GestureType
手势事件类型。
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
| 名称 | 类型 | 描述 |
| ------------- | ------------- | ------------------- |
| left | string | 表示向左的手势。 |
| leftThenRight | string | 表示先向左再向右的手势。 |
| leftThenUp | string | 表示先向左再向上的手势。 |
| leftThenDown | string | 表示先向左再向下的手势。 |
| right | string | 表示向右的手势。 |
| rightThenLeft | string | 表示先向右再向左的手势。 |
| rightThenUp | string | 表示先向右再向上的手势。 |
| rightThenDown | string | 表示先向右再向下的手势。 |
| up | string | 表示向上的手势。 |
| upThenLeft | string | 表示先向上再向左的手势。 |
| upThenRight | string | 表示先向上再向右的手势。 |
| upThenDown | string | 表示先向上再向下的手势。 |
| down | string | 表示向下的手势。 |
| downThenLeft | string | 表示先向下再向左的手势。 |
| downThenRight | string | 表示先向下再向右的手势。 |
| downThenUp | string | 表示先向下再向上的手势。 |
| twoFingerSingleTap11+ | string | 表示双指单击的手势。 |
| twoFingerDoubleTap11+ | string | 表示双指双击的手势。 |
| twoFingerDoubleTapAndHold11+ | string | 表示双指双击长按的手势。 |
| twoFingerTripleTap11+ | string | 表示双指三击的手势。 |
| twoFingerTripleTapAndHold11+ | string | 表示双指三击长按的手势。 |
| threeFingerSingleTap11+ | string | 表示三指单击的手势。 |
| threeFingerDoubleTap11+ | string | 表示三指双击的手势。 |
| threeFingerDoubleTapAndHold11+ | string | 表示三指双击长按的手势。 |
| threeFingerTripleTap11+ | string | 表示三指三击的手势。 |
| threeFingerTripleTapAndHold11+ | string | 表示三指三击长按的手势。 |
| fourFingerSingleTap11+ | string | 表示四指单击的手势。 |
| fourFingerDoubleTap11+ | string | 表示四指双击的手势。 |
| fourFingerDoubleTapAndHold11+ | string | 表示四指双击长按的手势。 |
| fourFingerTripleTap11+ | string | 表示四指三击的手势。 |
| fourFingerTripleTapAndHold11+ | string | 表示四指三击长按的手势。 |
| threeFingerSwipeUp11+ | string | 表示三指向上滑动的手势。 |
| threeFingerSwipeDown11+ | string | 表示三指向下滑动的手势。 |
| threeFingerSwipeLeft11+ | string | 表示三指向左滑动的手势。 |
| threeFingerSwipeRight11+ | string | 表示三指向右滑动的手势。 |
| fourFingerSwipeUp11+ | string | 表示四指向上滑动的手势。 |
| fourFingerSwipeDown11+ | string | 表示四指向下滑动的手势。 |
| fourFingerSwipeLeft11+ | string | 表示四指向左滑动的手势。 |
| fourFingerSwipeRight11+ | string | 表示四指向右滑动的手势。 |
## PageUpdateType
type PageUpdateType = 'pageContentUpdate' | 'pageStateUpdate'
页面刷新类型。
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
| 类型 | 说明 |
| ----------------- | ---------------- |
| 'pageContentUpdate' | 表示页面内容刷新。 |
| 'pageStateUpdate' | 表示页面内容刷新。 |
## TouchGuideType
TouchGuideType = 'touchBegin' | 'touchEnd'
触摸浏览事件类型。
**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core
| 类型 | 说明 |
| ---------- | ------------------- |
| 'touchBegin' | 表示触摸浏览时开始触摸。 |
| 'touchEnd' | 表示触摸浏览时结束触摸。 |
## AccessibilityExtensionAbility.onConnect(deprecated)
onConnect(): void;
用户启用AccessibilityExtensionAbility时,系统服务完成连接后,回调此接口,可以该方法中执行初始化业务逻辑操作。该方法可以选择性重写。
> **说明:**
>
> 从API version 12开始废弃。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**示例:**
```ts
import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
onConnect(): void {
console.log('AxExtensionAbility onConnect');
}
}
```
## AccessibilityExtensionAbility.onDisconnect(deprecated)
onDisconnect(): void;
用户停用AccessibilityExtensionAbility时,系统服务完成断开连接后,回调此接口,可以该方法中执行资源回收退出业务逻辑操作。该方法可以选择性重写。
> **说明:**
>
> 从API version 12开始废弃。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**示例:**
```ts
import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
onDisconnect(): void {
console.log('AxExtensionAbility onDisconnect');
}
}
```
## AccessibilityExtensionAbility.onAccessibilityEvent(deprecated)
onAccessibilityEvent(event: AccessibilityEvent): void;
在关注的应用及事件类型对应的事件发生时回调此接口,可以在该方法中根据事件信息进行业务逻辑处理。一般情况下需要重写该方法完成业务。
> **说明:**
>
> 从API version 12开始废弃。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ---------------------------------------- | ---- | --------------- |
| event | [AccessibilityEvent](#accessibilityevent) | 是 | 无障碍事件回调函数。无返回值。 |
**示例:**
```ts
import { AccessibilityExtensionAbility, AccessibilityEvent } from '@kit.AccessibilityKit';
class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
onAccessibilityEvent(event: AccessibilityEvent): void {
console.log('AxExtensionAbility onAccessibilityEvent');
if (event.eventType === 'click') {
console.log('AxExtensionAbility onAccessibilityEvent: click');
}
}
}
```
## AccessibilityExtensionAbility.onKeyEvent(deprecated)
onKeyEvent(keyEvent: KeyEvent): boolean;
在物理按键按下时回调此方法,可以在该方法中根据业务判断是否对事件进行拦截。
> **说明:**
>
> 从API version 12开始废弃。
**系统能力**:SystemCapability.BarrierFree.Accessibility.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- |--------------------------------------------------| ---- | ----------------------- |
| keyEvent | [KeyEvent](../apis-input-kit/js-apis-keyevent.md#keyevent) | 是 | 按键事件回调函数。返回true表示拦截此按键。 |
**示例:**
```ts
import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit';
import { KeyEvent } from '@kit.InputKit';
class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
onKeyEvent(keyEvent: KeyEvent): boolean {
console.log('AxExtensionAbility onKeyEvent');
if (keyEvent.key.code === 16) {
console.log('AxExtensionAbility onKeyEvent: intercept 16');
return true;
}
return false;
}
}
```