Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(383)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java

Issue 2453583003: Clean up two AccessibilityNodeInfo.addAction APIs (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
index b1cabade8c8e4e2395098d7e02c186740b523dd7..50f937c459c72b23ee504c30534fb4d7b3156f1b 100644
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
@@ -49,12 +49,12 @@ public class BrowserAccessibilityManager {
// Constants from AccessibilityNodeInfo defined in the M SDK.
// Source: https://developer.android.com/reference/android/R.id.html
- private static final int ACTION_CONTEXT_CLICK = 0x0102003c;
- private static final int ACTION_SHOW_ON_SCREEN = 0x01020036;
- private static final int ACTION_SCROLL_UP = 0x01020038;
- private static final int ACTION_SCROLL_DOWN = 0x0102003a;
- private static final int ACTION_SCROLL_LEFT = 0x01020039;
- private static final int ACTION_SCROLL_RIGHT = 0x0102003b;
+ protected static final int ACTION_CONTEXT_CLICK = 0x0102003c;
+ protected static final int ACTION_SHOW_ON_SCREEN = 0x01020036;
+ protected static final int ACTION_SCROLL_UP = 0x01020038;
+ protected static final int ACTION_SCROLL_DOWN = 0x0102003a;
+ protected static final int ACTION_SCROLL_LEFT = 0x01020039;
+ protected static final int ACTION_SCROLL_RIGHT = 0x0102003b;
private final AccessibilityNodeProvider mAccessibilityNodeProvider;
private ContentViewCore mContentViewCore;
@@ -841,8 +841,18 @@ public class BrowserAccessibilityManager {
}
}
- // LollipopBrowserAccessibilityManager overrides this with the non-deprecated APIs.
+ // For anything lower than API level 21 (Lollipop), calls AccessibilityNodeInfo.addAction(int)
+ // if it's a supported action, and does nothing otherwise. For 21 and higher, this is
+ // overridden in LollipopBrowserAccessibilityManager using the new non-deprecated API.
@SuppressWarnings("deprecation")
+ protected void addAction(AccessibilityNodeInfo node, int actionId) {
+ // Before API level 21, it's not possible to expose actions other than the "legacy standard"
+ // ones.
+ if (actionId > AccessibilityNodeInfo.ACTION_SET_TEXT) return;
+
+ node.addAction(actionId);
+ }
+
@CalledByNative
protected void addAccessibilityNodeInfoActions(AccessibilityNodeInfo node,
int virtualViewId, boolean canScrollForward, boolean canScrollBackward,
@@ -850,74 +860,74 @@ public class BrowserAccessibilityManager {
boolean canScrollRight, boolean clickable, boolean editableText, boolean enabled,
boolean focusable, boolean focused, boolean isCollapsed, boolean isExpanded,
boolean hasNonEmptyValue) {
- node.addAction(AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT);
- node.addAction(AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT);
- node.addAction(AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY);
- node.addAction(AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY);
- node.addAction(ACTION_SHOW_ON_SCREEN);
- node.addAction(ACTION_CONTEXT_CLICK);
+ addAction(node, AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT);
+ addAction(node, AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT);
+ addAction(node, AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY);
+ addAction(node, AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY);
+ addAction(node, ACTION_SHOW_ON_SCREEN);
+ addAction(node, ACTION_CONTEXT_CLICK);
if (editableText && enabled) {
// TODO: don't support actions that modify it if it's read-only (but
// SET_SELECTION and COPY are okay).
- node.addAction(ACTION_SET_TEXT);
- node.addAction(AccessibilityNodeInfo.ACTION_PASTE);
+ addAction(node, ACTION_SET_TEXT);
+ addAction(node, AccessibilityNodeInfo.ACTION_PASTE);
if (hasNonEmptyValue) {
- node.addAction(AccessibilityNodeInfo.ACTION_SET_SELECTION);
- node.addAction(AccessibilityNodeInfo.ACTION_CUT);
- node.addAction(AccessibilityNodeInfo.ACTION_COPY);
+ addAction(node, AccessibilityNodeInfo.ACTION_SET_SELECTION);
+ addAction(node, AccessibilityNodeInfo.ACTION_CUT);
+ addAction(node, AccessibilityNodeInfo.ACTION_COPY);
}
}
if (canScrollForward) {
- node.addAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD);
+ addAction(node, AccessibilityNodeInfo.ACTION_SCROLL_FORWARD);
}
if (canScrollBackward) {
- node.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD);
+ addAction(node, AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD);
}
if (canScrollUp) {
- node.addAction(ACTION_SCROLL_UP);
+ addAction(node, ACTION_SCROLL_UP);
}
if (canScrollDown) {
- node.addAction(ACTION_SCROLL_DOWN);
+ addAction(node, ACTION_SCROLL_DOWN);
}
if (canScrollLeft) {
- node.addAction(ACTION_SCROLL_LEFT);
+ addAction(node, ACTION_SCROLL_LEFT);
}
if (canScrollRight) {
- node.addAction(ACTION_SCROLL_RIGHT);
+ addAction(node, ACTION_SCROLL_RIGHT);
}
if (focusable) {
if (focused) {
- node.addAction(AccessibilityNodeInfo.ACTION_CLEAR_FOCUS);
+ addAction(node, AccessibilityNodeInfo.ACTION_CLEAR_FOCUS);
} else {
- node.addAction(AccessibilityNodeInfo.ACTION_FOCUS);
+ addAction(node, AccessibilityNodeInfo.ACTION_FOCUS);
}
}
if (mAccessibilityFocusId == virtualViewId) {
- node.addAction(AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS);
+ addAction(node, AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS);
} else {
- node.addAction(AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS);
+ addAction(node, AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS);
}
if (clickable) {
- node.addAction(AccessibilityNodeInfo.ACTION_CLICK);
+ addAction(node, AccessibilityNodeInfo.ACTION_CLICK);
}
if (isCollapsed) {
- node.addAction(ACTION_EXPAND);
+ addAction(node, ACTION_EXPAND);
}
if (isExpanded) {
- node.addAction(ACTION_COLLAPSE);
+ addAction(node, ACTION_COLLAPSE);
}
}

Powered by Google App Engine
This is Rietveld 408576698