Android APIs
public class

AccessibilityNodeInfoCompat

extends Object
java.lang.Object
   ↳ android.support.v4.view.accessibility.AccessibilityNodeInfoCompat

Class Overview

Helper for accessing AccessibilityNodeInfo introduced after API level 4 in a backwards compatible fashion.

Summary

Nested Classes
class AccessibilityNodeInfoCompat.AccessibilityActionCompat  
class AccessibilityNodeInfoCompat.CollectionInfoCompat  
class AccessibilityNodeInfoCompat.CollectionItemInfoCompat  
class AccessibilityNodeInfoCompat.RangeInfoCompat  
Constants
int ACTION_ACCESSIBILITY_FOCUS Action that gives accessibility focus to the node.
String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN Argument for whether when moving at granularity to extend the selection or to move it otherwise.
String ACTION_ARGUMENT_HTML_ELEMENT_STRING Argument for which HTML element to get moving to the next/previous HTML element.
String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT Argument for which movement granularity to be used when traversing the node text.
String ACTION_ARGUMENT_SELECTION_END_INT Argument for specifying the selection end.
String ACTION_ARGUMENT_SELECTION_START_INT Argument for specifying the selection start.
String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE Argument for specifying the text content to set

Type: CharSequence
Actions: ACTION_SET_TEXT

