# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Nested Classes | Constants | Inherited Constants | Fields | Ctors | Methods | Inherited Methods

# AccessibilityNodeInfo

`public class AccessibilityNodeInfo`
`extends Object` `implements Parcelable`

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

This class represents a node of the window content as well as actions that can be requested from its source. From the point of view of an `AccessibilityService` a window's content is presented as a tree of accessibility node infos, which may or may not map one-to-one to the view hierarchy. In other words, a custom view is free to report itself as a tree of accessibility node info.

Once an accessibility node info is delivered to an accessibility service it is made immutable and calling a state mutation method generates an error.

Please refer to `AccessibilityService` for details about how to obtain a handle to window content as a tree of accessibility node info as well as details about the security model.

### Developer Guides

For more information about making applications accessible, read the Accessibility developer guide.

See also:

- `AccessibilityService`
- `AccessibilityEvent`
- `AccessibilityManager`

## Summary

### Nested classes
`class` | `AccessibilityNodeInfo.AccessibilityAction` A class defining an action that can be performed on an `AccessibilityNodeInfo`.
`class` | `AccessibilityNodeInfo.CollectionInfo` Class with information if a node is a collection.
`class` | `AccessibilityNodeInfo.CollectionItemInfo` Class with information if a node is a collection item.
`class` | `AccessibilityNodeInfo.ExtraRenderingInfo` Class with information of a view useful to evaluate accessibility needs.
`class` | `AccessibilityNodeInfo.RangeInfo` Class with information if a node is a range.
`class` | `AccessibilityNodeInfo.TouchDelegateInfo` Class with information of touch delegated views and regions from `TouchDelegate` for the `AccessibilityNodeInfo`.

### Constants
`int` | `ACTION_ACCESSIBILITY_FOCUS` Action that gives accessibility focus to the node.
`String` | `ACTION_ARGUMENT_COLUMN_INT` Argument for specifying the collection column to make visible on screen.
`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_MOVE_WINDOW_X` Argument for specifying the x coordinate to which to move a window.
`String` | `ACTION_ARGUMENT_MOVE_WINDOW_Y` Argument for specifying the y coordinate to which to move a window.
`String` | `ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT` Argument to represent the duration in milliseconds to press and hold a node.
`String` | `ACTION_ARGUMENT_PROGRESS_VALUE` Argument for specifying the progress value to set.
`String` | `ACTION_ARGUMENT_ROW_INT` Argument for specifying the collection row to make visible on screen.
`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.
`int` | `ACTION_CLEAR_ACCESSIBILITY_FOCUS` Action that clears accessibility focus of the node.
`int` | `ACTION_CLEAR_FOCUS` Action that clears input focus of the node.
`int` | `ACTION_CLEAR_SELECTION` Action that deselects 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 gives input focus to 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.
`String` | `EXTRA_DATA_RENDERING_INFO_KEY` Key used to request extra data for the rendering information.
`String` | `EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH` Integer argument specifying the end index of the requested text location data.
`int` | `EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_MAX_LENGTH` The maximum allowed length of the requested text location data.
`String` | `EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX` Integer argument specifying the start index of the requested text location data.
`String` | `EXTRA_DATA_TEXT_CHARACTER_LOCATION_KEY` Key used to request and locate extra data for text character location.
`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.

