AccessibilityNodeInfo.AccessibilityAction


public static final class AccessibilityNodeInfo.AccessibilityAction
extends Object implements Parcelable

java.lang.Object
   ↳ android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction


A class defining an action that can be performed on an AccessibilityNodeInfo. Each action has a unique id that is mandatory 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. 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 ACTION_CLICK action to indicate to the user that this action clears browsing history.

Actions are typically added to an AccessibilityNodeInfo by using AccessibilityNodeInfo.addAction(AccessibilityAction) within View.onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo) and are performed within View.performAccessibilityAction(int, Bundle).

Summary

Inherited constants

Fields

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_ACCESSIBILITY_FOCUS

Action that gives accessibility focus to the node.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_ACCESSIBILITY_FOCUS

Action that clears accessibility focus of the node.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_FOCUS

Action that clears input focus of the node.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_SELECTION

Action that deselects the node.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLICK

Action that clicks on the node info.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_COLLAPSE

Action to collapse an expandable node.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CONTEXT_CLICK

Action that context clicks the node.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_COPY

Action to copy the current selection to the clipboard.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CUT

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

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DISMISS

Action to dismiss a dismissable node.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_CANCEL

Action to cancel a drag.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_DROP

Action to trigger a drop of the content being dragged.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_START

Action to start a drag.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_EXPAND

Action to expand an expandable node.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_FOCUS

Action that gives input focus to the node.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_HIDE_TOOLTIP

Action to hide a tooltip.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_IME_ENTER

Action to send an ime actionId which is from EditorInfo.actionId.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_LONG_CLICK

Action that long clicks on the node.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_MOVE_WINDOW

Action to move a window to a new location.

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.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_NEXT_HTML_ELEMENT

Action to move to the next HTML element of a given type.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_DOWN

Action to move to the page below.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_LEFT

Action to move to the page left.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_RIGHT

Action to move to the page right.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_UP

Action to move to the page above.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PASTE

Action to paste the current clipboard content.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PRESS_AND_HOLD

Action that presses and holds a node.

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.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PREVIOUS_HTML_ELEMENT

Action to move to the previous HTML element of a given type.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_BACKWARD

Action to scroll the node content backward.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_DOWN

Action to scroll the node content down.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_FORWARD

Action to scroll the node content forward.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_IN_DIRECTION

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

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_LEFT

Action to scroll the node content left.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_RIGHT

Action to scroll the node content right.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_TO_POSITION

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

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_UP

Action to scroll the node content up.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SELECT

Action that selects the node.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_PROGRESS

Action that sets progress between RangeInfo.getMin() and RangeInfo.getMax().

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_SELECTION

Action to set the selection.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_TEXT

Action that sets the text of the node.

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.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SHOW_TEXT_SUGGESTIONS

Action to show suggestions for editable text.

public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SHOW_TOOLTIP

Action to show a tooltip.

public static final Creator<AccessibilityNodeInfo.AccessibilityAction> CREATOR

Public constructors

AccessibilityAction(int actionId, CharSequence label)

Creates a new AccessibilityAction.

Public methods

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

boolean equals(Object other)

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

int getId()

Gets the id for this action.

CharSequence getLabel()

Gets the label for this action.

int hashCode()

Returns a hash code value for the object.

String toString()

Returns a string representation of the object.

void writeToParcel(Parcel out, int flags)

Write data into a parcel.

Inherited methods

Fields

ACTION_ACCESSIBILITY_FOCUS

Added in API level 21
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 AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED event if successful. The node that is focused should return true for 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 ACTION_FOCUS, which refers to system focus. System focus is typically used to convey targets for keyboard navigation.

ACTION_CLEAR_ACCESSIBILITY_FOCUS

Added in API level 21
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 AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED event if successful. The node that is cleared should return false for AccessibilityNodeInfo.isAccessibilityFocused().

ACTION_CLEAR_FOCUS

Added in API level 21
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 ).

ACTION_CLEAR_SELECTION

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_SELECTION

Action that deselects the node.

See also:

ACTION_CLICK

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLICK

Action that clicks on the node info.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_CLICKED event. In the View system, the default handling of this action when performed by a service is to call View.performClick(), and setting a View.setOnClickListener(View.OnClickListener) automatically adds this action.