int ACTION_CLEAR_ACCESSIBILITY_FOCUS Action that clears accessibility focus of the node.
int ACTION_CLEAR_FOCUS Action that unfocuses the node.
int ACTION_CLEAR_SELECTION Action that unselects the node.
int ACTION_CLICK Action that clicks on the node info.
int ACTION_COLLAPSE Action to collapse an expandable node.
int ACTION_COPY Action to copy the current selection to the clipboard.
int ACTION_CUT Action to cut the current selection and place it to the clipboard.
int ACTION_DISMISS Action to dismiss a dismissable node.
int ACTION_EXPAND Action to expand an expandable node.
int ACTION_FOCUS Action that focuses the node.
int ACTION_LONG_CLICK Action that long clicks on the node.
int ACTION_NEXT_AT_MOVEMENT_GRANULARITY Action that requests to go to the next entity in this node's text at a given movement granularity.
int ACTION_NEXT_HTML_ELEMENT Action to move to the next HTML element of a given type.
int ACTION_PASTE Action to paste the current clipboard content.
int ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY Action that requests to go to the previous entity in this node's text at a given movement granularity.
int ACTION_PREVIOUS_HTML_ELEMENT Action to move to the previous HTML element of a given type.
int ACTION_SCROLL_BACKWARD Action to scroll the node content backward.
int ACTION_SCROLL_FORWARD Action to scroll the node content forward.
int ACTION_SELECT Action that selects the node.
int ACTION_SET_SELECTION Action to set the selection.
int ACTION_SET_TEXT Action that sets the text of the node.
int FOCUS_ACCESSIBILITY The accessibility focus.
int FOCUS_INPUT The input focus.
int MOVEMENT_GRANULARITY_CHARACTER Movement granularity bit for traversing the text of a node by character.
int MOVEMENT_GRANULARITY_LINE Movement granularity bit for traversing the text of a node by line.
int MOVEMENT_GRANULARITY_PAGE Movement granularity bit for traversing the text of a node by page.
int MOVEMENT_GRANULARITY_PARAGRAPH Movement granularity bit for traversing the text of a node by paragraph.
int MOVEMENT_GRANULARITY_WORD Movement granularity bit for traversing the text of a node by word.
Public Constructors
AccessibilityNodeInfoCompat(Object info)
Creates a new instance wrapping an AccessibilityNodeInfo.
Public Methods
void addAction(AccessibilityNodeInfoCompat.AccessibilityActionCompat action)
Adds an action that can be performed on the node.
void addAction(int action)
Adds an action that can be performed on the node.
void addChild(View child)
Adds a child.
void addChild(View root, int virtualDescendantId)
Adds a virtual child which is a descendant of the given root.
boolean canOpenPopup()
Gets if this node opens a popup or a dialog.
boolean equals(Object obj)
Compares this instance with the specified object and indicates if they are equal.
List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(String text)
Finds AccessibilityNodeInfos by text.
List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByViewId(String viewId)
Finds AccessibilityNodeInfoCompats by the fully qualified view id's resource name where a fully qualified id is of the from "package:id/id_resource_name".
AccessibilityNodeInfoCompat findFocus(int focus)
Find the view that has the specified focus type.
AccessibilityNodeInfoCompat focusSearch(int direction)
Searches for the nearest view in the specified direction that can take input focus.
List<AccessibilityNodeInfoCompat.AccessibilityActionCompat> getActionList()
Gets the actions that can be performed on the node.
int getActions()
Gets the actions that can be performed on the node.
void getBoundsInParent(Rect outBounds)
Gets the node bounds in parent coordinates.
void getBoundsInScreen(Rect outBounds)
Gets the node bounds in screen coordinates.
AccessibilityNodeInfoCompat getChild(int index)
Get the child at given index.
int getChildCount()
Gets the number of children.
CharSequence getClassName()
Gets the class this node comes from.
AccessibilityNodeInfoCompat.CollectionInfoCompat getCollectionInfo()
Gets the collection info if the node is a collection.
AccessibilityNodeInfoCompat.CollectionItemInfoCompat getCollectionItemInfo()
Gets the collection item info if the node is a collection item.
CharSequence getContentDescription()
Gets the content description of this node.
CharSequence getError()
Gets the error text of this node.
Bundle getExtras()
Gets an optional bundle with extra data.
Object getInfo()
int getInputType()
Gets the input type of the source as defined by InputType.
AccessibilityNodeInfoCompat getLabelFor()
Gets the node info for which the view represented by this info serves as a label for accessibility purposes.
AccessibilityNodeInfoCompat getLabeledBy()
Gets the node info which serves as the label of the view represented by this info for accessibility purposes.
int getLiveRegion()
Gets the node's live region mode.
int getMaxTextLength()
Returns the maximum text length for this node.
int getMovementGranularities()
Gets the movement granularities for traversing the text of this node.
CharSequence getPackageName()
Gets the package this node comes from.
AccessibilityNodeInfoCompat getParent()
Gets the parent.
AccessibilityNodeInfoCompat.RangeInfoCompat getRangeInfo()
Gets the range info if this node is a range.
CharSequence getText()
Gets the text of this node.
int getTextSelectionEnd()
Gets the text selection end.
int getTextSelectionStart()
Gets the text selection start.
AccessibilityNodeInfoCompat getTraversalAfter()
Gets the node after which this one is visited in accessibility traversal.
AccessibilityNodeInfoCompat getTraversalBefore()
Gets the node before which this one is visited during traversal.
String getViewIdResourceName()
Gets the fully qualified resource name of the source view's id.
AccessibilityWindowInfoCompat getWindow()
Gets the window to which this node belongs.
int getWindowId()
Gets the id of the window from which the info comes from.
int hashCode()
Returns an integer hash code for this object.
boolean isAccessibilityFocused()
Gets whether this node is accessibility focused.
boolean isCheckable()
Gets whether this node is checkable.
boolean isChecked()
Gets whether this node is checked.
boolean isClickable()
Gets whether this node is clickable.
boolean isContentInvalid()
Gets if the content of this node is invalid.
boolean isDismissable()
Gets if the node can be dismissed.
boolean isEditable()
Gets if the node is editable.
boolean isEnabled()
Gets whether this node is enabled.
boolean isFocusable()
Gets whether this node is focusable.
boolean isFocused()
Gets whether this node is focused.
boolean isLongClickable()
Gets whether this node is long clickable.
boolean isMultiLine()
Gets if the node is a multi line editable text.
boolean isPassword()
Gets whether this node is a password.
boolean isScrollable()
Gets if the node is scrollable.
boolean isSelected()
Gets whether this node is selected.
boolean isVisibleToUser()
Sets whether this node is visible to the user.
static AccessibilityNodeInfoCompat obtain(View root, int virtualDescendantId)
Returns a cached instance if such is available otherwise a new one and sets the source.
static AccessibilityNodeInfoCompat obtain()
Returns a cached instance if such is available otherwise a new one.
static AccessibilityNodeInfoCompat obtain(View source)
Returns a cached instance if such is available otherwise a new one and sets the source.
static AccessibilityNodeInfoCompat obtain(AccessibilityNodeInfoCompat info)
Returns a cached instance if such is available or a new one is create.
boolean performAction(int action)
Performs an action on the node.
boolean performAction(int action, Bundle arguments)
Performs an action on the node.
void recycle()
Return an instance back to be reused.
boolean refresh()
Refreshes this info with the latest state of the view it represents.
boolean removeAction(AccessibilityNodeInfoCompat.AccessibilityActionCompat action)
Removes an action that can be performed on the node.
boolean removeChild(View root, int virtualDescendantId)
Removes a virtual child which is a descendant of the given root.
boolean removeChild(View child)
Removes a child.
void setAccessibilityFocused(boolean focused)
Sets whether this node is accessibility focused.
void setBoundsInParent(Rect bounds)
Sets the node bounds in parent coordinates.
void setBoundsInScreen(Rect bounds)
Sets the node bounds in screen coordinates.
void setCanOpenPopup(boolean opensPopup)
Sets if this node opens a popup or a dialog.
void setCheckable(boolean checkable)
Sets whether this node is checkable.
void setChecked(boolean checked)
Sets whether this node is checked.
void setClassName(CharSequence className)
Sets the class this node comes from.
void setClickable(boolean clickable)
Sets whether this node is clickable.
void setCollectionInfo(Object collectionInfo)
void setCollectionItemInfo(Object collectionItemInfo)
void setContentDescription(CharSequence contentDescription)
Sets the content description of this node.
void setContentInvalid(boolean contentInvalid)
Sets if the content of this node is invalid.
void setDismissable(boolean dismissable)
Sets if the node can be dismissed.
void setEditable(boolean editable)
Sets whether this node is editable.
void setEnabled(boolean enabled)
Sets whether this node is enabled.
void setError(CharSequence error)
Sets the error text of this node.
void setFocusable(boolean focusable)
Sets whether this node is focusable.
void setFocused(boolean focused)
Sets whether this node is focused.
void setInputType(int inputType)
Sets the input type of the source as defined by InputType.
void setLabelFor(View labeled)
Sets the view for which the view represented by this info serves as a label for accessibility purposes.
void setLabelFor(View root, int virtualDescendantId)
Sets the view for which the view represented by this info serves as a label for accessibility purposes.
void setLabeledBy(View label)
Sets the view which serves as the label of the view represented by this info for accessibility purposes.
void setLabeledBy(View root, int virtualDescendantId)
Sets the view which serves as the label of the view represented by this info for accessibility purposes.
void setLiveRegion(int mode)
Sets the node's live region mode.
void setLongClickable(boolean longClickable)
Sets whether this node is long clickable.
void setMaxTextLength(int max)
Sets the maximum text length, or -1 for no limit.
void setMovementGranularities(int granularities)
Sets the movement granularities for traversing the text of this node.
void setMultiLine(boolean multiLine)
Sets if the node is a multi line editable text.
void setPackageName(CharSequence packageName)
Sets the package this node comes from.
void setParent(View parent)
Sets the parent.
void setParent(View root, int virtualDescendantId)
Sets the parent to be a virtual descendant of the given root.
void setPassword(boolean password)
Sets whether this node is a password.
void setRangeInfo(AccessibilityNodeInfoCompat.RangeInfoCompat rangeInfo)
Sets the range info if this node is a range.
void setScrollable(boolean scrollable)
Sets if the node is scrollable.
void setSelected(boolean selected)
Sets whether this node is selected.
void setSource(View source)
Sets the source.
void setSource(View root, int virtualDescendantId)
Sets the source to be a virtual descendant of the given root.
void setText(CharSequence text)
Sets the text of this node.
void setTextSelection(int start, int end)
Sets the text selection start and end.
void setTraversalAfter(View view)
Sets the view whose node is visited after this one in accessibility traversal.
void setTraversalAfter(View root, int virtualDescendantId)
Sets the node after which this one is visited in accessibility traversal.
void setTraversalBefore(View view)
Sets the view before whose node this one should be visited during traversal.
void setTraversalBefore(View root, int virtualDescendantId)
Sets the node before which this one is visited during traversal.
void setViewIdResourceName(String viewId)
Sets the fully qualified resource name of the source view's id.
void setVisibleToUser(boolean visibleToUser)
Sets whether this node is visible to the user.
String toString()
Returns a string containing a concise, human-readable description of this object.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int ACTION_ACCESSIBILITY_FOCUS