### Inherited constants
From interface `android.os.Parcelable`
`int` | `CONTENTS_FILE_DESCRIPTOR` Descriptor bit used with `describeContents()`: indicates that the Parcelable object's flattened representation includes a file descriptor.
`int` | `PARCELABLE_WRITE_RETURN_VALUE` Flag for use with `writeToParcel(Parcel, int)`: 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 Creator<AccessibilityNodeInfo>` | `CREATOR`

### Public constructors
`AccessibilityNodeInfo()` Creates a new `AccessibilityNodeInfo`.
`AccessibilityNodeInfo(View source)` Creates a new `AccessibilityNodeInfo` with the given `source`.
`AccessibilityNodeInfo(View root, int virtualDescendantId)` Creates a new `AccessibilityNodeInfo` with the given `source`.
`AccessibilityNodeInfo(AccessibilityNodeInfo info)` Copy constructor.

### Public methods
`void` | `addAction(int action)` This method is deprecated. This has been deprecated for `addAction(android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction)`
`void` | `addAction(AccessibilityNodeInfo.AccessibilityAction action)` Adds an action that can be performed on the node.
`void` | `addChild(View root, int virtualDescendantId)` Adds a virtual child which is a descendant of the given `root`.
`void` | `addChild(View child)` Adds a child.
`boolean` | `canOpenPopup()` Gets if this node opens a popup or a dialog.
`int` | `describeContents()` Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.
`boolean` | `equals(Object object)` Indicates whether some other object is "equal to" this one.
`List<AccessibilityNodeInfo>` | `findAccessibilityNodeInfosByText(String text)` Finds `AccessibilityNodeInfo`s by text.
`List<AccessibilityNodeInfo>` | `findAccessibilityNodeInfosByViewId(String viewId)` Finds `AccessibilityNodeInfo`s by the fully qualified view id's resource name where a fully qualified id is of the from "package:id/id_resource_name".
`AccessibilityNodeInfo` | `findFocus(int focus)` Find the view that has the specified focus type.
`AccessibilityNodeInfo` | `focusSearch(int direction)` Searches for the nearest view in the specified direction that can take the input focus.
`List<AccessibilityNodeInfo.AccessibilityAction>` | `getActionList()` Gets the actions that can be performed on the node.
`int` | `getActions()` This method is deprecated. Use `getActionList()`.
`List<String>` | `getAvailableExtraData()` Get the extra data available for this node.
`void` | `getBoundsInParent(Rect outBounds)` This method is deprecated. Use `getBoundsInScreen(android.graphics.Rect)` instead.
`void` | `getBoundsInScreen(Rect outBounds)` Gets the node bounds in screen coordinates.
`AccessibilityNodeInfo` | `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.
`AccessibilityNodeInfo.CollectionInfo` | `getCollectionInfo()` Gets the collection info if the node is a collection.
`AccessibilityNodeInfo.CollectionItemInfo` | `getCollectionItemInfo()` Gets the collection item info if the node is a collection item.
`CharSequence` | `getContentDescription()` Gets the content description of this node.
`int` | `getDrawingOrder()` Get the drawing order of the view corresponding it this node.
`CharSequence` | `getError()` Gets the error text of this node.
`AccessibilityNodeInfo.ExtraRenderingInfo` | `getExtraRenderingInfo()` Gets the `extra rendering info` if the node is meant to be refreshed with extra data to examine rendering related accessibility issues.
`Bundle` | `getExtras()` Gets an optional bundle with extra data.
`CharSequence` | `getHintText()` Gets the hint text of this node.
`int` | `getInputType()` Gets the input type of the source as defined by `InputType`.
`AccessibilityNodeInfo` | `getLabelFor()` Gets the node info for which the view represented by this info serves as a label for accessibility purposes.
`AccessibilityNodeInfo` | `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.
`CharSequence` | `getPaneTitle()` Get the title of the pane represented by this node.
`AccessibilityNodeInfo` | `getParent()` Gets the parent.
`AccessibilityNodeInfo.RangeInfo` | `getRangeInfo()` Gets the range info if this node is a range.
`CharSequence` | `getStateDescription()` Get the state description of this node.
`CharSequence` | `getText()` Gets the text of this node.
`int` | `getTextSelectionEnd()` Gets the text selection end if text is selected.
`int` | `getTextSelectionStart()` Gets the text selection start or the cursor position.
`CharSequence` | `getTooltipText()` Gets the tooltip text of this node.
`AccessibilityNodeInfo.TouchDelegateInfo` | `getTouchDelegateInfo()` Get the `TouchDelegateInfo` for touch delegate behavior with the represented view.
`AccessibilityNodeInfo` | `getTraversalAfter()` Gets the node after which this one is visited in accessibility traversal.
`AccessibilityNodeInfo` | `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.
`AccessibilityWindowInfo` | `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 a hash code value for the 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` | `isContextClickable()` Gets whether this node is context clickable.
`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` | `isHeading()` Returns whether node represents a heading.
`boolean` | `isImportantForAccessibility()` Returns whether the node originates from a view considered important for accessibility.
`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` | `isScreenReaderFocusable()` Returns whether the node is explicitly marked as a focusable unit by a screen reader.
`boolean` | `isScrollable()` Gets if the node is scrollable.
`boolean` | `isSelected()` Gets whether this node is selected.
`boolean` | `isShowingHintText()` Returns whether the node's text represents a hint for the user to enter text.
`boolean` | `isTextEntryKey()` Returns whether node represents a text entry key that is part of a keyboard or keypad.
`boolean` | `isVisibleToUser()` Gets whether this node is visible to the user.
`static AccessibilityNodeInfo` | `obtain(View root, int virtualDescendantId)` Returns a cached instance if such is available otherwise a new one and sets the source.
`static AccessibilityNodeInfo` | `obtain(AccessibilityNodeInfo info)` Returns a cached instance if such is available or a new one is create.
`static AccessibilityNodeInfo` | `obtain()` Returns a cached instance if such is available otherwise a new one.
`static AccessibilityNodeInfo` | `obtain(View source)` Returns a cached instance if such is available otherwise a new one and sets the source.
`boolean` | `performAction(int action, Bundle arguments)` Performs an action on the node.
`boolean` | `performAction(int action)` 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` | `refreshWithExtraData(String extraDataKey, Bundle args)` Refreshes this info with the latest state of the view it represents, and request new data be added by the View.
`boolean` | `removeAction(AccessibilityNodeInfo.AccessibilityAction action)` Removes an action that can be performed on the node.
`void` | `removeAction(int action)` This method is deprecated. Use `removeAction(android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction)`
`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` | `setAvailableExtraData(List<String> extraDataKeys)` Set the extra data available for this node.
`void` | `setBoundsInParent(Rect bounds)` This method is deprecated. Accessibility services should not care about these bounds.
`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(AccessibilityNodeInfo.CollectionInfo collectionInfo)` Sets the collection info if the node is a collection.
`void` | `setCollectionItemInfo(AccessibilityNodeInfo.CollectionItemInfo collectionItemInfo)` Sets the collection item info if the node is a collection item.
`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` | `setContextClickable(boolean contextClickable)` Sets whether this node is context clickable.
`void` | `setDismissable(boolean dismissable)` Sets if the node can be dismissed.
`void` | `setDrawingOrder(int drawingOrderInParent)` Set the drawing order of the view corresponding it this node.
`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` | `setHeading(boolean isHeading)` Sets whether the node represents a heading.
`void` | `setHintText(CharSequence hintText)` Sets the hint text of this node.
`void` | `setImportantForAccessibility(boolean important)` Sets whether the node is considered important for accessibility.
`void` | `setInputType(int inputType)` Sets the input type of the source as defined by `InputType`.
`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` | `setLabelFor(View labeled)` 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` | `setPaneTitle(CharSequence paneTitle)` If this node represents a visually distinct region of the screen that may update separately from the rest of the window, it is considered a pane.
`void` | `setParent(View root, int virtualDescendantId)` Sets the parent to be a virtual descendant of the given `root`.
`void` | `setParent(View parent)` Sets the parent.
`void` | `setPassword(boolean password)` Sets whether this node is a password.
`void` | `setRangeInfo(AccessibilityNodeInfo.RangeInfo rangeInfo)` Sets the range info if this node is a range.
`void` | `setScreenReaderFocusable(boolean screenReaderFocusable)` Sets whether the node should be considered a focusable unit by a screen reader.
`void` | `setScrollable(boolean scrollable)` Sets if the node is scrollable.
`void` | `setSelected(boolean selected)` Sets whether this node is selected.
`void` | `setShowingHintText(boolean showingHintText)` Sets whether the node's text represents a hint for the user to enter text.
`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` | `setStateDescription(CharSequence stateDescription)` Sets the state description of this node.
`void` | `setText(CharSequence text)` Sets the text of this node.
`void` | `setTextEntryKey(boolean isTextEntryKey)` Sets whether the node represents a text entry key that is part of a keyboard or keypad.
`void` | `setTextSelection(int start, int end)` Sets the text selection start and end.
`void` | `setTooltipText(CharSequence tooltipText)` Sets the tooltip text of this node.
`void` | `setTouchDelegateInfo(AccessibilityNodeInfo.TouchDelegateInfo delegatedInfo)` Set touch delegate info if the represented view has a `TouchDelegate`.
`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 viewIdResName)` 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 representation of the object.
`void` | `writeToParcel(Parcel parcel, int flags)` Flatten this object in to a Parcel. Note: After the instance is written to a parcel it is recycled.

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

## Constants

### ACTION_ACCESSIBILITY_FOCUS

    public static final int ACTION_ACCESSIBILITY_FOCUS

Action that gives accessibility focus to the node.

Constant Value: 64 (0x00000040)

### ACTION_ARGUMENT_COLUMN_INT

    public static final String ACTION_ARGUMENT_COLUMN_INT

Argument for specifying the collection column to make visible on screen.

Type: int
Actions:

- `AccessibilityAction#ACTION_SCROLL_TO_POSITION`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_TO_POSITION`

Constant Value: "android.view.accessibility.action.ARGUMENT_COLUMN_INT"

### ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN

    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:

- `AccessibilityAction#ACTION_NEXT_AT_MOVEMENT_GRANULARITY`
- `AccessibilityAction#ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_NEXT_AT_MOVEMENT_GRANULARITY`
- `AccessibilityNodeInfo.AccessibilityAction.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY`

Constant Value: "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN"

### ACTION_ARGUMENT_HTML_ELEMENT_STRING

    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:

- `AccessibilityAction#ACTION_NEXT_HTML_ELEMENT`
- `AccessibilityAction#ACTION_PREVIOUS_HTML_ELEMENT`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_NEXT_HTML_ELEMENT`
- `AccessibilityNodeInfo.AccessibilityAction.ACTION_PREVIOUS_HTML_ELEMENT`

Constant Value: "ACTION_ARGUMENT_HTML_ELEMENT_STRING"

### ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT

    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:

- `AccessibilityAction#ACTION_NEXT_AT_MOVEMENT_GRANULARITY`
- `AccessibilityAction#ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_NEXT_AT_MOVEMENT_GRANULARITY`
- `AccessibilityNodeInfo.AccessibilityAction.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY`

Constant Value: "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT"

