Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Inherited Constants](https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#inhconstants) \| [Fields](https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#lfields) \| [Ctors](https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#pubctors) \| [Methods](https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#inhmethods)

# AccessibilityNodeInfo.AccessibilityAction

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction "View this page in Kotlin") \|Java


`
public
static
final

class
AccessibilityNodeInfo.AccessibilityAction
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


implements

https://developer.android.com/reference/android/os/Parcelable


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction |

<br />

*** ** * ** ***

A class defining an action that can be performed on an `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo`.
Each action has a mandatory unique id and optional data.


There are three categories of actions:

- **Standard actions** - These are actions that are reported and handled by the standard UI widgets in the platform. For each standard action there is a static constant defined in this class, e.g. `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_FOCUS`. These actions will have `null` labels.
- **Custom actions action** - These are actions that are reported and handled by custom widgets. i.e. ones that are not part of the UI toolkit. For example, an application may define a custom action for clearing the user history.
- **Overridden standard actions** - These are actions that override standard actions to customize them. For example, an app may add a label to the standard `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_CLICK` action to indicate to the user that this action clears browsing history.

<br />


Actions are typically added to an `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo` by using
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#addAction(android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction)` within
`https://developer.android.com/reference/android/view/View#onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo)` and are performed
within `https://developer.android.com/reference/android/view/View#performAccessibilityAction(int,%20android.os.Bundle)`.


> [!NOTE]
> **Note:** Views which support these actions should invoke `https://developer.android.com/reference/android/view/View#setImportantForAccessibility(int)` with `https://developer.android.com/reference/android/view/View#IMPORTANT_FOR_ACCESSIBILITY_YES` to ensure an `https://developer.android.com/reference/android/accessibilityservice/AccessibilityService` can discover the set of supported actions.

<br />


> [!NOTE]
> **Note:** Use `https://developer.android.com/reference/androidx/core/view/ViewCompat.html#addAccessibilityAction(android.view.View,%20java.lang.CharSequence,%20androidx.core.view.accessibility.AccessibilityViewCommand)` to register an action directly on the view.

<br />

<br />

## Summary

| ### Inherited constants |
|---|
| From interface `https://developer.android.com/reference/android/os/Parcelable` |---|---| | `int` | `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` Descriptor bit used with `https://developer.android.com/reference/android/os/Parcelable#describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor. | | `int` | `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` Flag for use with `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`: the object being written is a return value, that is the result of a function such as "`Parcelable someFunction()`", "`void someFunction(out Parcelable)`", or "`void someFunction(inout Parcelable)`". | |

| ### Fields ||
|---|---|
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_ACCESSIBILITY_FOCUS` Action that gives accessibility focus to the node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_CLEAR_ACCESSIBILITY_FOCUS` Action that clears accessibility focus of the node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_CLEAR_FOCUS` Action that clears input focus of the node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_CLEAR_SELECTION` Action that deselects the node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_CLICK` Action that clicks on the node info. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_COLLAPSE` Action to collapse an expandable node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_CONTEXT_CLICK` Action that context clicks the node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_COPY` Action to copy the current selection to the clipboard. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_CUT` Action to cut the current selection and place it to the clipboard. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_DISMISS` Action to dismiss a dismissable node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_DRAG_CANCEL` Action to cancel a drag. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_DRAG_DROP` Action to trigger a drop of the content being dragged. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_DRAG_START` Action to start a drag. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_EXPAND` Action to expand an expandable node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_FOCUS` Action that gives input focus to the node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_HIDE_TOOLTIP` Action to hide a tooltip. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_IME_ENTER` Action to send an ime actionId which is from `https://developer.android.com/reference/android/view/inputmethod/EditorInfo#actionId`. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_LONG_CLICK` Action that long clicks on the node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_MOVE_WINDOW` Action to move a window to a new location. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_NEXT_AT_MOVEMENT_GRANULARITY` Action that requests to go to the next entity in this node's text at a given movement granularity. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_NEXT_HTML_ELEMENT` Action to move to the next HTML element of a given type. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_PAGE_DOWN` Action to move to the page below. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_PAGE_LEFT` Action to move to the page left. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_PAGE_RIGHT` Action to move to the page right. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_PAGE_UP` Action to move to the page above. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_PASTE` Action to paste the current clipboard content. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_PRESS_AND_HOLD` Action that presses and holds a node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY` Action that requests to go to the previous entity in this node's text at a given movement granularity. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_PREVIOUS_HTML_ELEMENT` Action to move to the previous HTML element of a given type. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_BACKWARD` Action to scroll the node content backward. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_DOWN` Action to scroll the node content down. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_FORWARD` Action to scroll the node content forward. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_IN_DIRECTION` Action that brings fully on screen the next node in the specified direction. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_LEFT` Action to scroll the node content left. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_RIGHT` Action to scroll the node content right. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_TO_POSITION` Action that scrolls the node to make the specified collection position visible on screen. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_UP` Action to scroll the node content up. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SELECT` Action that selects the node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SET_EXTENDED_SELECTION` Action to set the extended selection. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SET_PROGRESS` Action that sets progress between `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.RangeInfo#getMin()` and `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.RangeInfo#getMax()`. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SET_SELECTION` Action to set the selection. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SET_TEXT` Action that sets the text of the node. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SHOW_ON_SCREEN` Action that requests the node make its bounding rectangle visible on the screen, scrolling if necessary just enough. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SHOW_TEXT_SUGGESTIONS` Action to show suggestions for editable text. |
| ` public static final https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SHOW_TOOLTIP` Action to show a tooltip. |
| ` public static final https://developer.android.com/reference/android/os/Parcelable.Creator<https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction>` | `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#CREATOR` |

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#AccessibilityAction(int,%20java.lang.CharSequence)(int actionId, https://developer.android.com/reference/java/lang/CharSequence label) ` Creates a new AccessibilityAction. |

| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#describeContents()() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
| ` boolean` | ` https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object other) ` Indicates whether some other object is "equal to" this one. |
| ` int` | ` https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#getId()() ` Gets the id for this action. |
| ` https://developer.android.com/reference/java/lang/CharSequence` | ` https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#getLabel()() ` Gets the label for this action. |
| ` int` | ` https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#hashCode()() ` Returns a hash code value for the object. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#toString()() ` Returns a string representation of the object. |
| ` void` | ` https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel out, int flags) ` Write data into a parcel. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||
| From interface ` https://developer.android.com/reference/android/os/Parcelable ` |---|---| | ` abstract int` | ` https://developer.android.com/reference/android/os/Parcelable#describeContents()() ` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. | | ` abstract void` | ` https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)(https://developer.android.com/reference/android/os/Parcel dest, int flags) ` Flatten this object in to a Parcel. | ||

## Fields

### ACTION_ACCESSIBILITY_FOCUS

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_ACCESSIBILITY_FOCUS
```

Action that gives accessibility focus to the node.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_ACCESSIBILITY_FOCUSED` event
if successful. The node that is focused should return `true` for
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#isAccessibilityFocused()`.

This is intended to be used by screen readers to assist with user navigation. Apps
changing focus can confuse screen readers, so the resulting behavior can vary by device
and screen reader version.

This is distinct from `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_FOCUS`, which refers to system focus. System
focus is typically used to convey targets for keyboard navigation.

<br />

### ACTION_CLEAR_ACCESSIBILITY_FOCUS

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_ACCESSIBILITY_FOCUS
```

Action that clears accessibility focus of the node.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED` event if successful. The
node that is cleared should return `false` for
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#isAccessibilityFocused()`.

<br />

### ACTION_CLEAR_FOCUS

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_FOCUS
```

Action that clears input focus of the node.

The node that is cleared should return `false` for
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#isFocused()`.

<br />

### ACTION_CLEAR_SELECTION

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_SELECTION
```

Action that deselects the node.

<br />

**See also:**

- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SELECT`

### ACTION_CLICK

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLICK
```

Action that clicks on the node info.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_CLICKED` event. In the View system,
the default handling of this action when performed by a service is to call
`https://developer.android.com/reference/android/view/View#performClick()`, and setting a
`https://developer.android.com/reference/android/view/View#setOnClickListener(android.view.View.OnClickListener)` automatically adds this action.

`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#isClickable()` should return true if this action is available.

<br />

### ACTION_COLLAPSE

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_COLLAPSE
```

Action to collapse an expandable node.

<br />

### ACTION_CONTEXT_CLICK

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CONTEXT_CLICK
```