Action that gives accessibility focus to the node.

Constant Value: 64 (0x00000040)

public static final String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN

Argument for whether when moving at granularity to extend the selection or to move it otherwise.

Type: boolean
Actions: ACTION_NEXT_AT_MOVEMENT_GRANULARITY, ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY

Constant Value: "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN"

public static final String ACTION_ARGUMENT_HTML_ELEMENT_STRING

Argument for which HTML element to get moving to the next/previous HTML element.

Type: String
Actions: ACTION_NEXT_HTML_ELEMENT, ACTION_PREVIOUS_HTML_ELEMENT

Constant Value: "ACTION_ARGUMENT_HTML_ELEMENT_STRING"

public static final String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT

Argument for which movement granularity to be used when traversing the node text.

Type: int
Actions: ACTION_NEXT_AT_MOVEMENT_GRANULARITY, ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY

Constant Value: "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT"

public static final String ACTION_ARGUMENT_SELECTION_END_INT

Argument for specifying the selection end.

Type: int
Actions: ACTION_SET_SELECTION

Constant Value: "ACTION_ARGUMENT_SELECTION_END_INT"

public static final String ACTION_ARGUMENT_SELECTION_START_INT

Argument for specifying the selection start.

Type: int
Actions: ACTION_SET_SELECTION

Constant Value: "ACTION_ARGUMENT_SELECTION_START_INT"

public static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE

Argument for specifying the text content to set

Type: CharSequence
Actions: ACTION_SET_TEXT

See Also
Constant Value: "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE"

public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS

Action that clears accessibility focus of the node.

Constant Value: 128 (0x00000080)

public static final int ACTION_CLEAR_FOCUS

Action that unfocuses the node.

Constant Value: 2 (0x00000002)

public static final int ACTION_CLEAR_SELECTION

Action that unselects the node.

Constant Value: 8 (0x00000008)

public static final int ACTION_CLICK

Action that clicks on the node info.

Constant Value: 16 (0x00000010)

public static final int ACTION_COLLAPSE

Action to collapse an expandable node.

Constant Value: 524288 (0x00080000)

public static final int ACTION_COPY

Action to copy the current selection to the clipboard.