### ACTION_ARGUMENT_MOVE_WINDOW_X

    public static final String ACTION_ARGUMENT_MOVE_WINDOW_X

Argument for specifying the x coordinate to which to move a window.

Type: int
Actions:

- `AccessibilityAction#ACTION_MOVE_WINDOW`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_MOVE_WINDOW`

Constant Value: "ACTION_ARGUMENT_MOVE_WINDOW_X"

### ACTION_ARGUMENT_MOVE_WINDOW_Y

    public static final String ACTION_ARGUMENT_MOVE_WINDOW_Y

Argument for specifying the y coordinate to which to move a window.

Type: int
Actions:

- `AccessibilityAction#ACTION_MOVE_WINDOW`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_MOVE_WINDOW`

Constant Value: "ACTION_ARGUMENT_MOVE_WINDOW_Y"

### ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT

    public static final String ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT

Argument to represent the duration in milliseconds to press and hold a node.

Type: int
Actions:

- `AccessibilityAction#ACTION_PRESS_AND_HOLD`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_PRESS_AND_HOLD`

Constant Value: "android.view.accessibility.action.ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT"

### ACTION_ARGUMENT_PROGRESS_VALUE

    public static final String ACTION_ARGUMENT_PROGRESS_VALUE

Argument for specifying the progress value to set.

Type: float
Actions:

- `AccessibilityAction#ACTION_SET_PROGRESS`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_SET_PROGRESS`

Constant Value: "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE"

### ACTION_ARGUMENT_ROW_INT

    public static final String ACTION_ARGUMENT_ROW_INT

Argument for specifying the collection row to make visible on screen.

Type: int
Actions:

- `AccessibilityAction#ACTION_SCROLL_TO_POSITION`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_TO_POSITION`

Constant Value: "android.view.accessibility.action.ARGUMENT_ROW_INT"

### ACTION_ARGUMENT_SELECTION_END_INT

    public static final String ACTION_ARGUMENT_SELECTION_END_INT

Argument for specifying the selection end.

Type: int
Actions:

- `AccessibilityAction#ACTION_SET_SELECTION`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_SET_SELECTION`

Constant Value: "ACTION_ARGUMENT_SELECTION_END_INT"

### ACTION_ARGUMENT_SELECTION_START_INT

    public static final String ACTION_ARGUMENT_SELECTION_START_INT

Argument for specifying the selection start.

Type: int
Actions:

- `AccessibilityAction#ACTION_SET_SELECTION`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_SET_SELECTION`

Constant Value: "ACTION_ARGUMENT_SELECTION_START_INT"

### ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE

    public static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE

Argument for specifying the text content to set.

Type: CharSequence
Actions:

- `AccessibilityAction#ACTION_SET_TEXT`

See also:

- `AccessibilityNodeInfo.AccessibilityAction.ACTION_SET_TEXT`

Constant Value: "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE"

### ACTION_CLEAR_ACCESSIBILITY_FOCUS

    public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS

Action that clears accessibility focus of the node.

Constant Value: 128 (0x00000080)

### ACTION_CLEAR_FOCUS

    public static final int ACTION_CLEAR_FOCUS

Action that clears input focus of the node.

Constant Value: 2 (0x00000002)

### ACTION_CLEAR_SELECTION

    public static final int ACTION_CLEAR_SELECTION

Action that deselects the node.

Constant Value: 8 (0x00000008)

### ACTION_CLICK

    public static final int ACTION_CLICK

Action that clicks on the node info. See `AccessibilityAction#ACTION_CLICK`

Constant Value: 16 (0x00000010)

### ACTION_COLLAPSE

    public static final int ACTION_COLLAPSE

Action to collapse an expandable node.

Constant Value: 524288 (0x00080000)

### ACTION_COPY

    public static final int ACTION_COPY

Action to copy the current selection to the clipboard.

Constant Value: 16384 (0x00004000)

### ACTION_CUT

    public static final int ACTION_CUT

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

Constant Value: 65536 (0x00010000)

### ACTION_DISMISS

    public static final int ACTION_DISMISS

Action to dismiss a dismissable node.

Constant Value: 1048576 (0x00100000)

### ACTION_EXPAND

    public static final int ACTION_EXPAND

Action to expand an expandable node.

Constant Value: 262144 (0x00040000)

### ACTION_FOCUS

    public static final int ACTION_FOCUS

Action that gives input focus to the node.

Constant Value: 1 (0x00000001)

### ACTION_LONG_CLICK

    public static final int ACTION_LONG_CLICK

Action that long clicks on the node.

It does not support coordinate information for anchoring.

Constant Value: 32 (0x00000020)

### ACTION_NEXT_AT_MOVEMENT_GRANULARITY

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

See also:

- `ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT`
- `ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN`
- `setMovementGranularities(int)`
- `getMovementGranularities()`
- `MOVEMENT_GRANULARITY_CHARACTER`
- `MOVEMENT_GRANULARITY_WORD`
- `MOVEMENT_GRANULARITY_LINE`
- `MOVEMENT_GRANULARITY_PARAGRAPH`
- `MOVEMENT_GRANULARITY_PAGE`

Constant Value: 256 (0x00000100)

### ACTION_NEXT_HTML_ELEMENT

    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)

### ACTION_PASTE

    public static final int ACTION_PASTE

Action to paste the current clipboard content.

Constant Value: 32768 (0x00008000)

### ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY

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

See also:

- `ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT`
- `ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN`
- `setMovementGranularities(int)`
- `getMovementGranularities()`
- `MOVEMENT_GRANULARITY_CHARACTER`
- `MOVEMENT_GRANULARITY_WORD`
- `MOVEMENT_GRANULARITY_LINE`
- `MOVEMENT_GRANULARITY_PARAGRAPH`
- `MOVEMENT_GRANULARITY_PAGE`

Constant Value: 512 (0x00000200)

### ACTION_PREVIOUS_HTML_ELEMENT

    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)

### ACTION_SCROLL_BACKWARD

    public static final int ACTION_SCROLL_BACKWARD

Action to scroll the node content backward.

Constant Value: 8192 (0x00002000)

### ACTION_SCROLL_FORWARD

    public static final int ACTION_SCROLL_FORWARD

Action to scroll the node content forward.

Constant Value: 4096 (0x00001000)

### ACTION_SELECT

    public static final int ACTION_SELECT

Action that selects the node.

Constant Value: 4 (0x00000004)

### ACTION_SET_SELECTION

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

See also:

- `ACTION_ARGUMENT_SELECTION_START_INT`
- `ACTION_ARGUMENT_SELECTION_END_INT`

Constant Value: 131072 (0x00020000)

### ACTION_SET_TEXT

    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)

### EXTRA_DATA_RENDERING_INFO_KEY

    public static final String EXTRA_DATA_RENDERING_INFO_KEY

Key used to request extra data for the rendering information. The key requests that a `AccessibilityNodeInfo.ExtraRenderingInfo` be added to this info. This request is made with `refreshWithExtraData(java.lang.String, android.os.Bundle)` without argument.

The data can be retrieved from the `ExtraRenderingInfo` returned by `getExtraRenderingInfo()` using `ExtraRenderingInfo#getLayoutSize`, `ExtraRenderingInfo#getTextSizeInPx()` and `ExtraRenderingInfo#getTextSizeUnit()`. For layout params, it is supported by both `TextView` and `ViewGroup`. For text size and unit, it is only supported by `TextView`.