Action that context clicks the node.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_CONTEXT_CLICKED` event. In the View system,
the default handling of this action when performed by a service is to call
`https://developer.android.com/reference/android/view/View#performContextClick()`, and setting a
`https://developer.android.com/reference/android/view/View#setOnContextClickListener(android.view.View.OnContextClickListener)` automatically adds
this action.

A context click usually occurs from a mouse pointer right-click or a stylus button
press.

`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#isContextClickable()` should return true if this action is available.

<br />

### ACTION_COPY

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_COPY
```

Action to copy the current selection to the clipboard.

<br />

### ACTION_CUT

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CUT
```

Action to cut the current selection and place it to the clipboard.

<br />

### ACTION_DISMISS

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DISMISS
```

Action to dismiss a dismissable node.

<br />

### ACTION_DRAG_CANCEL

Added in [API level 32](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_CANCEL
```

Action to cancel a drag.


This action is added to the source that started a drag with `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_DRAG_START`.

<br />

<br />

**See also:**

- `https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#CONTENT_CHANGE_TYPE_DRAG_CANCELLED`

### ACTION_DRAG_DROP

Added in [API level 32](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_DROP
```

Action to trigger a drop of the content being dragged.


This action is added to potential drop targets if the source started a drag with
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_DRAG_START`. In View, these targets are Views that accepted
`https://developer.android.com/reference/android/view/DragEvent#ACTION_DRAG_STARTED` and have an
`https://developer.android.com/reference/android/view/View.OnDragListener`, and the drop occurs at the center location of the View's
window bounds.

<br />

<br />

**See also:**

- `https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#CONTENT_CHANGE_TYPE_DRAG_DROPPED`

### ACTION_DRAG_START

Added in [API level 32](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_START
```

Action to start a drag.


This action initiates a drag \& drop within the system. The source's dragged content is
prepared before the drag begins. In View, this action should prepare the arguments to
`https://developer.android.com/reference/android/view/View#startDragAndDrop(android.content.ClipData,%20android.view.View.DragShadowBuilder,%20java.lang.Object,%20int)` and then
call `https://developer.android.com/reference/android/view/View#startDragAndDrop(android.content.ClipData,%20android.view.View.DragShadowBuilder,%20java.lang.Object,%20int)` with
`https://developer.android.com/reference/android/view/View#DRAG_FLAG_ACCESSIBILITY_ACTION`. The equivalent should be performed for other
UI toolkits.

<br />

<br />

**See also:**

- `https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#CONTENT_CHANGE_TYPE_DRAG_STARTED`

### ACTION_EXPAND

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_EXPAND
```

Action to expand an expandable node.

<br />

### ACTION_FOCUS

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_FOCUS
```

Action that gives input focus to the node.

The focus request send an event of `https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_FOCUSED`
if successful. In the View system, this is handled by `https://developer.android.com/reference/android/view/View#requestFocus()`.

The node that is focused should return `true` for
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#isFocused()`.

See `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_ACCESSIBILITY_FOCUS` for the difference between system and
accessibility focus.

<br />

### ACTION_HIDE_TOOLTIP

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_HIDE_TOOLTIP
```

Action to hide a tooltip. A node should expose this action only for views that are
currently showing a tooltip.

<br />

### ACTION_IME_ENTER

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_IME_ENTER
```

Action to send an ime actionId which is from
`https://developer.android.com/reference/android/view/inputmethod/EditorInfo#actionId`. This ime actionId sets by
`https://developer.android.com/reference/android/widget/TextView#setImeActionLabel(java.lang.CharSequence,%20int)`, or it would be
`https://developer.android.com/reference/android/view/inputmethod/EditorInfo#IME_ACTION_UNSPECIFIED` if no specific
actionId has set. A node should expose this action only for views that are currently
with input focus and editable.

<br />

### ACTION_LONG_CLICK

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_LONG_CLICK
```

Action that long clicks on the node.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_LONG_CLICKED` event. In the View system,
the default handling of this action when performed by a service is to call
`https://developer.android.com/reference/android/view/View#performLongClick()`, and setting a
`https://developer.android.com/reference/android/view/View#setOnLongClickListener(android.view.View.OnLongClickListener)` automatically adds this
action.

`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#isLongClickable()` should return true if this action is available.

<br />

### ACTION_MOVE_WINDOW

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_MOVE_WINDOW
```

Action to move a window to a new location.


**Arguments:**
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_MOVE_WINDOW_X`
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_MOVE_WINDOW_Y`

<br />

### ACTION_NEXT_AT_MOVEMENT_GRANULARITY

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_NEXT_AT_MOVEMENT_GRANULARITY
```

Action that requests to go to the next entity in this node's text
at a given movement granularity. For example, move to the next character,
word, etc.


**Arguments:**
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT`,
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN`  

**Example:** Move to the previous character and do not extend selection.

```
`
   Bundle arguments = new Bundle();
   arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
           AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
   arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN,
           false);
   info.performAction(AccessibilityAction.ACTION_NEXT_AT_MOVEMENT_GRANULARITY.getId(),
           arguments);
 `
```

<br />

<br />

<br />

<br />

**See also:**

- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setMovementGranularities(int)`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#getMovementGranularities()`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#MOVEMENT_GRANULARITY_CHARACTER`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#MOVEMENT_GRANULARITY_WORD`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#MOVEMENT_GRANULARITY_LINE`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#MOVEMENT_GRANULARITY_PARAGRAPH`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#MOVEMENT_GRANULARITY_PAGE`

### ACTION_NEXT_HTML_ELEMENT

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_NEXT_HTML_ELEMENT
```

Action to move to the next HTML element of a given type. For example, move
to the BUTTON, INPUT, TABLE, etc.


**Arguments:**
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_HTML_ELEMENT_STRING`  

**Example:**

```
`
   Bundle arguments = new Bundle();
   arguments.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON");
   info.performAction(AccessibilityAction.ACTION_NEXT_HTML_ELEMENT.getId(), arguments);
 `
```

<br />

<br />

<br />

<br />

### ACTION_PAGE_DOWN

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_DOWN
```

Action to move to the page below.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event.

<br />

### ACTION_PAGE_LEFT

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_LEFT
```

Action to move to the page left.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event.

<br />

### ACTION_PAGE_RIGHT

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_RIGHT
```

Action to move to the page right.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event.

<br />

### ACTION_PAGE_UP

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_UP
```

Action to move to the page above.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event.

<br />

### ACTION_PASTE

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PASTE
```

Action to paste the current clipboard content.

<br />

### ACTION_PRESS_AND_HOLD

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PRESS_AND_HOLD
```

Action that presses and holds a node.


This action is for nodes that have distinct behavior that depends on how long a press is
held. Nodes having a single action for long press should use `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_LONG_CLICK`
instead of this action, and nodes should not expose both actions.


When calling `performAction(ACTION_PRESS_AND_HOLD, bundle`, use
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT` to specify how long the
node is pressed. The first time an accessibility service performs ACTION_PRES_AND_HOLD
on a node, it must specify 0 as ACTION_ARGUMENT_PRESS_AND_HOLD, so the application is
notified that the held state has started. To ensure reasonable behavior, the values
must be increased incrementally and may not exceed 10,000. UIs requested
to hold for times outside of this range should ignore the action.


The total time the element is held could be specified by an accessibility user up-front,
or may depend on what happens on the UI as the user continues to request the hold.


**Note:** The time between dispatching the action and it arriving in the
UI process is not guaranteed. It is possible on a busy system for the time to expire
unexpectedly. For the case of holding down a key for a repeating action, a delayed
arrival should be benign. Please do not use this sort of action in cases where such
delays will lead to unexpected UI behavior.

<br />

<br />

### ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
```

Action that requests to go to the previous entity in this node's text
at a given movement granularity. For example, move to the next character,
word, etc.


**Arguments:**
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT`,
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN`  

**Example:** Move to the next character and do not extend selection.

```
`
   Bundle arguments = new Bundle();
   arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
           AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
   arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN,
           false);
   info.performAction(AccessibilityAction.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY.getId(),
           arguments);
 `
```