Constant Value: 16384 (0x00004000)

public static final int ACTION_CUT

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

Constant Value: 65536 (0x00010000)

public static final int ACTION_DISMISS

Action to dismiss a dismissable node.

Constant Value: 1048576 (0x00100000)

public static final int ACTION_EXPAND

Action to expand an expandable node.

Constant Value: 262144 (0x00040000)

public static final int ACTION_FOCUS

Action that focuses the node.

Constant Value: 1 (0x00000001)

public static final int ACTION_LONG_CLICK

Action that long clicks on the node.

Constant Value: 32 (0x00000020)

public static final int 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: ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT<, 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(AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);

Constant Value: 256 (0x00000100)

public static final int 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: ACTION_ARGUMENT_HTML_ELEMENT_STRING
Example:

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

Constant Value: 1024 (0x00000400)

public static final int ACTION_PASTE

Action to paste the current clipboard content.

Constant Value: 32768 (0x00008000)

public static final int 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: ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT<, 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(AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, arguments);

Constant Value: 512 (0x00000200)

public static final int 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: ACTION_ARGUMENT_HTML_ELEMENT_STRING
Example:

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

Constant Value: 2048 (0x00000800)

public static final int ACTION_SCROLL_BACKWARD

Action to scroll the node content backward.

Constant Value: 8192 (0x00002000)

public static final int ACTION_SCROLL_FORWARD

Action to scroll the node content forward.

Constant Value: 4096 (0x00001000)

public static final int ACTION_SELECT

Action that selects the node.

Constant Value: 4 (0x00000004)

public static final int ACTION_SET_SELECTION

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

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

Constant Value: 131072 (0x00020000)

public static final int 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: ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE
Example:

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

Constant Value: 2097152 (0x00200000)

public static final int FOCUS_ACCESSIBILITY

The accessibility focus.

Constant Value: 2 (0x00000002)

public static final int FOCUS_INPUT

The input focus.

Constant Value: 1 (0x00000001)

public static final int MOVEMENT_GRANULARITY_CHARACTER

Movement granularity bit for traversing the text of a node by character.

Constant Value: 1 (0x00000001)

public static final int MOVEMENT_GRANULARITY_LINE

Movement granularity bit for traversing the text of a node by line.

Constant Value: 4 (0x00000004)

public static final int MOVEMENT_GRANULARITY_PAGE

Movement granularity bit for traversing the text of a node by page.

Constant Value: 16 (0x00000010)

public static final int MOVEMENT_GRANULARITY_PARAGRAPH

Movement granularity bit for traversing the text of a node by paragraph.

Constant Value: 8 (0x00000008)

public static final int MOVEMENT_GRANULARITY_WORD

Movement granularity bit for traversing the text of a node by word.

Constant Value: 2 (0x00000002)

Public Constructors

public AccessibilityNodeInfoCompat (Object info)

Creates a new instance wrapping an AccessibilityNodeInfo.

Parameters
info The info.

Public Methods

public void addAction (AccessibilityNodeInfoCompat.AccessibilityActionCompat action)

Adds an action that can be performed on the node.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
action The action.
Throws
IllegalStateException If called from an AccessibilityService.

public void addAction (int action)

Adds an action that can be performed on the node.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
action The action.
Throws
IllegalStateException If called from an AccessibilityService.

public void addChild (View child)

Adds a child.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
child The child.
Throws
IllegalStateException If called from an AccessibilityService.

public void addChild (View root, int virtualDescendantId)

Adds a virtual child which is a descendant of the given root. If virtualDescendantId is NO_ID the root is added as a child.

A virtual descendant is an imaginary View that is reported as a part of the view hierarchy for accessibility purposes. This enables custom views that draw complex content to report them selves as a tree of virtual views, thus conveying their logical structure.

Parameters
root The root of the virtual subtree.
virtualDescendantId The id of the virtual child.

public boolean canOpenPopup ()

Gets if this node opens a popup or a dialog.

Returns
  • If the the node opens a popup.

public boolean equals (Object obj)

Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.

The default implementation returns true only if this == o. See Writing a correct equals method if you intend implementing your own equals method.

The general contract for the equals and hashCode() methods is that if equals returns true for any two objects, then hashCode() must return the same value for these objects. This means that subclasses of Object usually override either both methods or neither of them.

Parameters
obj the object to compare this instance with.
Returns
  • true if the specified object is equal to this Object; false otherwise.

public List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText (String text)

Finds AccessibilityNodeInfos by text. The match is case insensitive containment. The search is relative to this info i.e. this info is the root of the traversed tree.

Note: It is a client responsibility to recycle the received info by calling recycle() to avoid creating of multiple instances.

Parameters
text The searched text.
Returns
  • A list of node info.

public List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByViewId (String viewId)

Finds AccessibilityNodeInfoCompats by the fully qualified view id's resource name where a fully qualified id is of the from "package:id/id_resource_name". For example, if the target application's package is "foo.bar" and the id resource name is "baz", the fully qualified resource id is "foo.bar:id/baz".