See also:

- `refreshWithExtraData(String, Bundle)`

Constant Value: "android.view.accessibility.extra.DATA_RENDERING_INFO_KEY"

### EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH

    public static final String EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH

Integer argument specifying the end index of the requested text location data. Must be positive and no larger than `EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH`.

See also:

- `EXTRA_DATA_TEXT_CHARACTER_LOCATION_KEY`

Constant Value: "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH"

### EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_MAX_LENGTH

    public static final int EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_MAX_LENGTH

The maximum allowed length of the requested text location data.

Constant Value: 20000 (0x00004e20)

### EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX

    public static final String EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX

Integer argument specifying the start index of the requested text location data. Must be valid inside the CharSequence returned by `getText()`.

See also:

- `EXTRA_DATA_TEXT_CHARACTER_LOCATION_KEY`

Constant Value: "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX"

### EXTRA_DATA_TEXT_CHARACTER_LOCATION_KEY

    public static final String EXTRA_DATA_TEXT_CHARACTER_LOCATION_KEY

Key used to request and locate extra data for text character location. This key requests that an array of `RectF`s be added to the extras. This request is made with `refreshWithExtraData(java.lang.String, android.os.Bundle)`. The arguments taken by this request are two integers: `EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_START_INDEX` and `EXTRA_DATA_TEXT_CHARACTER_LOCATION_ARG_LENGTH`. The starting index must be valid inside the CharSequence returned by `getText()`, and the length must be positive.

The data can be retrieved from the `Bundle` returned by `getExtras()` using this string as a key for `Bundle#getParcelableArray(String)`. The `RectF` will be null for characters that either do not exist or are off the screen.

See also:

- `refreshWithExtraData(String, Bundle)`

Constant Value: "android.view.accessibility.extra.DATA_TEXT_CHARACTER_LOCATION_KEY"

### FOCUS_ACCESSIBILITY

    public static final int FOCUS_ACCESSIBILITY

The accessibility focus.

Constant Value: 2 (0x00000002)

### FOCUS_INPUT

    public static final int FOCUS_INPUT

The input focus.

Constant Value: 1 (0x00000001)

### MOVEMENT_GRANULARITY_CHARACTER

    public static final int MOVEMENT_GRANULARITY_CHARACTER

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

Constant Value: 1 (0x00000001)

### MOVEMENT_GRANULARITY_LINE

    public static final int MOVEMENT_GRANULARITY_LINE

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

Constant Value: 4 (0x00000004)

### MOVEMENT_GRANULARITY_PAGE

    public static final int MOVEMENT_GRANULARITY_PAGE

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

Constant Value: 16 (0x00000010)

### MOVEMENT_GRANULARITY_PARAGRAPH

    public static final int MOVEMENT_GRANULARITY_PARAGRAPH

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

Constant Value: 8 (0x00000008)

### MOVEMENT_GRANULARITY_WORD

    public static final int MOVEMENT_GRANULARITY_WORD

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

Constant Value: 2 (0x00000002)

## Fields

### CREATOR

    public static final Creator<AccessibilityNodeInfo> CREATOR

See also:

- `Parcelable.Creator`

## Public constructors

### AccessibilityNodeInfo

    public AccessibilityNodeInfo ()

Creates a new `AccessibilityNodeInfo`.

### AccessibilityNodeInfo

    public AccessibilityNodeInfo (View source)

Creates a new `AccessibilityNodeInfo` with the given `source`.

Parameters
`source` | `View`: The source view. This value cannot be `null`.

### AccessibilityNodeInfo

    public AccessibilityNodeInfo (View root,
                    int virtualDescendantId)

Creates a new `AccessibilityNodeInfo` with the given `source`.

Parameters
`root` | `View`: The root of the virtual subtree. This value cannot be `null`.
`virtualDescendantId` | `int`: The id of the virtual descendant.

### AccessibilityNodeInfo

    public AccessibilityNodeInfo (AccessibilityNodeInfo info)

Copy constructor. Creates a new `AccessibilityNodeInfo`, and this new instance is initialized from the given `info`.

Parameters
`info` | `AccessibilityNodeInfo`: The other info. This value cannot be `null`.

## Public methods

### addAction

    public void addAction (int action)

This method is deprecated.
This has been deprecated for `addAction(android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction)`

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` | `int`: The action.

Throws
`IllegalStateException` | If called from an AccessibilityService.
`IllegalArgumentException` | If the argument is not one of the standard actions.

### addAction

    public void addAction (AccessibilityNodeInfo.AccessibilityAction action)

Adds an action that can be performed on the node.

To add a standard action use the static constants on `AccessibilityAction`. To add a custom action create a new `AccessibilityAction` by passing in a resource id from your application as the action id and an optional label that describes the action. To override one of the standard actions use as the action id of a standard action id such as `ACTION_CLICK` and an optional label that describes the action.

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

Parameters
`action` | `AccessibilityNodeInfo.AccessibilityAction`: The action.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### addChild

    public void addChild (View root,
                    int virtualDescendantId)

Adds a virtual child which is a descendant of the given `root`. If `virtualDescendantId` is `View#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. Note that a view cannot be made its own child.

Parameters
`root` | `View`: The root of the virtual subtree.
`virtualDescendantId` | `int`: The id of the virtual child.

### addChild

    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. Note that a view cannot be made its own child.

Parameters
`child` | `View`: The child.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### canOpenPopup

    public boolean canOpenPopup ()

Gets if this node opens a popup or a dialog.

Returns
`boolean` | If the the node opens a popup.

### describeContents

    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

    public boolean equals (Object object)

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`.

The `equals` method for class `Object` implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values `x` and `y`, this method returns `true` if and only if `x` and `y` refer to the same object (`x == y` has the value `true`).

Note that it is generally necessary to override the `hashCode` method whenever this method is overridden, so as to maintain the general contract for the `hashCode` method, which states that equal objects must have equal hash codes.

Parameters
`object` | `Object`: This value may be `null`.

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

### findAccessibilityNodeInfosByText

    public List<AccessibilityNodeInfo> findAccessibilityNodeInfosByText (String text)

Finds `AccessibilityNodeInfo`s 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 `AccessibilityNodeInfo#recycle()` to avoid creating of multiple instances.

Note: If this view hierarchy has a `SurfaceView` embedding another view hierarchy via `SurfaceView#setChildSurfacePackage`, there is a limitation that this API won't be able to find the node for the view on the embedded view hierarchy. It's because views don't know about the embedded hierarchies. Instead, you could traverse all the children to find the node.

Parameters
`text` | `String`: The searched text.

Returns
`List<AccessibilityNodeInfo>` | A list of node info.

### findAccessibilityNodeInfosByViewId

    public List<AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId (String viewId)

Finds `AccessibilityNodeInfo`s 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 `AccessibilityNodeInfo#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 `AccessibilityNodeInfo` the client has to set the `AccessibilityServiceInfo#FLAG_REPORT_VIEW_IDS` flag when configuring the `AccessibilityService`.

Note: If this view hierarchy has a `SurfaceView` embedding another view hierarchy via `SurfaceView#setChildSurfacePackage`, there is a limitation that this API won't be able to find the node for the view on the embedded view hierarchy. It's because views don't know about the embedded hierarchies. Instead, you could traverse all the children to find the node.

Parameters
`viewId` | `String`: The fully qualified resource name of the view id to find. This value cannot be `null`.

Returns
`List<AccessibilityNodeInfo>` | A list of node info.

### findFocus

    public AccessibilityNodeInfo findFocus (int focus)

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

Note: If this view hierarchy has a `SurfaceView` embedding another view hierarchy via `SurfaceView#setChildSurfacePackage`, there is a limitation that this API won't be able to find the node for the view on the embedded view hierarchy. It's because views don't know about the embedded hierarchies. Instead, you could traverse all the children to find the node. Or, use `AccessibilityService#findFocus(int)` for `FOCUS_ACCESSIBILITY` only since it has no such limitation.

Parameters
`focus` | `int`: The focus to find. One of `FOCUS_INPUT` or `FOCUS_ACCESSIBILITY`.

Returns
`AccessibilityNodeInfo` | The node info of the focused view or null.

See also:

- `FOCUS_INPUT`
- `FOCUS_ACCESSIBILITY`

### focusSearch

    public AccessibilityNodeInfo focusSearch (int direction)

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

Note: If this view hierarchy has a `SurfaceView` embedding another view hierarchy via `SurfaceView#setChildSurfacePackage`, there is a limitation that this API won't be able to find the node for the view in the specified direction on the embedded view hierarchy. It's because views don't know about the embedded hierarchies. Instead, you could traverse all the children to find the node.

Parameters
`direction` | `int`: The direction. Can be one of: `View#FOCUS_DOWN`, `View#FOCUS_UP`, `View#FOCUS_LEFT`, `View#FOCUS_RIGHT`, `View#FOCUS_FORWARD`, `View#FOCUS_BACKWARD`.

Returns
`AccessibilityNodeInfo` | The node info for the view that can take accessibility focus.

### getActionList

    public List<AccessibilityNodeInfo.AccessibilityAction> getActionList ()

Gets the actions that can be performed on the node.

Returns
`List<AccessibilityNodeInfo.AccessibilityAction>` |

### getActions

    public int getActions ()

This method is deprecated.
Use `getActionList()`.

Gets the actions that can be performed on the node.

Returns
`int` | The bit mask of with actions.

See also:

- `ACTION_FOCUS`
- `ACTION_CLEAR_FOCUS`
- `ACTION_SELECT`
- `ACTION_CLEAR_SELECTION`
- `ACTION_ACCESSIBILITY_FOCUS`
- `ACTION_CLEAR_ACCESSIBILITY_FOCUS`
- `ACTION_CLICK`
- `ACTION_LONG_CLICK`
- `ACTION_NEXT_AT_MOVEMENT_GRANULARITY`
- `ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY`
- `ACTION_NEXT_HTML_ELEMENT`
- `ACTION_PREVIOUS_HTML_ELEMENT`
- `ACTION_SCROLL_FORWARD`
- `ACTION_SCROLL_BACKWARD`

### getAvailableExtraData

    public List<String> getAvailableExtraData ()

Get the extra data available for this node.

Some data that is useful for some accessibility services is expensive to compute, and would place undue overhead on apps to compute all the time. That data can be requested with `refreshWithExtraData(java.lang.String, android.os.Bundle)`.

Returns
`List<String>` | An unmodifiable list of keys corresponding to extra data that can be requested.

See also:

- `EXTRA_DATA_RENDERING_INFO_KEY`
- `EXTRA_DATA_TEXT_CHARACTER_LOCATION_KEY`

### getBoundsInParent

    public void getBoundsInParent (Rect outBounds)

This method is deprecated.
Use `getBoundsInScreen(android.graphics.Rect)` instead.

Gets the node bounds in the viewParent's coordinates. `getParent()` does not represent the source's viewParent. Instead it represents the result of `View#getParentForAccessibility()`, which returns the closest ancestor where `View#isImportantForAccessibility()` is true. So this method is not reliable.

When magnification is enabled, the bounds in parent are also scaled up by magnification scale. For example, it returns Rect(20, 20, 200, 200) for original bounds Rect(10, 10, 100, 100), when the magnification scale is 2.

Parameters
`outBounds` | `Rect`: The output node bounds.

### getBoundsInScreen

    public void getBoundsInScreen (Rect outBounds)

Gets the node bounds in screen coordinates.

When magnification is enabled, the bounds in screen are scaled up by magnification scale and the positions are also adjusted according to the offset of magnification viewport. For example, it returns Rect(-180, -180, 0, 0) for original bounds Rect(10, 10, 100, 100), when the magnification scale is 2 and offsets for X and Y are both 200.

Parameters
`outBounds` | `Rect`: The output node bounds.

### getChild

    public AccessibilityNodeInfo getChild (int index)

Get the child at given index.

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

Parameters
`index` | `int`: The child index.

Returns
`AccessibilityNodeInfo` | The child node.

Throws
`IllegalStateException` | If called outside of an AccessibilityService.

### getChildCount

    public int getChildCount ()

Gets the number of children.

Returns
`int` | The child count.

### getClassName

    public CharSequence getClassName ()

Gets the class this node comes from.

Returns
`CharSequence` | The class name.

### getCollectionInfo

    public AccessibilityNodeInfo.CollectionInfo getCollectionInfo ()

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

Returns
`AccessibilityNodeInfo.CollectionInfo` | The collection info.

### getCollectionItemInfo

    public AccessibilityNodeInfo.CollectionItemInfo getCollectionItemInfo ()

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

Returns
`AccessibilityNodeInfo.CollectionItemInfo` | The collection item info.

### getContentDescription

    public CharSequence getContentDescription ()

Gets the content description of this node.

Returns
`CharSequence` | The content description.

### getDrawingOrder

    public int getDrawingOrder ()

Get the drawing order of the view corresponding it this node.

Drawing order is determined only within the node's parent, so this index is only relative to its siblings.

In some cases, the drawing order is essentially simultaneous, so it is possible for two siblings to return the same value. It is also possible that values will be skipped.

Returns
`int` | The drawing position of the view corresponding to this node relative to its siblings.

### getError

    public CharSequence getError ()

Gets the error text of this node.

Returns
`CharSequence` | The error text.

### getExtraRenderingInfo

    public AccessibilityNodeInfo.ExtraRenderingInfo getExtraRenderingInfo ()

Gets the `extra rendering info` if the node is meant to be refreshed with extra data to examine rendering related accessibility issues.

Returns
`AccessibilityNodeInfo.ExtraRenderingInfo` | The `extra rendering info`. This value may be `null`.

See also:

- `EXTRA_DATA_RENDERING_INFO_KEY`
- `refreshWithExtraData(String, Bundle)`

### getExtras

    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
`Bundle` | The bundle.

### getHintText

    public CharSequence getHintText ()

Gets the hint text of this node. Only applies to nodes where text can be entered.

Returns
`CharSequence` | The hint text.

### getInputType

    public int getInputType ()

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

Returns
`int` | The input type.

### getLabelFor

    public AccessibilityNodeInfo 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 `AccessibilityNodeInfo#recycle()` to avoid creating of multiple instances.

Returns
`AccessibilityNodeInfo` | The labeled info.

### getLabeledBy

    public AccessibilityNodeInfo 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 `AccessibilityNodeInfo#recycle()` to avoid creating of multiple instances.

Returns
`AccessibilityNodeInfo` | The label.

### getLiveRegion

    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 `View#ACCESSIBILITY_LIVE_REGION_POLITE`.

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

Returns
`int` | The live region mode, or `View#ACCESSIBILITY_LIVE_REGION_NONE` if the view is not a live region.

See also:

- `View.getAccessibilityLiveRegion()`

### getMaxTextLength

    public int getMaxTextLength ()

Returns the maximum text length for this node.

Returns
`int` | The maximum text length, or -1 for no limit.

See also:

- `setMaxTextLength(int)`

### getMovementGranularities

    public int getMovementGranularities ()

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

Returns
`int` | The bit mask with granularities.

### getPackageName

    public CharSequence getPackageName ()

Gets the package this node comes from.

Returns
`CharSequence` | The package name.

### getPaneTitle

    public CharSequence getPaneTitle ()

Get the title of the pane represented by this node.

Returns
`CharSequence` | The title of the pane represented by this node, or `null` if this node does not represent a pane.

### getParent

    public AccessibilityNodeInfo getParent ()

Gets the parent.

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

Returns
`AccessibilityNodeInfo` | The parent.

### getRangeInfo

    public AccessibilityNodeInfo.RangeInfo getRangeInfo ()

Gets the range info if this node is a range.

Returns
`AccessibilityNodeInfo.RangeInfo` | The range.

### getStateDescription

    public CharSequence getStateDescription ()

Get the state description of this node.

Returns
`CharSequence` | the state description This value may be `null`.

### getText

    public CharSequence getText ()

Gets the text of this node.

Note: If the text contains `ClickableSpan`s or `URLSpan`s, these spans will have been replaced with ones whose `ClickableSpan#onClick(View)` can be called from an `AccessibilityService`. When called from a service, the `View` argument is ignored and the corresponding span will be found on the view that this `AccessibilityNodeInfo` represents and called with that view as its argument.

This treatment of `ClickableSpan`s means that the text returned from this method may different slightly one passed to `setText(java.lang.CharSequence)`, although they will be equivalent according to `TextUtils#equals(CharSequence, CharSequence)`. The `ClickableSpan#onClick(View)` of any spans, however, will generally not work outside of an accessibility service.

Returns
`CharSequence` | The text.

### getTextSelectionEnd

    public int getTextSelectionEnd ()

Gets the text selection end if text is selected.

If no text is selected, both this method and `AccessibilityNodeInfo#getTextSelectionStart()` return the same value: the current location of the cursor.

Returns
`int` | The text selection end, the cursor location if there is no selection, or -1 if there is no text selection and no cursor.

### getTextSelectionStart

    public int getTextSelectionStart ()

Gets the text selection start or the cursor position.

If no text is selected, both this method and `AccessibilityNodeInfo#getTextSelectionEnd()` return the same value: the current location of the cursor.

Returns
`int` | The text selection start, the cursor location if there is no selection, or -1 if there is no text selection and no cursor.

### getTooltipText

    public CharSequence getTooltipText ()

Gets the tooltip text of this node.

Returns
`CharSequence` | The tooltip text. This value may be `null`.

### getTouchDelegateInfo

    public AccessibilityNodeInfo.TouchDelegateInfo getTouchDelegateInfo ()

Get the `TouchDelegateInfo` for touch delegate behavior with the represented view. It is possible for the same node to be pointed to by several regions. Use `TouchDelegateInfo#getRegionAt(int)` to get touch delegate target `Region`, and `TouchDelegateInfo#getTargetForRegion(Region)` for `AccessibilityNodeInfo` from the given region.

Returns
`AccessibilityNodeInfo.TouchDelegateInfo` | `TouchDelegateInfo` or `null` if there are no touch delegates.

### getTraversalAfter

    public AccessibilityNodeInfo 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
`AccessibilityNodeInfo` | The succeeding node if such or `null`.

See also:

- `setTraversalAfter(android.view.View)`
- `setTraversalAfter(android.view.View, int)`

### getTraversalBefore

    public AccessibilityNodeInfo 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
`AccessibilityNodeInfo` | The succeeding node if such or `null`.

See also:

- `setTraversalBefore(android.view.View)`
- `setTraversalBefore(android.view.View, int)`

### getViewIdResourceName

    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 `AccessibilityNodeInfo` the client has to set the `AccessibilityServiceInfo#FLAG_REPORT_VIEW_IDS` flag when configuring the `AccessibilityService`.

Returns
`String` | The id resource name.

### getWindow

    public AccessibilityWindowInfo getWindow ()

Gets the window to which this node belongs.

Returns
`AccessibilityWindowInfo` | The window.

See also:

- `AccessibilityService.getWindows()`

### getWindowId

    public int getWindowId ()

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

Returns
`int` | The window id.

### hashCode

    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(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 `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.

As much as is reasonably practical, the hashCode method defined by class `Object` does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the Java™ programming language.)

Returns
`int` | a hash code value for this object.

### isAccessibilityFocused

    public boolean isAccessibilityFocused ()

Gets whether this node is accessibility focused.

Returns
`boolean` | True if the node is accessibility focused.

### isCheckable

    public boolean isCheckable ()

Gets whether this node is checkable.

Returns
`boolean` | True if the node is checkable.

### isChecked

    public boolean isChecked ()

Gets whether this node is checked.

Returns
`boolean` | True if the node is checked.

### isClickable

    public boolean isClickable ()

Gets whether this node is clickable.

Returns
`boolean` | True if the node is clickable.

### isContentInvalid

    public boolean isContentInvalid ()

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

Returns
`boolean` | If the node content is invalid.

### isContextClickable

    public boolean isContextClickable ()

Gets whether this node is context clickable.

Returns
`boolean` | True if the node is context clickable.

### isDismissable

    public boolean isDismissable ()

Gets if the node can be dismissed.

Returns
`boolean` | If the node can be dismissed.

### isEditable

    public boolean isEditable ()

Gets if the node is editable.

Returns
`boolean` | True if the node is editable, false otherwise.

### isEnabled

    public boolean isEnabled ()

Gets whether this node is enabled.

Returns
`boolean` | True if the node is enabled.

### isFocusable

    public boolean isFocusable ()

Gets whether this node is focusable.

Returns
`boolean` | True if the node is focusable.

### isFocused

    public boolean isFocused ()

Gets whether this node is focused.

Returns
`boolean` | True if the node is focused.

### isHeading

    public boolean isHeading ()

Returns whether node represents a heading.

Note: Returns `true` if either `setHeading(boolean)` marks this node as a heading or if the node has a `CollectionItemInfo` that marks it as such, to accomodate apps that use the now-deprecated API.

Returns
`boolean` | `true` if the node is a heading, `false` otherwise.

### isImportantForAccessibility

    public boolean isImportantForAccessibility ()

Returns whether the node originates from a view considered important for accessibility.

Returns
`boolean` | `true` if the node originates from a view considered important for accessibility, `false` otherwise

See also:

- `View.isImportantForAccessibility()`

### isLongClickable

    public boolean isLongClickable ()

Gets whether this node is long clickable.

Returns
`boolean` | True if the node is long clickable.

### isMultiLine

    public boolean isMultiLine ()

Gets if the node is a multi line editable text.

Returns
`boolean` | True if the node is multi line.

### isPassword

    public boolean isPassword ()

Gets whether this node is a password.

Returns
`boolean` | True if the node is a password.

### isScreenReaderFocusable

    public boolean isScreenReaderFocusable ()

Returns whether the node is explicitly marked as a focusable unit by a screen reader. Note that `false` indicates that it is not explicitly marked, not that the node is not a focusable unit. Screen readers should generally use other signals, such as `isFocusable()`, or the presence of text in a node, to determine what should receive focus.

Returns
`boolean` | `true` if the node is specifically marked as a focusable unit for screen readers, `false` otherwise.

See also:

- `View.isScreenReaderFocusable()`

### isScrollable

    public boolean isScrollable ()

Gets if the node is scrollable.

Returns
`boolean` | True if the node is scrollable, false otherwise.

### isSelected

    public boolean isSelected ()

Gets whether this node is selected.

Returns
`boolean` | True if the node is selected.

### isShowingHintText

    public boolean isShowingHintText ()

Returns whether the node's text represents a hint for the user to enter text. It should only be `true` if the node has editable text.

Returns
`boolean` | `true` if the text in the node represents a hint to the user, `false` otherwise.

### isTextEntryKey

    public boolean isTextEntryKey ()

Returns whether node represents a text entry key that is part of a keyboard or keypad.

Returns
`boolean` | `true` if the node is a text entry key., `false` otherwise.

### isVisibleToUser

    public boolean isVisibleToUser ()

Gets whether this node is visible to the user.

Between `API 16` and `API 29`, this method may incorrectly return false when magnification is enabled. On other versions, a node is considered visible even if it is not on the screen because magnification is active.

Returns
`boolean` | Whether the node is visible to the user.

### obtain

    public static AccessibilityNodeInfo obtain (View root,
                    int virtualDescendantId)

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

In most situations object pooling is not beneficial. Create a new instance using the constructor `AccessibilityNodeInfo(android.view.View, int)` instead.

Parameters
`root` | `View`: The root of the virtual subtree.
`virtualDescendantId` | `int`: The id of the virtual descendant.

Returns
`AccessibilityNodeInfo` | An instance.

See also:

- `setSource(View, int)`

### obtain

    public static AccessibilityNodeInfo obtain (AccessibilityNodeInfo info)

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

In most situations object pooling is not beneficial. Create a new instance using the constructor `AccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo)` instead.

Parameters
`info` | `AccessibilityNodeInfo`: The other info.

Returns
`AccessibilityNodeInfo` | An instance.

### obtain

    public static AccessibilityNodeInfo obtain ()

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

In most situations object pooling is not beneficial. Create a new instance using the constructor `AccessibilityNodeInfo()` instead.

Returns
`AccessibilityNodeInfo` | An instance.

### obtain

    public static AccessibilityNodeInfo obtain (View source)

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

In most situations object pooling is not beneficial. Create a new instance using the constructor `AccessibilityNodeInfo(android.view.View)` instead.

Parameters
`source` | `View`: The source view.

Returns
`AccessibilityNodeInfo` | An instance.

See also:

- `setSource(View)`

### performAction

    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` | `int`: The action to perform.
`arguments` | `Bundle`: A bundle with additional arguments.

Returns
`boolean` | True if the action was performed.

Throws
`IllegalStateException` | If called outside of an AccessibilityService.

### performAction

    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` | `int`: The action to perform.

Returns
`boolean` | True if the action was performed.

Throws
`IllegalStateException` | If called outside of an AccessibilityService.

### recycle

    public void recycle ()

Return an instance back to be reused.

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

In most situations object pooling is not beneficial, and recycling is not necessary.

Throws
`IllegalStateException` | If the info is already recycled.

### refresh

    public boolean refresh ()

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

Returns
`boolean` | `true` if the refresh succeeded. `false` if the `View` represented by this node is no longer in the view tree (and thus this node is obsolete and should be recycled).

### refreshWithExtraData

    public boolean refreshWithExtraData (String extraDataKey,
                    Bundle args)

Refreshes this info with the latest state of the view it represents, and request new data be added by the View.

Parameters
`extraDataKey` | `String`: The extra data requested. Data that must be requested with this mechanism is generally expensive to retrieve, so should only be requested when needed. See `EXTRA_DATA_RENDERING_INFO_KEY`, `EXTRA_DATA_TEXT_CHARACTER_LOCATION_KEY`, `getAvailableExtraData()` and `getExtraRenderingInfo()`.
`args` | `Bundle`: A bundle of arguments for the request. These depend on the particular request.

Returns
`boolean` | `true` if the refresh succeeded. `false` if the `View` represented by this node is no longer in the view tree (and thus this node is obsolete and should be recycled).

### removeAction

    public boolean removeAction (AccessibilityNodeInfo.AccessibilityAction 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` | `AccessibilityNodeInfo.AccessibilityAction`: The action to be removed.

Returns
`boolean` | The action removed from the list of actions.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### removeAction

    public void removeAction (int action)

This method is deprecated.
Use `removeAction(android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction)`

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` | `int`: The action to be removed.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### removeChild

    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` | `View`: The root of the virtual subtree.
`virtualDescendantId` | `int`: The id of the virtual child.

Returns
`boolean` | true if the child was present

See also:

- `addChild(View, int)`

### removeChild

    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` | `View`: The child.

Returns
`boolean` | true if the child was present

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setAccessibilityFocused

    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` | `boolean`: True if the node is accessibility focused.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setAvailableExtraData

    public void setAvailableExtraData (List<String> extraDataKeys)

Set the extra data available for this node.

Note: When a `View` passes in a non-empty list, it promises that it will populate the node's extras with corresponding pieces of information in `View#addExtraDataToAccessibilityNodeInfo(AccessibilityNodeInfo, String, Bundle)`.

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

Parameters
`extraDataKeys` | `List`: A list of types of extra data that are available.

Throws
`IllegalStateException` | If called from an AccessibilityService.

See also:

- `getAvailableExtraData()`

### setBoundsInParent

    public void setBoundsInParent (Rect bounds)

This method is deprecated.
Accessibility services should not care about these bounds.

Sets the node bounds in the viewParent's coordinates. `getParent()` does not represent the source's viewParent. Instead it represents the result of `View#getParentForAccessibility()`, which returns the closest ancestor where `View#isImportantForAccessibility()` is true. So this method is not reliable.

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

Parameters
`bounds` | `Rect`: The node bounds.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setBoundsInScreen

    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` | `Rect`: The node bounds.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setCanOpenPopup

    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` | `boolean`: If the the node opens a popup.

### setCheckable

    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` | `boolean`: True if the node is checkable.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setChecked

    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` | `boolean`: True if the node is checked.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setClassName

    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` | `CharSequence`: The class name.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setClickable

    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` | `boolean`: True if the node is clickable.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setCollectionInfo

    public void setCollectionInfo (AccessibilityNodeInfo.CollectionInfo collectionInfo)

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

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

Parameters
`collectionInfo` | `AccessibilityNodeInfo.CollectionInfo`: The collection info.

### setCollectionItemInfo

    public void setCollectionItemInfo (AccessibilityNodeInfo.CollectionItemInfo collectionItemInfo)

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

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

Parameters
`collectionItemInfo` | `AccessibilityNodeInfo.CollectionItemInfo`

