AccessibilityNodeInfo.AccessibilityAction
public
static
final
class
AccessibilityNodeInfo.AccessibilityAction
extends Object
implements
Parcelable
java.lang.Object | |
↳ | android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction |
A class defining an action that can be performed on an AccessibilityNodeInfo
.
Each action has a unique id that is mandatory and optional data.
There are three categories of actions:
- Standard actions - These are actions that are reported and
handled by the standard UI widgets in the platform. For each standard action
there is a static constant defined in this class, e.g.
ACTION_FOCUS
. These actions will havenull
labels. - Custom actions action - These are actions that are reported and handled by custom widgets. i.e. ones that are not part of the UI toolkit. For example, an application may define a custom action for clearing the user history.
- Overridden standard actions - These are actions that override
standard actions to customize them. For example, an app may add a label to the
standard
ACTION_CLICK
action to indicate to the user that this action clears browsing history.
Actions are typically added to an AccessibilityNodeInfo
by using
AccessibilityNodeInfo#addAction(AccessibilityAction)
within
View#onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo)
and are performed
within View#performAccessibilityAction(int, Bundle)
.
Summary
Inherited constants |
---|
Fields | |
---|---|
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_ACCESSIBILITY_FOCUS
Action that gives accessibility focus to the node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_CLEAR_ACCESSIBILITY_FOCUS
Action that clears accessibility focus of the node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_CLEAR_FOCUS
Action that clears input focus of the node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_CLEAR_SELECTION
Action that deselects the node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_CLICK
Action that clicks on the node info. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_COLLAPSE
Action to collapse an expandable node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_CONTEXT_CLICK
Action that context clicks the node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_COPY
Action to copy the current selection to the clipboard. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_CUT
Action to cut the current selection and place it to the clipboard. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_DISMISS
Action to dismiss a dismissable node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_DRAG_CANCEL
Action to cancel a drag. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_DRAG_DROP
Action to trigger a drop of the content being dragged. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_DRAG_START
Action to start a drag. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_EXPAND
Action to expand an expandable node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_FOCUS
Action that gives input focus to the node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_HIDE_TOOLTIP
Action to hide a tooltip. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_IME_ENTER
Action to send an ime actionId which is from
|
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_LONG_CLICK
Action that long clicks on the node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_MOVE_WINDOW
Action to move a window to a new location. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_NEXT_AT_MOVEMENT_GRANULARITY
Action that requests to go to the next entity in this node's text at a given movement granularity. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_NEXT_HTML_ELEMENT
Action to move to the next HTML element of a given type. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_PAGE_DOWN
Action to move to the page below. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_PAGE_LEFT
Action to move to the page left. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_PAGE_RIGHT
Action to move to the page right. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_PAGE_UP
Action to move to the page above. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_PASTE
Action to paste the current clipboard content. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_PRESS_AND_HOLD
Action that presses and holds a node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
Action that requests to go to the previous entity in this node's text at a given movement granularity. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_PREVIOUS_HTML_ELEMENT
Action to move to the previous HTML element of a given type. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SCROLL_BACKWARD
Action to scroll the node content backward. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SCROLL_DOWN
Action to scroll the node content down. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SCROLL_FORWARD
Action to scroll the node content forward. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SCROLL_IN_DIRECTION
Action that brings fully on screen the next node in the specified direction. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SCROLL_LEFT
Action to scroll the node content left. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SCROLL_RIGHT
Action to scroll the node content right. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SCROLL_TO_POSITION
Action that scrolls the node to make the specified collection position visible on screen. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SCROLL_UP
Action to scroll the node content up. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SELECT
Action that selects the node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SET_PROGRESS
Action that sets progress between |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SET_SELECTION
Action to set the selection. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SET_TEXT
Action that sets the text of the node. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SHOW_ON_SCREEN
Action that requests the node make its bounding rectangle visible on the screen, scrolling if necessary just enough. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SHOW_TEXT_SUGGESTIONS
Action to show suggestions for editable text. |
public
static
final
AccessibilityNodeInfo.AccessibilityAction |
ACTION_SHOW_TOOLTIP
Action to show a tooltip. |
public
static
final
Creator<AccessibilityNodeInfo.AccessibilityAction> |
CREATOR
|
Public constructors | |
---|---|
AccessibilityAction(int actionId, CharSequence label)
Creates a new AccessibilityAction. |
Public methods | |
---|---|
int
|
describeContents()
Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
boolean
|
equals(Object other)
Indicates whether some other object is "equal to" this one. |
int
|
getId()
Gets the id for this action. |
CharSequence
|
getLabel()
Gets the label for this action. |
int
|
hashCode()
Returns a hash code value for the object. |
String
|
toString()
Returns a string representation of the object. |
void
|
writeToParcel(Parcel out, int flags)
Write data into a parcel. |
Inherited methods | |
---|---|
Fields
ACTION_ACCESSIBILITY_FOCUS
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_ACCESSIBILITY_FOCUS
Action that gives accessibility focus to the node.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_ACCESSIBILITY_FOCUSED
event
if successful. The node that is focused should return true
for
AccessibilityNodeInfo#isAccessibilityFocused()
.
This is intended to be used by screen readers to assist with user navigation. Apps changing focus can confuse screen readers, so the resulting behavior can vary by device and screen reader version.
This is distinct from ACTION_FOCUS
, which refers to system focus. System
focus is typically used to convey targets for keyboard navigation.
ACTION_CLEAR_ACCESSIBILITY_FOCUS
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_ACCESSIBILITY_FOCUS
Action that clears accessibility focus of the node.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED
event if successful. The
node that is cleared should return false
for
AccessibilityNodeInfo#isAccessibilityFocused()
.
ACTION_CLEAR_FOCUS
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_FOCUS
Action that clears input focus of the node.
The node that is cleared should return false
for
)
.
ACTION_CLEAR_SELECTION
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLEAR_SELECTION
Action that deselects the node.
See also:
ACTION_CLICK
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CLICK
Action that clicks on the node info.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_CLICKED
event. In the View system,
the default handling of this action when performed by a service is to call
View#performClick()
, and setting a
View#setOnClickListener(View.OnClickListener)
automatically adds this action.
AccessibilityNodeInfo.isClickable()
should return true if this action is available.
ACTION_COLLAPSE
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_COLLAPSE
Action to collapse an expandable node.
ACTION_CONTEXT_CLICK
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CONTEXT_CLICK
Action that context clicks the node.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_CONTEXT_CLICKED
event. In the View system,
the default handling of this action when performed by a service is to call
View#performContextClick()
, and setting a
View#setOnContextClickListener(View.OnContextClickListener)
automatically adds
this action.
A context click usually occurs from a mouse pointer right-click or a stylus button press.
AccessibilityNodeInfo.isContextClickable()
should return true if this action is available.
ACTION_COPY
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_COPY
Action to copy the current selection to the clipboard.
ACTION_CUT
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_CUT
Action to cut the current selection and place it to the clipboard.
ACTION_DISMISS
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DISMISS
Action to dismiss a dismissable node.
ACTION_DRAG_CANCEL
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_CANCEL
Action to cancel a drag.
This action is added to the source that started a drag with ACTION_DRAG_START
.
ACTION_DRAG_DROP
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_DROP
Action to trigger a drop of the content being dragged.
This action is added to potential drop targets if the source started a drag with
ACTION_DRAG_START
. In View, these targets are Views that accepted
DragEvent.ACTION_DRAG_STARTED
and have an
View.OnDragListener
, and the drop occurs at the center location of the View's
window bounds.
ACTION_DRAG_START
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_DRAG_START
Action to start a drag.
This action initiates a drag & drop within the system. The source's dragged content is
prepared before the drag begins. In View, this action should prepare the arguments to
View#startDragAndDrop(ClipData, View.DragShadowBuilder, Object, int)
and then
call View#startDragAndDrop(ClipData, View.DragShadowBuilder, Object, int)
with
View#DRAG_FLAG_ACCESSIBILITY_ACTION
. The equivalent should be performed for other
UI toolkits.
ACTION_EXPAND
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_EXPAND
Action to expand an expandable node.
ACTION_FOCUS
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_FOCUS
Action that gives input focus to the node.
The focus request send an event of AccessibilityEvent#TYPE_VIEW_FOCUSED
if successful. In the View system, this is handled by View#requestFocus
.
The node that is focused should return true
for
AccessibilityNodeInfo#isFocused()
.
See ACTION_ACCESSIBILITY_FOCUS
for the difference between system and
accessibility focus.
ACTION_HIDE_TOOLTIP
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_HIDE_TOOLTIP
Action to hide a tooltip. A node should expose this action only for views that are currently showing a tooltip.
ACTION_IME_ENTER
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_IME_ENTER
Action to send an ime actionId which is from
EditorInfo.actionId
. This ime actionId sets by
TextView#setImeActionLabel(CharSequence, int)
, or it would be
EditorInfo.IME_ACTION_UNSPECIFIED
if no specific
actionId has set. A node should expose this action only for views that are currently
with input focus and editable.
ACTION_LONG_CLICK
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_LONG_CLICK
Action that long clicks on the node.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_LONG_CLICKED
event. In the View system,
the default handling of this action when performed by a service is to call
View#performLongClick()
, and setting a
View#setOnLongClickListener(View.OnLongClickListener)
automatically adds this
action.
AccessibilityNodeInfo.isLongClickable()
should return true if this action is available.
ACTION_MOVE_WINDOW
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_MOVE_WINDOW
Action to move a window to a new location.
Arguments:
AccessibilityNodeInfo#ACTION_ARGUMENT_MOVE_WINDOW_X
AccessibilityNodeInfo#ACTION_ARGUMENT_MOVE_WINDOW_Y
ACTION_NEXT_AT_MOVEMENT_GRANULARITY
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_NEXT_AT_MOVEMENT_GRANULARITY
Action that requests to go to the next entity in this node's text at a given movement granularity. For example, move to the next character, word, etc.
Arguments:
Bundle arguments = new Bundle();
arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN,
false);
info.performAction(AccessibilityAction.ACTION_NEXT_AT_MOVEMENT_GRANULARITY.getId(),
arguments);
AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
,
AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
Example: Move to the previous character and do not extend selection.
See also:
AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
AccessibilityNodeInfo.getMovementGranularities()
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE
ACTION_NEXT_HTML_ELEMENT
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_NEXT_HTML_ELEMENT
Action to move to the next HTML element of a given type. For example, move to the BUTTON, INPUT, TABLE, etc.
Arguments:
Bundle arguments = new Bundle();
arguments.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON");
info.performAction(AccessibilityAction.ACTION_NEXT_HTML_ELEMENT.getId(), arguments);
AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING
Example:
ACTION_PAGE_DOWN
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_DOWN
Action to move to the page below.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event.
ACTION_PAGE_LEFT
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_LEFT
Action to move to the page left.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event.
ACTION_PAGE_RIGHT
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_RIGHT
Action to move to the page right.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event.
ACTION_PAGE_UP
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PAGE_UP
Action to move to the page above.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event.
ACTION_PASTE
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PASTE
Action to paste the current clipboard content.
ACTION_PRESS_AND_HOLD
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PRESS_AND_HOLD
Action that presses and holds a node.
This action is for nodes that have distinct behavior that depends on how long a press is
held. Nodes having a single action for long press should use ACTION_LONG_CLICK
instead of this action, and nodes should not expose both actions.
When calling performAction(ACTION_PRESS_AND_HOLD, bundle
, use
AccessibilityNodeInfo.ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT
to specify how long the
node is pressed. The first time an accessibility service performs ACTION_PRES_AND_HOLD
on a node, it must specify 0 as ACTION_ARGUMENT_PRESS_AND_HOLD, so the application is
notified that the held state has started. To ensure reasonable behavior, the values
must be increased incrementally and may not exceed 10,000. UIs requested
to hold for times outside of this range should ignore the action.
The total time the element is held could be specified by an accessibility user up-front, or may depend on what happens on the UI as the user continues to request the hold.
Note: The time between dispatching the action and it arriving in the UI process is not guaranteed. It is possible on a busy system for the time to expire unexpectedly. For the case of holding down a key for a repeating action, a delayed arrival should be benign. Please do not use this sort of action in cases where such delays will lead to unexpected UI behavior.
ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
Action that requests to go to the previous entity in this node's text at a given movement granularity. For example, move to the next character, word, etc.
Arguments:
Bundle arguments = new Bundle();
arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN,
false);
info.performAction(AccessibilityAction.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY.getId(),
arguments);
AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
,
AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
Example: Move to the next character and do not extend selection.
See also:
AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT
AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN
AccessibilityNodeInfo.setMovementGranularities(int)
AccessibilityNodeInfo.getMovementGranularities()
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE
ACTION_PREVIOUS_HTML_ELEMENT
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_PREVIOUS_HTML_ELEMENT
Action to move to the previous HTML element of a given type. For example, move to the BUTTON, INPUT, TABLE, etc.
Arguments:
Bundle arguments = new Bundle();
arguments.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON");
info.performAction(AccessibilityAction.ACTION_PREVIOUS_HTML_ELEMENT.getId(), arguments);
AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING
Example:
ACTION_SCROLL_BACKWARD
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_BACKWARD
Action to scroll the node content backward.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event. Depending on the orientation,
this element should also add the relevant directional scroll actions of
ACTION_SCROLL_LEFT
, ACTION_SCROLL_RIGHT
,
ACTION_SCROLL_UP
, and ACTION_SCROLL_DOWN
. If the scrolling brings
the next or previous element into view as the center element, such as in a ViewPager2,
use ACTION_PAGE_DOWN
and the other page actions instead of the directional
actions.
Example: a scrolling UI of horizontal orientation with a backward scroll action should also add the scroll left/right action (LTR/RTL):
onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
if (canScrollBackward) {
info.addAction(ACTION_SCROLL_FORWARD);
if (leftToRight) {
info.addAction(ACTION_SCROLL_LEFT);
} else {
info.addAction(ACTION_SCROLL_RIGHT);
}
}
}
performAccessibilityAction(int action, Bundle bundle) {
if (action == ACTION_SCROLL_BACKWARD) {
scrollBackward();
} else if (action == ACTION_SCROLL_LEFT) {
if (!isRTL()){
scrollBackward();
}
} else if (action == ACTION_SCROLL_RIGHT) {
if (isRTL()){
scrollBackward();
}
}
}
scrollBackward() {
...
if (mAccessibilityManager.isEnabled()) {
event = new AccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SCROLLED);
event.setScrollDeltaX(dx);
event.setScrollDeltaY(dy);
event.setMaxScrollX(maxDx);
event.setMaxScrollY(maxDY);
sendAccessibilityEventUnchecked(event);
}
}
ACTION_SCROLL_DOWN
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_DOWN
Action to scroll the node content down.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event.
ACTION_SCROLL_FORWARD
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_FORWARD
Action to scroll the node content forward.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event. Depending on the orientation,
this element should also add the relevant directional scroll actions of
ACTION_SCROLL_LEFT
, ACTION_SCROLL_RIGHT
,
ACTION_SCROLL_UP
, and ACTION_SCROLL_DOWN
. If the scrolling brings
the next or previous element into view as the center element, such as in a ViewPager2,
use ACTION_PAGE_DOWN
and the other page actions instead of the directional
actions.
Example: a scrolling UI of vertical orientation with a forward scroll action should also add the scroll down action:
onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
if (canScrollForward) {
info.addAction(ACTION_SCROLL_FORWARD);
info.addAction(ACTION_SCROLL_DOWN);
}
}
performAccessibilityAction(int action, Bundle bundle) {
if (action == ACTION_SCROLL_FORWARD || action == ACTION_SCROLL_DOWN) {
scrollForward();
}
}
scrollForward() {
...
if (mAccessibilityManager.isEnabled()) {
event = new AccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SCROLLED);
event.setScrollDeltaX(dx);
event.setScrollDeltaY(dy);
event.setMaxScrollX(maxDx);
event.setMaxScrollY(maxDY);
sendAccessibilityEventUnchecked(event);
}
}
ACTION_SCROLL_IN_DIRECTION
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_IN_DIRECTION
Action that brings fully on screen the next node in the specified direction.
This should include wrapping around to the next/previous row, column, etc. in a collection if one is available. If there is no node in that direction, the action should fail and return false.
This action should be used instead of
AccessibilityAction#ACTION_SCROLL_TO_POSITION
when a widget does not have
clear row and column semantics or if a directional search is needed to find a node in
a complex ViewGroup where individual nodes may span multiple rows or columns. The
implementing widget must send a
AccessibilityEvent#TYPE_VIEW_TARGETED_BY_SCROLL
accessibility event with the
scroll target as the source. An accessibility service can listen for this event,
inspect its source, and use the result when determining where to place accessibility
focus.
Arguments: AccessibilityNodeInfo.ACTION_ARGUMENT_DIRECTION_INT
. This is a
required argument.
ACTION_SCROLL_LEFT
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_LEFT
Action to scroll the node content left.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event.
ACTION_SCROLL_RIGHT
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_RIGHT
Action to scroll the node content right.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event.
ACTION_SCROLL_TO_POSITION
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_TO_POSITION
Action that scrolls the node to make the specified collection position visible on screen.
Arguments:
AccessibilityNodeInfo#ACTION_ARGUMENT_ROW_INT
AccessibilityNodeInfo#ACTION_ARGUMENT_COLUMN_INT
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event.
ACTION_SCROLL_UP
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SCROLL_UP
Action to scroll the node content up.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event.
ACTION_SELECT
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SELECT
Action that selects the node.
The view the implements this should send a
AccessibilityEvent#TYPE_VIEW_SELECTED
event.
See also:
ACTION_SET_PROGRESS
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_PROGRESS
Action that sets progress between RangeInfo.getMin()
and
RangeInfo.getMax()
. It should use the same value type as
RangeInfo.getType()
Arguments:
AccessibilityNodeInfo#ACTION_ARGUMENT_PROGRESS_VALUE
See also:
ACTION_SET_SELECTION
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_SELECTION
Action to set the selection. Performing this action with no arguments clears the selection.
Arguments:
Bundle arguments = new Bundle();
arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 1);
arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 2);
info.performAction(AccessibilityAction.ACTION_SET_SELECTION.getId(), arguments);
AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT
,
AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT
Example:
If this is a text selection, the UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_TEXT_SELECTION_CHANGED
event if its selection is
updated. This element should also return true
for
AccessibilityNodeInfo#isTextSelectable()
.
ACTION_SET_TEXT
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SET_TEXT
Action that sets the text of the node. Performing the action without argument,
using null
or empty CharSequence
will clear the text. This
action will also put the cursor at the end of text.
Arguments:
Bundle arguments = new Bundle();
arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,
"android");
info.performAction(AccessibilityAction.ACTION_SET_TEXT.getId(), arguments);
AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE
Example:
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_TEXT_CHANGED
event if its text is updated.
This element should also return true
for
AccessibilityNodeInfo#isEditable()
.
ACTION_SHOW_ON_SCREEN
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SHOW_ON_SCREEN
Action that requests the node make its bounding rectangle visible on the screen, scrolling if necessary just enough.
The UI element that implements this should send a
AccessibilityEvent#TYPE_VIEW_SCROLLED
event.
See also:
ACTION_SHOW_TEXT_SUGGESTIONS
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SHOW_TEXT_SUGGESTIONS
Action to show suggestions for editable text.
ACTION_SHOW_TOOLTIP
public static final AccessibilityNodeInfo.AccessibilityAction ACTION_SHOW_TOOLTIP
Action to show a tooltip. A node should expose this action only for views with tooltip text that but are not currently showing a tooltip.
CREATOR
public static final Creator<AccessibilityNodeInfo.AccessibilityAction> CREATOR
Public constructors
AccessibilityAction
public AccessibilityAction (int actionId, CharSequence label)
Creates a new AccessibilityAction. For adding a standard action without a specific label, use the static constants. You can also override the description for one the standard actions. Below is an example how to override the standard click action by adding a custom label:
AccessibilityAction action = new AccessibilityAction( AccessibilityAction.ACTION_CLICK.getId(), getLocalizedLabel()); node.addAction(action);
Parameters | |
---|---|
actionId |
int : The id for this action. This should either be one of the
standard actions or a specific action for your app. In that case it is
required to use a resource identifier. |
label |
CharSequence : The label for the new AccessibilityAction.
This value may be null . |
Public methods
describeContents
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 other)
Indicates whether some other object is "equal to" this one.
The equals
method implements an equivalence relation
on non-null object references:
- It is reflexive: for any non-null reference value
x
,x.equals(x)
should returntrue
. - It is symmetric: for any non-null reference values
x
andy
,x.equals(y)
should returntrue
if and only ify.equals(x)
returnstrue
. - It is transitive: for any non-null reference values
x
,y
, andz
, ifx.equals(y)
returnstrue
andy.equals(z)
returnstrue
, thenx.equals(z)
should returntrue
. - It is consistent: for any non-null reference values
x
andy
, multiple invocations ofx.equals(y)
consistently returntrue
or consistently returnfalse
, provided no information used inequals
comparisons on the objects is modified. - For any non-null reference value
x
,x.equals(null)
should returnfalse
.
An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.
Parameters | |
---|---|
other |
Object : This value may be null . |
Returns | |
---|---|
boolean |
true if this object is the same as the obj
argument; false otherwise. |
getId
public int getId ()
Gets the id for this action.
Returns | |
---|---|
int |
The action id. |
getLabel
public CharSequence getLabel ()
Gets the label for this action. Its purpose is to describe the action to user.
Returns | |
---|---|
CharSequence |
The label. |
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 inequals
comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. - If two objects are equal according to the
equals
method, then calling thehashCode
method on each of the two objects must produce the same integer result. - It is not required that if two objects are unequal
according to the
equals
method, then calling thehashCode
method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns | |
---|---|
int |
a hash code value for this object. |
toString
public String toString ()
Returns a string representation of the object.
Returns | |
---|---|
String |
a string representation of the object. |
writeToParcel
public void writeToParcel (Parcel out, int flags)
Write data into a parcel.
Parameters | |
---|---|
out |
Parcel : This value cannot be null . |
flags |
int : Additional flags about how the object should be written.
May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE .
Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE , and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES |