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