Note: It is a client responsibility to recycle the received info by calling recycle() to avoid creating of multiple instances.

Note: The primary usage of this API is for UI test automation and in order to report the fully qualified view id if an AccessibilityNodeInfoCompat the client has to set the FLAG_REPORT_VIEW_IDS flag when configuring his AccessibilityService.

Parameters
viewId The fully qualified resource name of the view id to find.
Returns
  • A list of node info.

public AccessibilityNodeInfoCompat findFocus (int focus)

Find the view that has the specified focus type. The search starts from the view represented by this node info.

Parameters
focus The focus to find. One of FOCUS_INPUT or FOCUS_ACCESSIBILITY.
Returns
  • The node info of the focused view or null.

public AccessibilityNodeInfoCompat focusSearch (int direction)

Searches for the nearest view in the specified direction that can take input focus.

Parameters
direction The direction. Can be one of: FOCUS_DOWN, FOCUS_UP, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_FORWARD, FOCUS_BACKWARD.
Returns
  • The node info for the view that can take accessibility focus.

public List<AccessibilityNodeInfoCompat.AccessibilityActionCompat> getActionList ()

Gets the actions that can be performed on the node.

Returns
  • A list of AccessibilityActions.

public int getActions ()

Gets the actions that can be performed on the node.

Returns
  • The bit mask of with actions.

public void getBoundsInParent (Rect outBounds)

Gets the node bounds in parent coordinates.

Parameters
outBounds The output node bounds.

public void getBoundsInScreen (Rect outBounds)

Gets the node bounds in screen coordinates.

Parameters
outBounds The output node bounds.

public AccessibilityNodeInfoCompat getChild (int index)

Get the child at given index.

Note: It is a client responsibility to recycle the received info by calling recycle() to avoid creating of multiple instances.

Parameters
index The child index.
Returns
  • The child node.
Throws
IllegalStateException If called outside of an AccessibilityService.

public int getChildCount ()

Gets the number of children.

Returns
  • The child count.

public CharSequence getClassName ()

Gets the class this node comes from.

Returns
  • The class name.

public AccessibilityNodeInfoCompat.CollectionInfoCompat getCollectionInfo ()

Gets the collection info if the node is a collection. A collection child is always a collection item.

Returns
  • The collection info.

public AccessibilityNodeInfoCompat.CollectionItemInfoCompat getCollectionItemInfo ()

Gets the collection item info if the node is a collection item. A collection item is always a child of a collection.

Returns
  • The collection item info.

public CharSequence getContentDescription ()

Gets the content description of this node.

Returns
  • The content description.

public CharSequence getError ()

Gets the error text of this node.

Returns
  • The error text.

public Bundle getExtras ()

Gets an optional bundle with extra data. The bundle is lazily created and never null.

Note: It is recommended to use the package name of your application as a prefix for the keys to avoid collisions which may confuse an accessibility service if the same key has different meaning when emitted from different applications.

Returns
  • The bundle.

public Object getInfo ()

Returns

public int getInputType ()

Gets the input type of the source as defined by InputType.

Returns
  • The input type.

public AccessibilityNodeInfoCompat getLabelFor ()

Gets the node info for which the view represented by this info serves as a label for accessibility purposes.

Note: It is a client responsibility to recycle the received info by calling recycle() to avoid creating of multiple instances.

Returns
  • The labeled info.

public AccessibilityNodeInfoCompat getLabeledBy ()

Gets the node info which serves as the label of the view represented by this info for accessibility purposes.

Note: It is a client responsibility to recycle the received info by calling recycle() to avoid creating of multiple instances.

Returns
  • The label.

public int getLiveRegion ()

Gets the node's live region mode.

A live region is a node that contains information that is important for the user and when it changes the user should be notified. For example, in a login screen with a TextView that displays an "incorrect password" notification, that view should be marked as a live region with mode ACCESSIBILITY_LIVE_REGION_POLITE.

It is the responsibility of the accessibility service to monitor TYPE_WINDOW_CONTENT_CHANGED events indicating changes to live region nodes and their children.

Returns

public int getMaxTextLength ()

Returns the maximum text length for this node.

Returns
  • The maximum text length, or -1 for no limit.

public int getMovementGranularities ()

Gets the movement granularities for traversing the text of this node.

Returns
  • The bit mask with granularities.

public CharSequence getPackageName ()

Gets the package this node comes from.

Returns
  • The package name.

public AccessibilityNodeInfoCompat getParent ()

Gets the parent.

Note: It is a client responsibility to recycle the received info by calling recycle() to avoid creating of multiple instances.

Returns
  • The parent.

public AccessibilityNodeInfoCompat.RangeInfoCompat getRangeInfo ()

Gets the range info if this node is a range.

Returns
  • The range.

public CharSequence getText ()

Gets the text of this node.

Returns
  • The text.

public int getTextSelectionEnd ()

Gets the text selection end.

Returns
  • The text selection end if there is selection or -1.

public int getTextSelectionStart ()

Gets the text selection start.

