# Accessibility
The **Accessibility** module implements the accessibility functions, including obtaining the accessibility application list, accessibility application enabled status, and captions configuration.
> **NOTE**
>
> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## Modules to Import
```typescript
import accessibility from '@ohos.accessibility';
```
## AbilityState
Enumerates the states of an accessibility application.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name| Description|
| -------- | -------- |
| enable | The accessibility application is enabled.|
| disable | The accessibility application is disabled.|
| install | The accessibility application has been installed.|
## AbilityType
Enumerates the types of accessibility applications.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name| Description|
| -------- | -------- |
| audible | The accessibility application provides audible feedback.|
| generic | The accessibility application provides generic feedback.|
| haptic | The accessibility application provides haptic feedback.|
| spoken | The accessibility application provides spoken feedback.|
| visual | The accessibility application provides visual feedback.|
| all9+ | All the preceding types.|
## AccessibilityAbilityInfo
Provides information about an accessibility application.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
### Attributes
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| id | number | Yes| No| Ability ID.|
| name | string | Yes| No| Ability name.|
| bundleName | string | Yes| No| Bundle name.|
| targetBundleNames9+ | Array<string> | Yes| No| Name of the target bundle.|
| abilityTypes | Array<[AbilityType](#abilitytype)> | Yes| No| Accessibility application type.|
| capabilities | Array<[Capability](#capability)> | Yes| No| Capabilities list of the accessibility application.|
| description | string | Yes| No| Description of the accessibility application.|
| eventTypes | Array<[EventType](#eventtype)> | Yes| No| List of events that the accessibility application focuses on.|
## Action
Describes the target action supported by an accessibility application.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name| Description|
| -------- | -------- |
| click | Clicking.|
| longClick | Long pressing.|
| scrollForward | Scrolling forward.|
| scrollBackward | Scrolling backward.|
| focus | Obtaining focus.|
| clearFocus | Clearing focus.|
| clearSelection | Clearing selection.|
| accessibilityFocus | Obtaining the accessibility focus.|
| clearAccessibilityFocus | Clearing the accessibility focus.|
| cut | Cut.|
| copy | Copy.|
| paste | Paste.|
| select | Select.|
| setText | Setting the text.|
| delete | Delete.|
| setSelection | Setting the selection.|
## Capability
Enumerates the capabilities of an auxiliary application.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name| Description|
| -------- | -------- |
| retrieve | Capability to retrieve the window content.|
| touchGuide | Capability of touch guide mode.|
| keyEventObserver | Capability to filter key events.|
| zoom | Capability to control the display zoom level.|
| gesture | Capability to perform gesture actions.|
## CaptionsFontEdgeType8+
Enumerates the font edge types of captions.
**System capability**: SystemCapability.BarrierFree.Accessibility.Hearing
| Name| Description|
| -------- | -------- |
| none | No effect.|
| raised | Raised effect.|
| depressed | Depressed effect.|
| uniform | Uniform effect.|
| dropShadow | Drop shadow effect.|
## CaptionsFontFamily8+
Enumerates the font families of captions.
**System capability**: SystemCapability.BarrierFree.Accessibility.Hearing
| Name| Description|
| -------- | -------- |
| default | Default font family.|
| monospacedSerif | Monospaced Serif fonts, which use the same width for each character.|
| serif | Serif fonts.|
| monospacedSansSerif | Monospaced Sans Serif fonts, which use the same width for each character.|
| sansSerif | Sans Serif fonts.|
| casual | Casual fonts.|
| cursive | Cursive fonts.|
| smallCapitals | Small caps fonts.|
## CaptionsStyle8+
Describes the style of captions.
**System capability**: SystemCapability.BarrierFree.Accessibility.Hearing
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| fontFamily | [CaptionsFontFamily](#captionsfontfamily8) | Yes| No| Font family of captions.|
| fontScale | number | Yes| No| Font scale of captions.|
| fontColor | number \| string | Yes| No| Font color of captions.|
| fontEdgeType | [CaptionsFontEdgeType](#captionsfontedgetype8) | Yes| No| Font edge type of captions.|
| backgroundColor | number \| string | Yes| No| Background color of captions.|
| windowColor | number \| string | Yes| No| Window color of captions.|
## CaptionsManager8+
Implements configuration management for captions.
**System capability**: SystemCapability.BarrierFree.Accessibility.Hearing
### Attributes
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| enabled | boolean | Yes| No| Whether to enable captions configuration.|
| style | [CaptionsStyle](#captionsstyle8) | Yes| No| Style of captions.|
In the following API examples, you must first use the [accessibility.getCaptionsManager()](#accessibilitygetcaptionsmanager8) API to obtain a **captionsManager** instance, and then call the methods using the obtained instance.
### on('enableChange')
on(type: 'enableChange', callback: Callback<boolean>): void;
Enables listening for the enabled status changes of captions configuration.
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| type | string | Yes| Type of the event to listen for, which is set to **enableChange** in this API.|
| callback | Callback<boolean> | Yes| Callback invoked when the enabled status of captions configuration changes.|
- **Example**
```typescript
captionsManager.on('enableChange',(data) => {
console.info('success data:subscribeStateObserver : ' + JSON.stringify(data))
})
```
### on('styleChange')
on(type: 'styleChange', callback: Callback<CaptionsStyle>): void;
Enables listening for captions style changes.
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| type | string | Yes| Type of the event to listen for, which is set to **styleChange** in this API.|
| callback | Callback<[CaptionsStyle](#captionsstyle8)> | Yes| Callback invoked when the style of captions changes.|
- **Example**
```typescript
captionsManager.on('styleChange',(data) => {
console.info('success data:subscribeStateObserver : ' + JSON.stringify(data))
})
```
### off('enableChange')
off(type: 'enableChange', callback?: Callback<boolean>): void;
Disables listening for the enabled status changes of captions configuration.
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| type | string | Yes| Type of the event to listen for, which is set to **enableChange** in this API.|
| callback | Callback<boolean> | No| Callback invoked when the enabled status of captions configuration changes.|
- **Example**
```typescript
captionsManager.off('enableChange')
```
### off('styleChange')
off(type: 'styleChange', callback?: Callback<CaptionsStyle>): void;
Disables listening for captions style changes.
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| type | string | Yes| Type of the event to listen for, which is set to **styleChange** in this API.|
| callback | Callback<[CaptionsStyle](#captionsstyle8)> | No| Callback invoked when the style of captions changes.|
- **Example**
```typescript
captionsManager.off('styleChange')
```
## EventInfo
Describes a GUI change event.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
### Attributes
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| type | [EventType](#eventtype) | Yes| Yes| Accessibility event type.|
| windowUpdateType | [WindowUpdateType](#windowupdatetype) | Yes| Yes| Window update type.|
| bundleName | string | Yes| Yes| Target application name.|
| componentType | string | Yes| Yes| Type of the event source component, for example, button or chart.|
| pageId | number | Yes| Yes| Page ID of the event source.|
| description | string | Yes| Yes| Event description.|
| triggerAction | [Action](#action) | Yes| Yes| Action that triggers the event.|
| textMoveUnit | [TextMoveUnit](#textmoveunit) | Yes| Yes| Text movement unit.|
| contents | Array<string> | Yes| Yes| Array of contents.|
| lastContent | string | Yes| Yes| Latest content.|
| beginIndex | number | Yes| Yes| Sequence number of the first item displayed on the page.|
| currentIndex | number | Yes| Yes| Sequence number of the current item.|
| endIndex | number | Yes| Yes| Sequence number of the last item displayed on the page.|
| itemCount | number | Yes| Yes| Total number of items.|
### constructor
constructor(jsonObject)
Implements a constructor.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| jsonObject | string | Yes| JSON string required for creating an object.|
- **Example**
```typescript
let eventInfo = new accessibility.EventInfo({"type":"click","bundleName":"com.example.MyApplication","triggerAction":"click"})
```
## EventType
Enumerates accessibility event types.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name| Description|
| -------- | -------- |
| click | Event of clicking a component.|
| longClick | Event of long-pressing a component.|
| select | Event of selecting a component.|
| focus | Event indicating that the component obtains the focus.|
| textUpdate | Event indicating that the component text has been updated.|
| hoverEnter | Event indicating that the hover enters a component.|
| hoverExit | Event indicating that the hover exits a component.|
| scroll | Event of the scroll view.|
| textSelectionUpdate | Event indicating that the selected text has been updated.|
| accessibilityFocus | Event indicating that the accessibility focus has been obtained.|
| accessibilityFocusClear | Event indicating that the accessibility focus has been cleared.|
## TextMoveUnit
Enumerates the movement units for traversing the node text.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name| Description|
| -------- | -------- |
| char | The movement unit for traversing the node text is by character.|
| word | The movement unit for traversing the node text is by word.|
| line | The movement unit for traversing the node text is by line.|
| page | The movement unit for traversing the node text is by page.|
| paragraph | The movement unit for traversing the node text is by paragraph.|
## WindowUpdateType
Enumerates window update types.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
| Name| Description|
| -------- | -------- |
| add | Window adding.|
| remove | Window deletion.|
| bounds | Window boundary change.|
| active | Window activity change.|
| focus | Window focus change.|
## accessibility.getAbilityLists
getAbilityLists(abilityType: AbilityType, stateType: AbilityState): Promise<Array<AccessibilityAbilityInfo>>
Obtains the accessibility application list. This API uses a promise to return the result.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| abilityType | [AbilityType](#abilitytype) | Yes| Accessibility application type.|
| stateType | [AbilityState](#abilitystate) | Yes| Accessibility application status.|
- **Return value**
| Type| Description|
| -------- | -------- |
| Promise<Array<[AccessibilityAbilityInfo](#accessibilityabilityinfo)>> | Promise used to return the accessibility application list.|
- **Example**
```typescript
accessibility.getAbilityLists("spoken", "enable")
.then((data) => {
console.info('success data:getAbilityList1 : ' + JSON.stringify(data));
for (let item of data) {
console.info(item.id);
console.info(item.name);
console.info(item.description);
console.info(item.abilityTypes);
console.info(item.eventTypes);
console.info(item.capabilities);
console.info(item.packageName);
console.info(item.filterBundleNames);
console.info(item.bundleName);
}
}).catch((error) => {
console.error('failed to getAbilityList1 because ' + JSON.stringify(error));
})
```
## accessibility.getAbilityLists
getAbilityLists(abilityType: AbilityType, stateType: AbilityState,callback: AsyncCallback<Array<AccessibilityAbilityInfo>>): void
Obtains the accessibility application list. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| abilityType | [AbilityType](#abilitytype) | Yes| Accessibility application type.|
| stateType | [AbilityState](#abilitystate) | Yes| Accessibility application status.|
| callback | AsyncCallback<Array<[AccessibilityAbilityInfo](#accessibilityabilityinfo)>> | Yes| Callback used to return the accessibility application list.|
- **Example**
```typescript
accessibility.getAbilityLists("visual", "enable", (err, data) => {
if (err) {
console.error('failed to getAbilityList2 because ' + JSON.stringify(err));
return;
}
console.info('success data:getAbilityList2 : ' + JSON.stringify(data));
for (let item of data) {
console.info(item.id);
console.info(item.name);
console.info(item.description);
console.info(item.abilityTypes);
console.info(item.eventTypes);
console.info(item.capabilities);
console.info(item.packageName);
console.info(item.filterBundleNames);
console.info(item.bundleName);
}
})
```
## accessibility.getCaptionsManager8+
getCaptionsManager(): CaptionsManager
Obtains the captions configuration.
**System capability**: SystemCapability.BarrierFree.Accessibility.Hearing
- **Return value**
| Type| Description|
| -------- | -------- |
| [CaptionsManager](#captionsmanager8) | Captions configuration.|
- **Example**
```typescript
captionsManager = accessibility.getCaptionsManager()
```
## accessibility.on('accessibilityStateChange' | 'touchGuideStateChange')
on(type: 'accessibilityStateChange' | 'touchGuideStateChange', callback: Callback<boolean>): void
Enables listening for the enabled status changes of the accessibility application or touch guide mode.
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| type | string | Yes| Type of the event to listen for.
- **'accessibilityStateChange'** means to listen for the enabled status changes of the accessibility application.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
- **'touchGuideStateChange'** means to listen for the enabled status changes of the touch guide mode.
**System capability**: SystemCapability.BarrierFree.Accessibility.Vision|
| callback | Callback\ | Yes| Callback invoked when the enabled status of captions configuration changes.|
- **Example**
```typescript
accessibility.on('accessibilityStateChange',(data) => {
console.info('success data:subscribeStateObserver : ' + JSON.stringify(data))
})
```
## accessibility.off('accessibilityStateChange' | 'touchGuideStateChange')
off(type: 'accessibilityStateChange ' | 'touchGuideStateChange', callback?: Callback<boolean>): void
Disables listening for the enabled status changes of the accessibility application or touch guide mode.
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| type | string | No| Type of the event to listen for.
- **'accessibilityStateChange'** means to listen for the enabled status changes of the accessibility application.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
- **'touchGuideStateChange'** means to listen for the enabled status changes of the touch guide mode.
**System capability**: SystemCapability.BarrierFree.Accessibility.Vision|
| callback | Callback<boolean> | No| Callback invoked when the enabled status changes.|
- **Example**
```typescript
accessibility.off('accessibilityStateChange',(data) => {
console.info('success data:unSubscribeStateObserver : ' + JSON.stringify(data))
})
```
## accessibility.isOpenAccessibility
isOpenAccessibility(): Promise<boolean>
Checks whether accessibility is enabled. This API uses a promise to return the result.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
- **Return value**
| Type| Description|
| -------- | -------- |
| Promise<boolean> | Returns **true** if accessibility is enabled; returns **false** otherwise.|
- **Example**
```typescript
accessibility.isOpenAccessibility()
.then((data) => {
console.info('success data:isOpenAccessibility : ' + JSON.stringify(data))
}).catch((error) => {
console.error('failed to isOpenAccessibility because ' + JSON.stringify(error));
})
```
## accessibility.isOpenAccessibility
isOpenAccessibility(callback: AsyncCallback<boolean>): void
Checks whether accessibility is enabled. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback<boolean> | Yes| Callback used to return the result. Returns **true** if accessibility is enabled; returns **false** otherwise.|
- **Example**
```typescript
accessibility.isOpenAccessibility((err, data) => {
if (err) {
console.error('failed to isOpenAccessibility because ' + JSON.stringify(err));
return;
}
console.info('success data:isOpenAccessibility : ' + JSON.stringify(data))
})
```
## accessibility.isOpenTouchGuide
isOpenTouchGuide(): Promise<boolean>
Checks whether touch guide mode is enabled. This API uses a promise to return the result.
**System capability**: SystemCapability.BarrierFree.Accessibility.Vision
- **Return value**
| Type| Description|
| -------- | -------- |
| Promise<boolean> | Returns **true** if touch guide mode is enabled; returns **false** otherwise.|
- **Example**
```typescript
accessibility.isOpenTouchGuide()
.then((data) => {
console.info('success data:isOpenTouchGuide : ' + JSON.stringify(data))
}).catch((error) => {
console.error('failed to isOpenTouchGuide because ' + JSON.stringify(error));
})
```
## accessibility.isOpenTouchGuide
isOpenTouchGuide(callback: AsyncCallback<boolean>): void
Checks whether touch guide mode is enabled. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.BarrierFree.Accessibility.Vision
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback<boolean> | Yes| Callback used to return the result. Returns **true** if touch guide mode is enabled; returns **false** otherwise.|
- **Example**
```typescript
accessibility.isOpenTouchGuide((err, data) => {
if (err) {
console.error('failed to isOpenTouchGuide because ' + JSON.stringify(err));
return;
}
console.info('success data:isOpenTouchGuide : ' + JSON.stringify(data))
})
```
## accessibility.sendEvent
sendEvent(event: EventInfo): Promise<void>
Sends an accessibility event. This API uses a promise to return the result.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| event | [EventInfo](#eventinfo) | Yes| Accessibility event.|
- **Return value**
| Type| Description|
| -------- | -------- |
| Promise<void> | Promise used to return the result. Returns data if the accessibility event is sent successfully; returns an error otherwise.|
- **Example**
```typescript
accessibility.sendEvent(this.eventInfo)
.then((data) => {
console.info('success data:sendEvent : ' + JSON.stringify(data))
}).catch((error) => {
console.error('failed to sendEvent because ' + JSON.stringify(error));
})
```
## accessibility.sendEvent
sendEvent(event: EventInfo, callback: AsyncCallback<void>): void
Sends an accessibility event. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.BarrierFree.Accessibility.Core
- **Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| event | [EventInfo](#eventinfo) | Yes| Accessibility event.|
| callback | AsyncCallback<void> | Yes| Callback used to return the result. Returns data if the accessibility event is sent successfully; returns an error otherwise.|
- **Example**
```typescript
accessibility.sendEvent(this.eventInfo,(err, data) => {
if (err) {
console.error('failed to sendEvent because ' + JSON.stringify(err));
return;
}
console.info('success data:sendEvent : ' + JSON.stringify(data))
})
```