1# @ohos.application.AccessibilityExtensionAbility (辅助功能扩展能力) 2 3AccessibilityExtensionAbility基于ExtensionAbility框架,提供辅助功能业务的能力。 4 5> **说明:** 6> 7> - 本模块首批接口从API version 9开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```ts 12import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit'; 13``` 14 15### 属性 16 17**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 18 19| 名称 | 类型 | 可读 | 可写 | 说明 | 20| ------- |---------------------------------------------------------------------------------------------| ---- | ---- | ------------ | 21| context | [AccessibilityExtensionContext](js-apis-inner-application-accessibilityExtensionContext.md) | 是 | 否 | 表示辅助扩展能力上下文。 | 22 23## AccessibilityEvent 24 25辅助事件信息。 26 27**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core 28 29### 属性 30 31| 名称 | 类型 | 可读 | 可写 | 说明 | 32| --------- |----------------------------------------------------------------|------------------------------------------------------------------------------|------------------------------------| ------------------------------------------------------------ | 33| eventType | [accessibility.EventType](js-apis-accessibility.md#eventtype) \| [accessibility.WindowUpdateType](js-apis-accessibility.md#windowupdatetype) \| [TouchGuideType](#touchguidetype) \| [GestureType](#gesturetype) \| [PageUpdateType](#pageupdatetype) | 是 | 否 | 具体事件类型。<br />EventType:无障碍事件类型;<br />WindowUpdateType:窗口变化类型;TouchGuideType:触摸浏览事件类型;<br />GestureType:手势事件类型;<br />PageUpdateType:页面刷新类型。 | 34| target | [AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9) | 是 | 否 | 发生事件的目标组件。 | 35| timeStamp | number | 是 | 否 | 事件时间戳,单位是毫秒。 | 36| elementId<sup>12+</sup> | number | 是 | 否 | 主动聚焦的组件ID。 | 37| textAnnouncedForAccessibility<sup>12+</sup> | string | 是 | 否 | 主动播报的内容。 | 38 39 40## AccessibilityElement<sup>10+</sup> 41 42[AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9)二级模块 43 44**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 45 46**示例:** 47 48```ts 49import { AccessibilityElement } from '@kit.AccessibilityKit'; 50 51let accessibilityElement: AccessibilityElement; 52``` 53 54## ElementAttributeValues<sup>10+</sup> 55 56[ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues)二级模块 57 58**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 59 60**示例:** 61 62```ts 63import { ElementAttributeValues } from '@kit.AccessibilityKit'; 64 65let elementAttributeValues: ElementAttributeValues; 66``` 67 68## FocusDirection<sup>10+</sup> 69 70[FocusDirection](js-apis-inner-application-accessibilityExtensionContext.md#focusdirection)二级模块,表示查询下一焦点元素的方向。 71 72**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 73 74**示例:** 75 76```ts 77import { FocusDirection } from '@kit.AccessibilityKit'; 78 79let focusDirection: FocusDirection; 80``` 81 82## ElementAttributeKeys<sup>10+</sup> 83 84**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 85 86| 名称 | 类型 | 可读 | 可写 | 说明 | 87| ------- |----------------------------------------------------------------------------------------------------------------------| ---- | ---- |----------------------------------------------------| 88| ElementAttributeKeys | keyof [ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues) | 是 | 否 | 表示ElementAttributeValues的key。 | 89 90 91**示例:** 92 93```ts 94import { ElementAttributeKeys } from '@kit.AccessibilityKit'; 95 96let elementAttributeKeys: ElementAttributeKeys; 97``` 98 99## FocusType<sup>10+</sup> 100 101[FocusType](js-apis-inner-application-accessibilityExtensionContext.md#focustype)二级模块,表示查询焦点元素的类型。 102 103**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 104 105**示例:** 106 107```ts 108import { FocusType } from '@kit.AccessibilityKit'; 109 110let focusType: FocusType; 111``` 112 113## WindowType <sup>10+</sup> 114 115[WindowType](js-apis-inner-application-accessibilityExtensionContext.md#windowtype)二级模块,表示窗口的类型。 116 117**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 118 119**示例:** 120 121```ts 122import { WindowType } from '@kit.AccessibilityKit'; 123 124let windowType: WindowType; 125``` 126 127## Rect<sup>10+</sup> 128 129[Rect](js-apis-inner-application-accessibilityExtensionContext.md#rect)二级模块,表示矩形区域。 130 131**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 132 133**示例:** 134 135```ts 136import { Rect } from '@kit.AccessibilityKit'; 137 138let rect: Rect; 139``` 140 141## GestureType 142 143手势事件类型。 144 145**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core 146 147| 名称 | 类型 | 描述 | 148| ------------- | ------------- | ------------------- | 149| left | string | 表示向左的手势。 | 150| leftThenRight | string | 表示先向左再向右的手势。 | 151| leftThenUp | string | 表示先向左再向上的手势。 | 152| leftThenDown | string | 表示先向左再向下的手势。 | 153| right | string | 表示向右的手势。 | 154| rightThenLeft | string | 表示先向右再向左的手势。 | 155| rightThenUp | string | 表示先向右再向上的手势。 | 156| rightThenDown | string | 表示先向右再向下的手势。 | 157| up | string | 表示向上的手势。 | 158| upThenLeft | string | 表示先向上再向左的手势。 | 159| upThenRight | string | 表示先向上再向右的手势。 | 160| upThenDown | string | 表示先向上再向下的手势。 | 161| down | string | 表示向下的手势。 | 162| downThenLeft | string | 表示先向下再向左的手势。 | 163| downThenRight | string | 表示先向下再向右的手势。 | 164| downThenUp | string | 表示先向下再向上的手势。 | 165| twoFingerSingleTap<sup>11+</sup> | string | 表示双指单击的手势。 | 166| twoFingerDoubleTap<sup>11+</sup> | string | 表示双指双击的手势。 | 167| twoFingerDoubleTapAndHold<sup>11+</sup> | string | 表示双指双击长按的手势。 | 168| twoFingerTripleTap<sup>11+</sup> | string | 表示双指三击的手势。 | 169| twoFingerTripleTapAndHold<sup>11+</sup> | string | 表示双指三击长按的手势。 | 170| threeFingerSingleTap<sup>11+</sup> | string | 表示三指单击的手势。 | 171| threeFingerDoubleTap<sup>11+</sup> | string | 表示三指双击的手势。 | 172| threeFingerDoubleTapAndHold<sup>11+</sup> | string | 表示三指双击长按的手势。 | 173| threeFingerTripleTap<sup>11+</sup> | string | 表示三指三击的手势。 | 174| threeFingerTripleTapAndHold<sup>11+</sup> | string | 表示三指三击长按的手势。 | 175| fourFingerSingleTap<sup>11+</sup> | string | 表示四指单击的手势。 | 176| fourFingerDoubleTap<sup>11+</sup> | string | 表示四指双击的手势。 | 177| fourFingerDoubleTapAndHold<sup>11+</sup> | string | 表示四指双击长按的手势。 | 178| fourFingerTripleTap<sup>11+</sup> | string | 表示四指三击的手势。 | 179| fourFingerTripleTapAndHold<sup>11+</sup> | string | 表示四指三击长按的手势。 | 180| threeFingerSwipeUp<sup>11+</sup> | string | 表示三指向上滑动的手势。 | 181| threeFingerSwipeDown<sup>11+</sup> | string | 表示三指向下滑动的手势。 | 182| threeFingerSwipeLeft<sup>11+</sup> | string | 表示三指向左滑动的手势。 | 183| threeFingerSwipeRight<sup>11+</sup> | string | 表示三指向右滑动的手势。 | 184| fourFingerSwipeUp<sup>11+</sup> | string | 表示四指向上滑动的手势。 | 185| fourFingerSwipeDown<sup>11+</sup> | string | 表示四指向下滑动的手势。 | 186| fourFingerSwipeLeft<sup>11+</sup> | string | 表示四指向左滑动的手势。 | 187| fourFingerSwipeRight<sup>11+</sup> | string | 表示四指向右滑动的手势。 | 188 189## PageUpdateType 190 191type PageUpdateType = 'pageContentUpdate' | 'pageStateUpdate' 192 193页面刷新类型。 194 195**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core 196 197| 类型 | 说明 | 198| ----------------- | ---------------- | 199| 'pageContentUpdate' | 表示页面内容刷新。 | 200| 'pageStateUpdate' | 表示页面内容刷新。 | 201 202## TouchGuideType 203 204TouchGuideType = 'touchBegin' | 'touchEnd' 205 206触摸浏览事件类型。 207 208**系统能力**:以下各项对应的系统能力均为 SystemCapability.BarrierFree.Accessibility.Core 209 210| 类型 | 说明 | 211| ---------- | ------------------- | 212| 'touchBegin' | 表示触摸浏览时开始触摸。 | 213| 'touchEnd' | 表示触摸浏览时结束触摸。 | 214 215## AccessibilityExtensionAbility.onConnect<sup>(deprecated)</sup> 216 217onConnect(): void; 218 219用户启用AccessibilityExtensionAbility时,系统服务完成连接后,回调此接口,可以该方法中执行初始化业务逻辑操作。该方法可以选择性重写。 220 221> **说明:** 222> 223> 从API version 12开始废弃。 224 225**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 226 227**示例:** 228 229```ts 230import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit'; 231 232class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 233 onConnect(): void { 234 console.log('AxExtensionAbility onConnect'); 235 } 236} 237``` 238 239## AccessibilityExtensionAbility.onDisconnect<sup>(deprecated)</sup> 240 241onDisconnect(): void; 242 243用户停用AccessibilityExtensionAbility时,系统服务完成断开连接后,回调此接口,可以该方法中执行资源回收退出业务逻辑操作。该方法可以选择性重写。 244 245> **说明:** 246> 247> 从API version 12开始废弃。 248 249**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 250 251**示例:** 252 253```ts 254import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit'; 255 256class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 257 onDisconnect(): void { 258 console.log('AxExtensionAbility onDisconnect'); 259 } 260} 261``` 262 263## AccessibilityExtensionAbility.onAccessibilityEvent<sup>(deprecated)</sup> 264 265onAccessibilityEvent(event: AccessibilityEvent): void; 266 267在关注的应用及事件类型对应的事件发生时回调此接口,可以在该方法中根据事件信息进行业务逻辑处理。一般情况下需要重写该方法完成业务。 268 269> **说明:** 270> 271> 从API version 12开始废弃。 272 273**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 274 275**参数:** 276 277| 参数名 | 类型 | 必填 | 说明 | 278| ----- | ---------------------------------------- | ---- | --------------- | 279| event | [AccessibilityEvent](#accessibilityevent) | 是 | 无障碍事件回调函数。无返回值。 | 280 281**示例:** 282 283```ts 284import { AccessibilityExtensionAbility, AccessibilityEvent } from '@kit.AccessibilityKit'; 285 286class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 287 onAccessibilityEvent(event: AccessibilityEvent): void { 288 console.log('AxExtensionAbility onAccessibilityEvent'); 289 if (event.eventType === 'click') { 290 console.log('AxExtensionAbility onAccessibilityEvent: click'); 291 } 292 } 293} 294``` 295 296## AccessibilityExtensionAbility.onKeyEvent<sup>(deprecated)</sup> 297 298onKeyEvent(keyEvent: KeyEvent): boolean; 299 300在物理按键按下时回调此方法,可以在该方法中根据业务判断是否对事件进行拦截。 301 302> **说明:** 303> 304> 从API version 12开始废弃。 305 306**系统能力**:SystemCapability.BarrierFree.Accessibility.Core 307 308**参数:** 309 310| 参数名 | 类型 | 必填 | 说明 | 311| -------- |--------------------------------------------------| ---- | ----------------------- | 312| keyEvent | [KeyEvent](../apis-input-kit/js-apis-keyevent.md#keyevent) | 是 | 按键事件回调函数。返回true表示拦截此按键。 | 313 314**示例:** 315 316```ts 317import { AccessibilityExtensionAbility } from '@kit.AccessibilityKit'; 318import { KeyEvent } from '@kit.InputKit'; 319 320class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility { 321 onKeyEvent(keyEvent: KeyEvent): boolean { 322 console.log('AxExtensionAbility onKeyEvent'); 323 if (keyEvent.key.code === 16) { 324 console.log('AxExtensionAbility onKeyEvent: intercept 16'); 325 return true; 326 } 327 return false; 328 } 329} 330``` 331