Returns
  • The text selection start if there is selection or -1.

public AccessibilityNodeInfoCompat getTraversalAfter ()

Gets the node after which this one is visited in accessibility traversal. A screen-reader must visit the content of the other node before the content of this one.

Returns
  • The succeeding node if such or null.

public AccessibilityNodeInfoCompat getTraversalBefore ()

Gets the node before which this one is visited during traversal. A screen-reader must visit the content of this node before the content of the one it precedes.

Returns
  • The succeeding node if such or null.

public String getViewIdResourceName ()

Gets the fully qualified resource name of the source view's id.

Note: The primary usage of this API is for UI test automation and in order to report the source view id of an AccessibilityNodeInfoCompat the client has to set the FLAG_REPORT_VIEW_IDS flag when configuring his AccessibilityService.

Returns
  • The id resource name.

public AccessibilityWindowInfoCompat getWindow ()

Gets the window to which this node belongs.

Returns
  • The window.
See Also

public int getWindowId ()

Gets the id of the window from which the info comes from.

Returns
  • The window id.

public int hashCode ()

Returns an integer hash code for this object. By contract, any two objects for which equals(Object) returns true must return the same hash code value. This means that subclasses of Object usually override both methods or neither method.

Note that hash values must not change over time unless information used in equals comparisons also changes.

See Writing a correct hashCode method if you intend implementing your own hashCode method.

Returns
  • this object's hash code.

public boolean isAccessibilityFocused ()

Gets whether this node is accessibility focused.

Returns
  • True if the node is accessibility focused.

public boolean isCheckable ()

Gets whether this node is checkable.

Returns
  • True if the node is checkable.

public boolean isChecked ()

Gets whether this node is checked.

Returns
  • True if the node is checked.

public boolean isClickable ()

Gets whether this node is clickable.

Returns
  • True if the node is clickable.

public boolean isContentInvalid ()

Gets if the content of this node is invalid. For example, a date is not well-formed.

Returns
  • If the node content is invalid.

public boolean isDismissable ()

Gets if the node can be dismissed.

Returns
  • If the node can be dismissed.

public boolean isEditable ()

Gets if the node is editable.

Returns
  • True if the node is editable, false otherwise.

public boolean isEnabled ()

Gets whether this node is enabled.

Returns
  • True if the node is enabled.

public boolean isFocusable ()

Gets whether this node is focusable.

Returns
  • True if the node is focusable.

public boolean isFocused ()

Gets whether this node is focused.

Returns
  • True if the node is focused.

public boolean isLongClickable ()

Gets whether this node is long clickable.

Returns
  • True if the node is long clickable.

public boolean isMultiLine ()

Gets if the node is a multi line editable text.

Returns
  • True if the node is multi line.

public boolean isPassword ()

Gets whether this node is a password.

Returns
  • True if the node is a password.

public boolean isScrollable ()

Gets if the node is scrollable.

Returns
  • True if the node is scrollable, false otherwise.

public boolean isSelected ()

Gets whether this node is selected.

Returns
  • True if the node is selected.

public boolean isVisibleToUser ()

Sets whether this node is visible to the user.

Returns
  • Whether the node is visible to the user.

public static AccessibilityNodeInfoCompat obtain (View root, int virtualDescendantId)

Returns a cached instance if such is available otherwise a new one and sets the source.

Parameters
root The root of the virtual subtree.
virtualDescendantId The id of the virtual descendant.
Returns
  • An instance.

public static AccessibilityNodeInfoCompat obtain ()

Returns a cached instance if such is available otherwise a new one.

Returns
  • An instance.

public static AccessibilityNodeInfoCompat obtain (View source)

Returns a cached instance if such is available otherwise a new one and sets the source.

Returns
  • An instance.
See Also

public static AccessibilityNodeInfoCompat obtain (AccessibilityNodeInfoCompat info)

Returns a cached instance if such is available or a new one is create. The returned instance is initialized from the given info.

Parameters
info The other info.
Returns
  • An instance.

public boolean performAction (int action)

Performs an action on the node.

Note: An action can be performed only if the request is made from an AccessibilityService.

Parameters
action The action to perform.
Returns
  • True if the action was performed.
Throws
IllegalStateException If called outside of an AccessibilityService.

public boolean performAction (int action, Bundle arguments)

Performs an action on the node.

Note: An action can be performed only if the request is made from an AccessibilityService.

Parameters
action The action to perform.
arguments A bundle with additional arguments.
Returns
  • True if the action was performed.
Throws
IllegalStateException If called outside of an AccessibilityService.

public void recycle ()

Return an instance back to be reused.

Note: You must not touch the object after calling this function.

Throws
IllegalStateException If the info is already recycled.

public boolean refresh ()

Refreshes this info with the latest state of the view it represents.

Note: If this method returns false this info is obsolete since it represents a view that is no longer in the view tree and should be recycled.

Returns
  • Whether the refresh succeeded.

public boolean removeAction (AccessibilityNodeInfoCompat.AccessibilityActionCompat action)

Removes an action that can be performed on the node. If the action was not already added to the node, calling this method has no effect.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
action The action to be removed.
Returns
  • The action removed from the list of actions.
Throws
IllegalStateException If called from an AccessibilityService.

public boolean removeChild (View root, int virtualDescendantId)

Removes a virtual child which is a descendant of the given root. If the child was not previously added to the node, calling this method has no effect.

Parameters
root The root of the virtual subtree.
virtualDescendantId The id of the virtual child.
Returns
  • true if the child was present

public boolean removeChild (View child)

Removes a child. If the child was not previously added to the node, calling this method has no effect.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
child The child.
Returns
  • true if the child was present
Throws
IllegalStateException If called from an AccessibilityService.

public void setAccessibilityFocused (boolean focused)

Sets whether this node is accessibility focused.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
focused True if the node is accessibility focused.
Throws
IllegalStateException If called from an AccessibilityService.

public void setBoundsInParent (Rect bounds)

Sets the node bounds in parent coordinates.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
bounds The node bounds.
Throws
IllegalStateException If called from an AccessibilityService.

public void setBoundsInScreen (Rect bounds)

Sets the node bounds in screen coordinates.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
bounds The node bounds.
Throws
IllegalStateException If called from an AccessibilityService.

public void setCanOpenPopup (boolean opensPopup)

Sets if this node opens a popup or a dialog.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
opensPopup If the the node opens a popup.

public void setCheckable (boolean checkable)

Sets whether this node is checkable.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
checkable True if the node is checkable.
Throws
IllegalStateException If called from an AccessibilityService.

public void setChecked (boolean checked)

Sets whether this node is checked.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
checked True if the node is checked.
Throws
IllegalStateException If called from an AccessibilityService.

public void setClassName (CharSequence className)

Sets the class this node comes from.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
className The class name.
Throws
IllegalStateException If called from an AccessibilityService.

public void setClickable (boolean clickable)

Sets whether this node is clickable.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
clickable True if the node is clickable.
Throws
IllegalStateException If called from an AccessibilityService.

public void setCollectionInfo (Object collectionInfo)

public void setCollectionItemInfo (Object collectionItemInfo)

public void setContentDescription (CharSequence contentDescription)

Sets the content description of this node.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
contentDescription The content description.
Throws
IllegalStateException If called from an AccessibilityService.

public void setContentInvalid (boolean contentInvalid)

Sets if the content of this node is invalid. For example, a date is not well-formed.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
contentInvalid If the node content is invalid.

public void setDismissable (boolean dismissable)

Sets if the node can be dismissed.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
dismissable If the node can be dismissed.

public void setEditable (boolean editable)

Sets whether this node is editable.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
editable True if the node is editable.
Throws
IllegalStateException If called from an AccessibilityService.

public void setEnabled (boolean enabled)

Sets whether this node is enabled.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
enabled True if the node is enabled.
Throws
IllegalStateException If called from an AccessibilityService.

public void setError (CharSequence error)

Sets the error text of this node.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
error The error text.
Throws
IllegalStateException If called from an AccessibilityService.

public void setFocusable (boolean focusable)

Sets whether this node is focusable.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
focusable True if the node is focusable.
Throws
IllegalStateException If called from an AccessibilityService.

public void setFocused (boolean focused)

Sets whether this node is focused.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
focused True if the node is focused.
Throws
IllegalStateException If called from an AccessibilityService.

public void setInputType (int inputType)

Sets the input type of the source as defined by InputType.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
inputType The input type.
Throws
IllegalStateException If called from an AccessibilityService.

public void setLabelFor (View labeled)

Sets the view for which the view represented by this info serves as a label for accessibility purposes.

Parameters
labeled The view for which this info serves as a label.

public void setLabelFor (View root, int virtualDescendantId)

Sets the view for which the view represented by this info serves as a label for accessibility purposes. If virtualDescendantId is NO_ID the root is set as the labeled.

A virtual descendant is an imaginary View that is reported as a part of the view hierarchy for accessibility purposes. This enables custom views that draw complex content to report themselves as a tree of virtual views, thus conveying their logical structure.

Parameters
root The root whose virtual descendant serves as a label.
virtualDescendantId The id of the virtual descendant.

public void setLabeledBy (View label)

Sets the view which serves as the label of the view represented by this info for accessibility purposes.

Parameters
label The view that labels this node's source.

public void setLabeledBy (View root, int virtualDescendantId)

Sets the view which serves as the label of the view represented by this info for accessibility purposes. If virtualDescendantId is NO_ID the root is set as the label.

A virtual descendant is an imaginary View that is reported as a part of the view hierarchy for accessibility purposes. This enables custom views that draw complex content to report themselves as a tree of virtual views, thus conveying their logical structure.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
root The root whose virtual descendant labels this node's source.
virtualDescendantId The id of the virtual descendant.

public void setLiveRegion (int mode)

Sets the node's live region mode.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
mode The live region mode, or ACCESSIBILITY_LIVE_REGION_NONE if the view is not a live region.