AccessibilityNodeInfo.isClickable() should return true if this action is available.

ACTION_COLLAPSE

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_COLLAPSE

Action to collapse an expandable node.

ACTION_CONTEXT_CLICK

Added in API level 23
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CONTEXT_CLICK

Action that context clicks the node.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_CONTEXT_CLICKED event. In the View system, the default handling of this action when performed by a service is to call View.performContextClick(), and setting a View.setOnContextClickListener(View.OnContextClickListener) automatically adds this action.

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

AccessibilityNodeInfo.isContextClickable() should return true if this action is available.

ACTION_COPY

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_COPY

Action to copy the current selection to the clipboard.

ACTION_CUT

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CUT

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

ACTION_DISMISS

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DISMISS

Action to dismiss a dismissable node.

ACTION_DRAG_CANCEL

Added in API level 32
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 ACTION_DRAG_START.

ACTION_DRAG_DROP

Added in API level 32
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 ACTION_DRAG_START. In View, these targets are Views that accepted DragEvent.ACTION_DRAG_STARTED and have an View.OnDragListener, and the drop occurs at the center location of the View's window bounds.

ACTION_DRAG_START

Added in API level 32
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 View.startDragAndDrop(ClipData, View.DragShadowBuilder, Object, int) and then call View.startDragAndDrop(ClipData, View.DragShadowBuilder, Object, int) with View.DRAG_FLAG_ACCESSIBILITY_ACTION. The equivalent should be performed for other UI toolkits.

ACTION_EXPAND

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_EXPAND

Action to expand an expandable node.

ACTION_FOCUS

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_FOCUS

Action that gives input focus to the node.

The focus request send an event of AccessibilityEvent.TYPE_VIEW_FOCUSED if successful. In the View system, this is handled by View.requestFocus.

The node that is focused should return true for AccessibilityNodeInfo.isFocused(). See ACTION_ACCESSIBILITY_FOCUS for the difference between system and accessibility focus.

ACTION_HIDE_TOOLTIP

Added in API level 28
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.

ACTION_IME_ENTER

Added in API level 30
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_IME_ENTER

Action to send an ime actionId which is from EditorInfo.actionId. This ime actionId sets by TextView.setImeActionLabel(CharSequence, int), or it would be 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.

ACTION_LONG_CLICK

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_LONG_CLICK

Action that long clicks on the node.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_LONG_CLICKED event. In the View system, the default handling of this action when performed by a service is to call View.performLongClick(), and setting a View.setOnLongClickListener(View.OnLongClickListener) automatically adds this action.

AccessibilityNodeInfo.isLongClickable() should return true if this action is available.

ACTION_MOVE_WINDOW

Added in API level 26
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_MOVE_WINDOW

Action to move a window to a new location.

Arguments: AccessibilityNodeInfo.ACTION_ARGUMENT_MOVE_WINDOW_X AccessibilityNodeInfo.ACTION_ARGUMENT_MOVE_WINDOW_Y

ACTION_NEXT_AT_MOVEMENT_GRANULARITY

Added in API level 21
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: AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT, 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);

ACTION_NEXT_HTML_ELEMENT

Added in API level 21
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: 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);

ACTION_PAGE_DOWN

Added in API level 29
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_DOWN

Action to move to the page below.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_SCROLLED event.

ACTION_PAGE_LEFT

Added in API level 29
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_LEFT

Action to move to the page left.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_SCROLLED event.

ACTION_PAGE_RIGHT

Added in API level 29
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_RIGHT

Action to move to the page right.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_SCROLLED event.

ACTION_PAGE_UP

Added in API level 29
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_UP

Action to move to the page above.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_SCROLLED event.

ACTION_PASTE

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PASTE

Action to paste the current clipboard content.

ACTION_PRESS_AND_HOLD

Added in API level 30
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 ACTION_LONG_CLICK instead of this action, and nodes should not expose both actions.

When calling performAction(ACTION_PRESS_AND_HOLD, bundle, use 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.

ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY

Added in API level 21
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: AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT, 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);

ACTION_PREVIOUS_HTML_ELEMENT

Added in API level 21
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: 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);

ACTION_SCROLL_BACKWARD

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_BACKWARD