<br />

<br />

<br />

<br />

**See also:**

- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#setMovementGranularities(int)`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#getMovementGranularities()`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#MOVEMENT_GRANULARITY_CHARACTER`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#MOVEMENT_GRANULARITY_WORD`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#MOVEMENT_GRANULARITY_LINE`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#MOVEMENT_GRANULARITY_PARAGRAPH`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#MOVEMENT_GRANULARITY_PAGE`

### ACTION_PREVIOUS_HTML_ELEMENT

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PREVIOUS_HTML_ELEMENT
```

Action to move to the previous HTML element of a given type. For example, move
to the BUTTON, INPUT, TABLE, etc.


**Arguments:**
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_HTML_ELEMENT_STRING`  

**Example:**

```
`
   Bundle arguments = new Bundle();
   arguments.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON");
   info.performAction(AccessibilityAction.ACTION_PREVIOUS_HTML_ELEMENT.getId(), arguments);
 `
```

<br />

<br />

<br />

<br />

### ACTION_SCROLL_BACKWARD

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_BACKWARD
```

Action to scroll the node content backward.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event. Depending on the orientation,
this element should also add the relevant directional scroll actions of
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_LEFT`, `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_RIGHT`,
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_UP`, and `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_DOWN`. If the scrolling brings
the next or previous element into view as the center element, such as in a ViewPager2,
use `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_PAGE_DOWN` and the other page actions instead of the directional
actions.

Example: a scrolling UI of horizontal orientation with a backward
scroll action should also add the scroll left/right action (LTR/RTL):


         onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
              super.onInitializeAccessibilityNodeInfo(info);
              if (canScrollBackward) {
                  info.addAction(ACTION_SCROLL_FORWARD);
                  if (leftToRight) {
                      info.addAction(ACTION_SCROLL_LEFT);
                  } else {
                      info.addAction(ACTION_SCROLL_RIGHT);
                  }
              }
         }
         performAccessibilityAction(int action, Bundle bundle) {
              if (action == ACTION_SCROLL_BACKWARD) {
                  scrollBackward();
              } else if (action == ACTION_SCROLL_LEFT) {
                  if (!isRTL()){
                      scrollBackward();
                  }
              } else if (action == ACTION_SCROLL_RIGHT) {
                  if (isRTL()){
                      scrollBackward();
                  }
              }
         }
         scrollBackward() {
             ...
             if (mAccessibilityManager.isEnabled()) {
                 event = new AccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SCROLLED);
                 event.setScrollDeltaX(dx);
                 event.setScrollDeltaY(dy);
                 event.setMaxScrollX(maxDx);
                 event.setMaxScrollY(maxDY);
                 sendAccessibilityEventUnchecked(event);
            }
         }
          
     
<br />

<br />

<br />

### ACTION_SCROLL_DOWN

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_DOWN
```

