# @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; } } ```