Action to scroll the node content backward.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_SCROLLED event. Depending on the orientation, this element should also add the relevant directional scroll actions of ACTION_SCROLL_LEFT, ACTION_SCROLL_RIGHT, ACTION_SCROLL_UP, and ACTION_SCROLL_DOWN. If the scrolling brings the next or previous element into view as the center element, such as in a ViewPager2, use 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);
        }
     }
      
 

ACTION_SCROLL_DOWN

Added in API level 23
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_DOWN

Action to scroll the node content down.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_SCROLLED event.

ACTION_SCROLL_FORWARD

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_FORWARD

Action to scroll the node content forward.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_SCROLLED event. Depending on the orientation, this element should also add the relevant directional scroll actions of ACTION_SCROLL_LEFT, ACTION_SCROLL_RIGHT, ACTION_SCROLL_UP, and ACTION_SCROLL_DOWN. If the scrolling brings the next or previous element into view as the center element, such as in a ViewPager2, use 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);
        }
     }
      
 

ACTION_SCROLL_IN_DIRECTION

Added in API level 34
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 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 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: AccessibilityNodeInfo.ACTION_ARGUMENT_DIRECTION_INT. This is a required argument.

ACTION_SCROLL_LEFT

Added in API level 23
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_LEFT

Action to scroll the node content left.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_SCROLLED event.

ACTION_SCROLL_RIGHT

Added in API level 23
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_RIGHT

Action to scroll the node content right.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_SCROLLED event.

ACTION_SCROLL_TO_POSITION

Added in API level 23
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_TO_POSITION

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

Arguments:

ACTION_SCROLL_UP

Added in API level 23
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_UP

Action to scroll the node content up.

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_SCROLLED event.

ACTION_SELECT

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SELECT

Action that selects the node. The view the implements this should send a AccessibilityEvent.TYPE_VIEW_SELECTED event.

ACTION_SET_PROGRESS

Added in API level 24
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_PROGRESS

Action that sets progress between RangeInfo.getMin() and RangeInfo.getMax(). It should use the same value type as RangeInfo.getType()

Arguments: AccessibilityNodeInfo.ACTION_ARGUMENT_PROGRESS_VALUE

ACTION_SET_SELECTION

Added in API level 21
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_SELECTION

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

Arguments: AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 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);

If this is a text selection, the UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED event if its selection is updated. This element should also return true for AccessibilityNodeInfo.isTextSelectable().

ACTION_SET_TEXT

Added in API level 21
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 CharSequence will clear the text. This action will also put the cursor at the end of text.

Arguments: 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);

The UI element that implements this should send a AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED event if its text is updated. This element should also return true for AccessibilityNodeInfo.isEditable().

ACTION_SHOW_ON_SCREEN

Added in API level 23
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 AccessibilityEvent.TYPE_VIEW_SCROLLED event.

ACTION_SHOW_TEXT_SUGGESTIONS

Added in API level 33
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SHOW_TEXT_SUGGESTIONS

Action to show suggestions for editable text.

ACTION_SHOW_TOOLTIP

Added in API level 28
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.

CREATOR

Added in API level 30
public static final Creator<AccessibilityNodeInfo.AccessibilityAction> CREATOR

Public constructors

AccessibilityAction

Added in API level 21
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);
 

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.

label CharSequence: The label for the new AccessibilityAction. This value may be null.

Public methods

describeContents

Added in API level 30
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 writeToParcel(android.os.Parcel, int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

equals

Added in API level 21
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.

Parameters
other Object: This value may be null.

Returns
boolean true if this object is the same as the obj argument; false otherwise.

getId

Added in API level 21
public int getId ()

Gets the id for this action.

Returns
int The action id.

getLabel

Added in API level 21
public CharSequence getLabel ()

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

Returns
CharSequence The label.

hashCode

Added in API level 21
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 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 equals 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 equals 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.

Returns
int a hash code value for this object.

toString

Added in API level 21
public String toString ()

Returns a string representation of the object.

Returns
String a string representation of the object.

writeToParcel

Added in API level 30
public void writeToParcel (Parcel out, 
                int flags)

Write data into a parcel.

Parameters
out Parcel: This value cannot be null.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES