# @ohos.application.AccessibilityExtensionAbility (AccessibilityExtensionAbility)
The **AccessibilityExtensionAbility** module provides accessibility extension capabilities based on the ExtensionAbility framework.
> **NOTE**
>
> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## Modules to Import
```ts
import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility';
```
### Attributes
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name | Type | Readable | Writable | Description |
| ------- | ---------------------------------------- | ---- | ---- | ------------ |
| context | [AccessibilityExtensionContext](js-apis-inner-application-accessibilityExtensionContext.md) | Yes | No | Context of the accessibility extension ability.|
## AccessibilityEvent
Defines an accessibility event.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
### Attributes
| Name | Type | Readable | Writable | Description |
| --------- | ------------------------------------------------------------ |------------------------------------------------------------------------------|------------------------------------| ------------------------------------------------------------ |
| eventType | [accessibility.EventType](js-apis-accessibility.md#eventtype) \| [accessibility.WindowUpdateType](js-apis-accessibility.md#windowupdatetype) \| [TouchGuideType](#touchguidetype) \| [GestureType](#gesturetype) \| [PageUpdateType](#pageupdatetype) | Yes | No | Event type.
**EventType**: accessibility event type.
**WindowUpdateType**: Window update type.
**TouchGuideType**: touch guide event type.
**GestureType**: gesture type.
**PageUpdateType**: page update type. This API is not supported yet.|
| target | [AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9) | Yes | No | Target component where the event occurs. |
| timeStamp | number | Yes | No | Timestamp of the event. |
## AccessibilityElement10+
Level-2 module of [AccessibilityElement](js-apis-inner-application-accessibilityExtensionContext.md#accessibilityelement9).
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
**Example**
```ts
import { AccessibilityElement } from '@ohos.application.AccessibilityExtensionAbility';
let accessibilityElement: AccessibilityElement;
```
## ElementAttributeValues10+
Level-2 module of [ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues).
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
**Example**
```ts
import { ElementAttributeValues } from '@ohos.application.AccessibilityExtensionAbility';
let elementAttributeValues: ElementAttributeValues;
```
## FocusDirection10+
Enumerates the focus directions. It is a level-2 module of [FocusDirection](js-apis-inner-application-accessibilityExtensionContext.md#focusdirection).
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
**Example**
```ts
import { FocusDirection } from '@ohos.application.AccessibilityExtensionAbility';
let focusDirection: FocusDirection;
```
## ElementAttributeKeys10+
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name | Type | Readable | Writable | Description |
| ------- |-------------------------------------------------------------------------------------------------------------------| ---- | ---- |----------------------------------------------------|
| ElementAttributeKeys | keyof [ElementAttributeValues](js-apis-inner-application-accessibilityExtensionContext.md#elementattributevalues) | Yes | No | Key of **ElementAttributeValues**.|
**Example**
```ts
import { ElementAttributeKeys } from '@ohos.application.AccessibilityExtensionAbility';
let elementAttributeKeys: ElementAttributeKeys;
```
## FocusType10+
Enumerates the focus types. It is a level-2 module of [FocusType](js-apis-inner-application-accessibilityExtensionContext.md#focustype).
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
**Example**
```ts
import { FocusType } from '@ohos.application.AccessibilityExtensionAbility';
let focusType: FocusType;
```
## WindowType 10+
Enumerates the window types. It is a level-2 module of [WindowType](js-apis-inner-application-accessibilityExtensionContext.md#windowtype).
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
**Example**
```ts
import { WindowType } from '@ohos.application.AccessibilityExtensionAbility';
let windowType: WindowType;
```
## Rect10+
Defines a rectangle. It is a level-2 module of [Rect](js-apis-inner-application-accessibilityExtensionContext.md#rect).
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
**Example**
```ts
import { Rect } from '@ohos.application.AccessibilityExtensionAbility';
let rect: Rect;
```
## GestureType
Enumerates gesture types.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name | Type | Description |
| ------------- | ------------- | ------------------- |
| left | string | Left gesture. |
| leftThenRight | string | Left-then-right gesture.|
| leftThenUp | string | Left-then-up gesture.|
| leftThenDown | string | Left-then-down gesture.|
| right | string | Right gesture. |
| rightThenLeft | string | Right-then-left gesture.|
| rightThenUp | string | Right-then-up gesture.|
| rightThenDown | string | Right-then-down gesture.|
| up | string | Up gesture. |
| upThenLeft | string | Up-then-left gesture.|
| upThenRight | string | Up-then-right gesture.|
| upThenDown | string | Up-then-down gesture.|
| down | string | Down gesture. |
| downThenLeft | string | Down-then-left gesture.|
| downThenRight | string | Down-then-right gesture.|
| downThenUp | string | Down-then-up gesture.|
| twoFingerSingleTap11+ | string | Two-finger tap gesture.|
| twoFingerDoubleTap11+ | string | Two-finger double-tap gesture.|
| twoFingerDoubleTapAndHold11+ | string | Two-finger double-tap and press-and-hold gesture.|
| twoFingerTripleTap11+ | string | Two-finger triple-tap gesture.|
| twoFingerTripleTapAndHold11+ | string | Two-finger triple-tap and press-and-hold gesture.|
| threeFingerSingleTap11+ | string | Three-finger tap gesture.|
| threeFingerDoubleTap11+ | string | Three-finger double-tap gesture.|
| threeFingerDoubleTapAndHold11+ | string | Three-finger double-tap and press-and-hold gesture.|
| threeFingerTripleTap11+ | string | Three-finger triple-tap gesture.|
| threeFingerTripleTapAndHold11+ | string | Three-finger triple-tap and press-and-hold gesture.|
| fourFingerSingleTap11+ | string | Four-finger tap gesture.|
| fourFingerDoubleTap11+ | string | Four-finger double-tap gesture.|
| fourFingerDoubleTapAndHold11+ | string | Four-finger double-tap and press-and-hold gesture.|
| fourFingerTripleTap11+ | string | Four-finger triple-tap gesture.|
| fourFingerTripleTapAndHold11+ | string | Four-finger triple-tap and press-and-hold gesture.|
| threeFingerSwipeUp11+ | string | Three-finger swipe-up gesture.|
| threeFingerSwipeDown11+ | string | Three-finger swipe-down gesture.|
| threeFingerSwipeLeft11+ | string | Three-finger swipe-left gesture.|
| threeFingerSwipeRight11+ | string | Three-finger swipe-right gesture.|
| fourFingerSwipeUp11+ | string | Four-finger swipe-up gesture.|
| fourFingerSwipeDown11+ | string | Four-finger swipe-down gesture.|
| fourFingerSwipeLeft11+ | string | Four-finger swipe-left gesture.|
| fourFingerSwipeRight11+ | string | Four-finger swipe-right gesture.|
## PageUpdateType
Enumerates the page update types. This API is not supported in the current version.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name | Type | Description |
| ----------------- | ----------------- | ---------------- |
| pageContentUpdate | string | Update of the page content.|
| pageStateUpdate | string | Update of the page status.|
## TouchGuideType
Enumerates the touch guide event types.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name | Type | Description |
| ---------- | ---------- | ------------------- |
| touchBegin | string | Start of touch in touch guide mode.|
| touchEnd | string | End of touch in touch guide mode.|
## AccessibilityExtensionAbility.onConnect
onConnect(): void;
Called when the **AccessibilityExtensionAbility** is enabled and connected to the system service. In this API, you can have the service logic initialized. This API can be overridden as required.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
**Example**
```ts
import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility';
class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
onConnect(): void {
console.log('AxExtensionAbility onConnect');
}
}
```
## AccessibilityExtensionAbility.onDisconnect
onDisconnect(): void;
Called when the **AccessibilityExtensionAbility** is disabled and disconnected from the system service. In this API, you can implement the service logic of resource release and exit. This API can be overridden as required.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
**Example**
```ts
import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility';
class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
onDisconnect(): void {
console.log('AxExtensionAbility onDisconnect');
}
}
```
## AccessibilityExtensionAbility.onAccessibilityEvent
onAccessibilityEvent(event: AccessibilityEvent): void;
Called when an event that matches the specified bundle and event type occurs. In this API, you can implement event-specific service logic. Generally, this API needs to be overridden.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
**Parameters**
| Name | Type | Mandatory | Description |
| ----- | ---------------------------------------- | ---- | --------------- |
| event | [AccessibilityEvent](#accessibilityevent) | Yes | Accessibility event. No value is returned.|
**Example**
```ts
import AccessibilityExtensionAbility , { AccessibilityEvent } from '@ohos.application.AccessibilityExtensionAbility';
class MyAccessibilityExtensionAbility extends AccessibilityExtensionAbility {
onAccessibilityEvent(event: AccessibilityEvent): void {
console.log('AxExtensionAbility onAccessibilityEvent');
if (event.eventType === 'click') {
console.log('AxExtensionAbility onAccessibilityEvent: click');
}
}
}
```
## AccessibilityExtensionAbility.onKeyEvent
onKeyEvent(keyEvent: KeyEvent): boolean;
Called when a physical key is pressed. In this API, you can determine whether to intercept an event based on the service.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | ---------------------------------------- | ---- | ----------------------- |
| keyEvent | [KeyEvent](js-apis-keyevent.md#keyevent) | Yes | Key event. If **true** is returned, the key is intercepted.|
**Example**
```ts
import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility';
import { KeyEvent } from '@ohos.multimodalInput.keyEvent';
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;
}
}
```