Action to scroll the node content down.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event.

<br />

### ACTION_SCROLL_FORWARD

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_FORWARD
```

Action to scroll the node content forward.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event. Depending on the orientation,
this element should also add the relevant directional scroll actions of
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_LEFT`, `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_RIGHT`,
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_UP`, and `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_DOWN`. If the scrolling brings
the next or previous element into view as the center element, such as in a ViewPager2,
use `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_PAGE_DOWN` and the other page actions instead of the directional
actions.

Example: a scrolling UI of vertical orientation with a forward
scroll action should also add the scroll down action:


         onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
              super.onInitializeAccessibilityNodeInfo(info);
              if (canScrollForward) {
                  info.addAction(ACTION_SCROLL_FORWARD);
                  info.addAction(ACTION_SCROLL_DOWN);
              }
         }
         performAccessibilityAction(int action, Bundle bundle) {
              if (action == ACTION_SCROLL_FORWARD || action == ACTION_SCROLL_DOWN) {
                  scrollForward();
              }
         }
         scrollForward() {
             ...
             if (mAccessibilityManager.isEnabled()) {
                 event = new AccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SCROLLED);
                 event.setScrollDeltaX(dx);
                 event.setScrollDeltaY(dy);
                 event.setMaxScrollX(maxDx);
                 event.setMaxScrollY(maxDY);
                 sendAccessibilityEventUnchecked(event);
            }
         }
          
     
<br />

<br />

<br />

### ACTION_SCROLL_IN_DIRECTION

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_IN_DIRECTION
```

Action that brings fully on screen the next node in the specified direction.


This should include wrapping around to the next/previous row, column, etc. in a
collection if one is available. If there is no node in that direction, the action
should fail and return false.