public void setLongClickable (boolean longClickable)

Sets whether this node is long clickable.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
longClickable True if the node is long clickable.
Throws
IllegalStateException If called from an AccessibilityService.

public void setMaxTextLength (int max)

Sets the maximum text length, or -1 for no limit.

Typically used to indicate that an editable text field has a limit on the number of characters entered.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
max The maximum text length.
Throws
IllegalStateException If called from an AccessibilityService.

public void setMovementGranularities (int granularities)

Sets the movement granularities for traversing the text of this node.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
granularities The bit mask with granularities.
Throws
IllegalStateException If called from an AccessibilityService.

public void setMultiLine (boolean multiLine)

Sets if the node is a multi line editable text.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
multiLine True if the node is multi line.

public void setPackageName (CharSequence packageName)

Sets the package this node comes from.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
packageName The package name.
Throws
IllegalStateException If called from an AccessibilityService.

public void setParent (View parent)

Sets the parent.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
parent The parent.
Throws
IllegalStateException If called from an AccessibilityService.

public void setParent (View root, int virtualDescendantId)

Sets the parent to be a virtual descendant of the given root. If virtualDescendantId equals to NO_ID the root is set as the parent.

A virtual descendant is an imaginary View that is reported as a part of the view hierarchy for accessibility purposes. This enables custom views that draw complex content to report them selves as a tree of virtual views, thus conveying their logical structure.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
root The root of the virtual subtree.
virtualDescendantId The id of the virtual descendant.

public void setPassword (boolean password)

Sets whether this node is a password.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
password True if the node is a password.
Throws
IllegalStateException If called from an AccessibilityService.

public void setRangeInfo (AccessibilityNodeInfoCompat.RangeInfoCompat rangeInfo)

Sets the range info if this node is a range.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
rangeInfo The range info.

public void setScrollable (boolean scrollable)

Sets if the node is scrollable.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
scrollable True if the node is scrollable, false otherwise.
Throws
IllegalStateException If called from an AccessibilityService.

public void setSelected (boolean selected)

Sets whether this node is selected.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
selected True if the node is selected.
Throws
IllegalStateException If called from an AccessibilityService.

public void setSource (View source)

Sets the source.

Parameters
source The info source.

public void setSource (View root, int virtualDescendantId)

Sets the source to be a virtual descendant of the given root. If virtualDescendantId is NO_ID the root is set as the source.

A virtual descendant is an imaginary View that is reported as a part of the view hierarchy for accessibility purposes. This enables custom views that draw complex content to report themselves as a tree of virtual views, thus conveying their logical structure.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
root The root of the virtual subtree.
virtualDescendantId The id of the virtual descendant.

public void setText (CharSequence text)

Sets the text of this node.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
text The text.
Throws
IllegalStateException If called from an AccessibilityService.

public void setTextSelection (int start, int end)

Sets the text selection start and end.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
start The text selection start.
end The text selection end.
Throws
IllegalStateException If called from an AccessibilityService.

public void setTraversalAfter (View view)

Sets the view whose node is visited after this one in accessibility traversal. A screen-reader must visit the content of the other node before the content of this one.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
view The previous view.

public void setTraversalAfter (View root, int virtualDescendantId)

Sets the node after which this one is visited in accessibility traversal. A screen-reader must visit the content of the other node before the content of this one. If virtualDescendantId equals to NO_ID the root is set as the predecessor.

A virtual descendant is an imaginary View that is reported as a part of the view hierarchy for accessibility purposes. This enables custom views that draw complex content to report them selves as a tree of virtual views, thus conveying their logical structure.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
root The root of the virtual subtree.
virtualDescendantId The id of the virtual descendant.

public void setTraversalBefore (View view)

Sets the view before whose node this one should be visited during traversal. A screen-reader must visit the content of this node before the content of the one it precedes.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
view The view providing the preceding node.

public void setTraversalBefore (View root, int virtualDescendantId)

Sets the node before which this one is visited during traversal. A screen-reader must visit the content of this node before the content of the one it precedes. The successor is a virtual descendant of the given root. If virtualDescendantId equals to NO_ID the root is set as the successor.

A virtual descendant is an imaginary View that is reported as a part of the view hierarchy for accessibility purposes. This enables custom views that draw complex content to report them selves as a tree of virtual views, thus conveying their logical structure.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
root The root of the virtual subtree.
virtualDescendantId The id of the virtual descendant.

public void setViewIdResourceName (String viewId)

Sets the fully qualified resource name of the source view's id.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
viewId The id resource name.

public void setVisibleToUser (boolean visibleToUser)

Sets whether this node is visible to the user.

Note: Cannot be called from an AccessibilityService. This class is made immutable before being delivered to an AccessibilityService.

Parameters
visibleToUser Whether the node is visible to the user.
Throws
IllegalStateException If called from an AccessibilityService.

public String toString ()

Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:

   getClass().getName() + '@' + Integer.toHexString(hashCode())

See Writing a useful toString method if you intend implementing your own toString method.

Returns
  • a printable representation of this object.