### setContentDescription

    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` | `CharSequence`: The content description.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setContentInvalid

    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` | `boolean`: If the node content is invalid.

### setContextClickable

    public void setContextClickable (boolean contextClickable)

Sets whether this node is context clickable.

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

Parameters
`contextClickable` | `boolean`: True if the node is context clickable.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setDismissable

    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` | `boolean`: If the node can be dismissed.

### setDrawingOrder

    public void setDrawingOrder (int drawingOrderInParent)

Set the drawing order of the view corresponding it this node.

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

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setEditable

    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` | `boolean`: True if the node is editable.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setEnabled

    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` | `boolean`: True if the node is enabled.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setError

    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` | `CharSequence`: The error text.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setFocusable

    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` | `boolean`: True if the node is focusable.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setFocused

    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` | `boolean`: True if the node is focused.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setHeading

    public void setHeading (boolean isHeading)

Sets whether the node represents a heading.

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

Parameters
`isHeading` | `boolean`: `true` if the node is a heading, `false` otherwise.

### setHintText

    public void setHintText (CharSequence hintText)

Sets the hint text of this node. Only applies to nodes where text can be entered.

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

Parameters
`hintText` | `CharSequence`: The hint text for this mode.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setImportantForAccessibility

    public void setImportantForAccessibility (boolean important)

Sets whether the node is considered important for accessibility.

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

Parameters
`important` | `boolean`: `true` if the node is considered important for accessibility, `false` otherwise

### setInputType

    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` | `int`: The input type.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setLabelFor

    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 `View#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.

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

Parameters
`root` | `View`: The root whose virtual descendant serves as a label.
`virtualDescendantId` | `int`: The id of the virtual descendant.

### setLabelFor

    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` | `View`: The view for which this info serves as a label.

### setLabeledBy

    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` | `View`: The view that labels this node's source.

### setLabeledBy

    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 `View#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` | `View`: The root whose virtual descendant labels this node's source.
`virtualDescendantId` | `int`: The id of the virtual descendant.

### setLiveRegion

    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` | `int`: The live region mode, or `View#ACCESSIBILITY_LIVE_REGION_NONE` if the view is not a live region.

See also:

- `View.setAccessibilityLiveRegion(int)`

### setLongClickable

    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` | `boolean`: True if the node is long clickable.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setMaxTextLength

    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` | `int`: The maximum text length.

Throws
`IllegalStateException` | If called from an AccessibilityService.

See also:

- `getMaxTextLength()`

### setMovementGranularities

    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` | `int`: The bit mask with granularities.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setMultiLine

    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` | `boolean`: True if the node is multi line.

### setPackageName

    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` | `CharSequence`: The package name.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setPaneTitle

    public void setPaneTitle (CharSequence paneTitle)

If this node represents a visually distinct region of the screen that may update separately from the rest of the window, it is considered a pane. Set the pane title to indicate that the node is a pane, and to provide a title for it.

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

Parameters
`paneTitle` | `CharSequence`: The title of the pane represented by this node. This value may be `null`.

### setParent

    public void setParent (View root,
                    int virtualDescendantId)

Sets the parent to be a virtual descendant of the given `root`. If `virtualDescendantId` equals to `View#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` | `View`: The root of the virtual subtree.
`virtualDescendantId` | `int`: The id of the virtual descendant.

### setParent

    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` | `View`: The parent.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setPassword

    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` | `boolean`: True if the node is a password.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setRangeInfo

    public void setRangeInfo (AccessibilityNodeInfo.RangeInfo 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` | `AccessibilityNodeInfo.RangeInfo`: The range info.

### setScreenReaderFocusable

    public void setScreenReaderFocusable (boolean screenReaderFocusable)

Sets whether the node should be considered a focusable unit by a screen reader.

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

Parameters
`screenReaderFocusable` | `boolean`: `true` if the node is a focusable unit for screen readers, `false` otherwise.

### setScrollable

    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` | `boolean`: True if the node is scrollable, false otherwise.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setSelected

    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` | `boolean`: True if the node is selected.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setShowingHintText

    public void setShowingHintText (boolean showingHintText)

Sets whether the node's text represents a hint for the user to enter text. It should only be `true` if the node has editable text.

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

Parameters
`showingHintText` | `boolean`: `true` if the text in the node represents a hint to the user, `false` otherwise.

### setSource

    public void setSource (View source)

Sets the source.

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

Parameters
`source` | `View`: The info source.

### setSource

    public void setSource (View root,
                    int virtualDescendantId)

Sets the source to be a virtual descendant of the given `root`. If `virtualDescendantId` is `View#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` | `View`: The root of the virtual subtree.
`virtualDescendantId` | `int`: The id of the virtual descendant.

### setStateDescription

    public void setStateDescription (CharSequence stateDescription)

Sets the state description of this node.

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

Parameters
`stateDescription` | `CharSequence`: the state description of this node. This value may be `null`.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setText

    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` | `CharSequence`: The text.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setTextEntryKey

    public void setTextEntryKey (boolean isTextEntryKey)

Sets whether the node represents a text entry key that is part of a keyboard or keypad.

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

Parameters
`isTextEntryKey` | `boolean`: `true` if the node is a text entry key, `false` otherwise.

### setTextSelection

    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` | `int`: The text selection start.
`end` | `int`: The text selection end.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setTooltipText

    public void setTooltipText (CharSequence tooltipText)

Sets the tooltip text of this node.

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

Parameters
`tooltipText` | `CharSequence`: The tooltip text. This value may be `null`.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setTouchDelegateInfo

    public void setTouchDelegateInfo (AccessibilityNodeInfo.TouchDelegateInfo delegatedInfo)

Set touch delegate info if the represented view has a `TouchDelegate`.

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

Parameters
`delegatedInfo` | `AccessibilityNodeInfo.TouchDelegateInfo`: `TouchDelegateInfo` returned from `TouchDelegate#getTouchDelegateInfo()`. This value cannot be `null`.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### setTraversalAfter

    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` | `View`: The previous view.

See also:

- `getTraversalAfter()`

### setTraversalAfter

    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 `View#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` | `View`: The root of the virtual subtree.
`virtualDescendantId` | `int`: The id of the virtual descendant.

### setTraversalBefore

    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` | `View`: The view providing the preceding node.

See also:

- `getTraversalBefore()`

### setTraversalBefore

    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 `View#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` | `View`: The root of the virtual subtree.
`virtualDescendantId` | `int`: The id of the virtual descendant.

### setViewIdResourceName

    public void setViewIdResourceName (String viewIdResName)

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
`viewIdResName` | `String`: The id resource name.

### setVisibleToUser

    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` | `boolean`: Whether the node is visible to the user.

Throws
`IllegalStateException` | If called from an AccessibilityService.

### toString

    public String toString ()

Returns a string representation of the object. In general, the `toString` method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The `toString` method for class `Object` returns a string consisting of the name of the class of which the object is an instance, the at-sign character ``@`', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

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

Returns
`String` | a string representation of the object.

### writeToParcel

    public void writeToParcel (Parcel parcel,
                    int flags)

Flatten this object in to a Parcel.

Note: After the instance is written to a parcel it is recycled. You must not touch the object after calling this function.

Parameters
`parcel` | `Parcel`: The Parcel in which the object should be written.
`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

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*