This action should be used instead of
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_SCROLL_TO_POSITION` when a widget does not have
clear row and column semantics or if a directional search is needed to find a node in
a complex ViewGroup where individual nodes may span multiple rows or columns. The
implementing widget must send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_TARGETED_BY_SCROLL` accessibility event with the
scroll target as the source. An accessibility service can listen for this event,
inspect its source, and use the result when determining where to place accessibility
focus.


**Arguments:** `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_DIRECTION_INT`. This is a
required argument.  

<br />

<br />

### ACTION_SCROLL_LEFT

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_LEFT
```

Action to scroll the node content left.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event.

<br />

### ACTION_SCROLL_RIGHT

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_RIGHT
```

Action to scroll the node content right.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event.

<br />

### ACTION_SCROLL_TO_POSITION

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_TO_POSITION
```

Action that scrolls the node to make the specified collection
position visible on screen.


**Arguments:**

- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_ROW_INT`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_COLUMN_INT`
  - The UI element that implements this should send a `https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event.
  **See also:**

  - `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#getCollectionInfo()`

### ACTION_SCROLL_UP

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_UP
```

Action to scroll the node content up.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event.

<br />

### ACTION_SELECT

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SELECT
```

Action that selects the node.
The view the implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SELECTED` event.

<br />

**See also:**

- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction#ACTION_CLEAR_SELECTION`

### ACTION_SET_EXTENDED_SELECTION

Added in [version 36.1](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_EXTENDED_SELECTION
```

Action to set the extended selection. Performing this action with no arguments clears the
selection.

**Arguments:** `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_SELECTION_PARCELABLE`  

**Example:**

```
`
  Bundle arguments = new Bundle();
  Selection selection = new Selection(null, null);
  arguments.setParcelable(
          AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_PARCELABLE, selection);
  info.performAction(
          AccessibilityAction.ACTION_SET_EXTENDED_SELECTION.getId(), arguments);
 `
```

<br />

<br />

**See also:**

- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_SELECTION_PARCELABLE`

### ACTION_SET_PROGRESS

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_PROGRESS
```

Action that sets progress between `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.RangeInfo#getMin()` and
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.RangeInfo#getMax()`. It should use the same value type as
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.RangeInfo#getType()`


**Arguments:**
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_PROGRESS_VALUE`

<br />

**See also:**

- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.RangeInfo`

### ACTION_SET_SELECTION

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_SELECTION
```

Action to set the selection. Performing this action with no arguments
clears the selection.


**Arguments:**
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_SELECTION_START_INT`,
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_SELECTION_END_INT`  

**Example:**

```
`
   Bundle arguments = new Bundle();
   arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 1);
   arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 2);
   info.performAction(AccessibilityAction.ACTION_SET_SELECTION.getId(), arguments);
 `
```

<br />

<br />

If this is a text selection, the UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_TEXT_SELECTION_CHANGED` event if its selection is
updated. This element should also return `true` for
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#isTextSelectable()`.

<br />

**See also:**

- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_SELECTION_START_INT`
- `https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_SELECTION_END_INT`

### ACTION_SET_TEXT

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_TEXT
```

Action that sets the text of the node. Performing the action without argument,
using ` null` or empty `https://developer.android.com/reference/java/lang/CharSequence` will clear the text. This
action will also put the cursor at the end of text.


**Arguments:**
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE`  

**Example:**

```
`
   Bundle arguments = new Bundle();
   arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,
       "android");
   info.performAction(AccessibilityAction.ACTION_SET_TEXT.getId(), arguments);
 `
```

<br />

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_TEXT_CHANGED` event if its text is updated.
This element should also return `true` for
`https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo#isEditable()`.

<br />

### ACTION_SHOW_ON_SCREEN

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SHOW_ON_SCREEN
```

Action that requests the node make its bounding rectangle visible
on the screen, scrolling if necessary just enough.

The UI element that implements this should send a
`https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent#TYPE_VIEW_SCROLLED` event.

<br />

**See also:**

- `https://developer.android.com/reference/android/view/View#requestRectangleOnScreen(android.graphics.Rect)`

### ACTION_SHOW_TEXT_SUGGESTIONS

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SHOW_TEXT_SUGGESTIONS
```

Action to show suggestions for editable text.

<br />

### ACTION_SHOW_TOOLTIP

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SHOW_TOOLTIP
```

Action to show a tooltip. A node should expose this action only for views with tooltip
text that but are not currently showing a tooltip.

<br />

### CREATOR

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final Creator<AccessibilityNodeInfo.AccessibilityAction> CREATOR
```

<br />

<br />

## Public constructors

### AccessibilityAction

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public AccessibilityAction (int actionId, 
                CharSequence label)
```

Creates a new AccessibilityAction. For adding a standard action without a specific label,
use the static constants.

You can also override the description for one the standard actions. Below is an example
how to override the standard click action by adding a custom label:

```
   AccessibilityAction action = new AccessibilityAction(
           AccessibilityAction.ACTION_CLICK.getId(), getLocalizedLabel());
   node.addAction(action);
 
```

<br />

<br />

| Parameters ||
|---|---|
| `actionId` | `int`: The id for this action. This should either be one of the standard actions or a specific action for your app. In that case it is required to use a resource identifier. <br /> |
| `label` | `CharSequence`: The label for the new AccessibilityAction. This value may be `null`. <br /> |

## Public methods

### describeContents

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int describeContents ()
```

Describe the kinds of special objects contained in this Parcelable
instance's marshaled representation. For example, if the object will
include a file descriptor in the output of `https://developer.android.com/reference/android/os/Parcelable#writeToParcel(android.os.Parcel,%20int)`,
the return value of this method must include the
`https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` bit.

<br />

| Returns ||
|---|---|
| `int` | a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either `0` or - `https://developer.android.com/reference/android/os/Parcelable#CONTENTS_FILE_DESCRIPTOR` |

### equals

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public boolean equals (Object other)
```

Indicates whether some other object is "equal to" this one.


The `equals` method implements an equivalence relation
on non-null object references:

- It is *reflexive*: for any non-null reference value `x`, `x.equals(x)` should return `true`.
- It is *symmetric*: for any non-null reference values `x` and `y`, `x.equals(y)` should return `true` if and only if `y.equals(x)` returns `true`.
- It is *transitive*: for any non-null reference values `x`, `y`, and `z`, if `x.equals(y)` returns `true` and `y.equals(z)` returns `true`, then `x.equals(z)` should return `true`.
- It is *consistent*: for any non-null reference values `x` and `y`, multiple invocations of `x.equals(y)` consistently return `true` or consistently return `false`, provided no information used in `equals` comparisons on the objects is modified.
- For any non-null reference value `x`, `x.equals(null)` should return `false`.


An equivalence relation partitions the elements it operates on
into *equivalence classes*; all the members of an
equivalence class are equal to each other. Members of an
equivalence class are substitutable for each other, at least
for some purposes.

<br />

| Parameters ||
|---|---|
| `other` | `Object`: This value may be `null`. <br /> |

| Returns ||
|---|---|
| `boolean` | `true` if this object is the same as the obj argument; `false` otherwise. <br /> |

### getId

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getId ()
```

Gets the id for this action.

<br />

| Returns ||
|---|---|
| `int` | The action id. <br /> |

### getLabel

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public CharSequence getLabel ()
```

Gets the label for this action. Its purpose is to describe the
action to user.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/CharSequence` | The label. <br /> |

### hashCode

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int hashCode ()
```

Returns a hash code value for the object. This method is
supported for the benefit of hash tables such as those provided by
`https://developer.android.com/reference/java/util/HashMap`.


The general contract of `hashCode` is:

- Whenever it is invoked on the same object more than once during an execution of a Java application, the `hashCode` method must consistently return the same integer, provided no information used in `equals` comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
- If two objects are equal according to the `https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)` method, then calling the `hashCode` method on each of the two objects must produce the same integer result.
- It is *not* required that if two objects are unequal according to the `https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)` method, then calling the `hashCode` method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

<br />

<br />

| Returns ||
|---|---|
| `int` | a hash code value for this object. <br /> |

### toString

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String toString ()
```

Returns a string representation of the object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a string representation of the object. <br /> |

### writeToParcel

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void writeToParcel (Parcel out, 
                int flags)
```

Write data into a parcel.

<br />

| Parameters ||
|---|---|
| `out` | `Parcel`: This value cannot be `null`. <br /> |
| `flags` | `int`: Additional flags about how the object should be written. May be 0 or `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE`. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/os/Parcelable#PARCELABLE_WRITE_RETURN_VALUE` |