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

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

Issue 2421013002: Implement M SDK Android accessibility actions (Closed)
Patch Set: Rebase 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
« no previous file with comments | « content/browser/accessibility/browser_accessibility_manager_android.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1c34c0fc34a55cbe923123d1ab9b62800e53409a..5b56171eb4f22a9069263a9c71b331fc57cb0fcc 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
@@ -47,6 +47,15 @@ public class BrowserAccessibilityManager {
"ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
private static final int WINDOW_CONTENT_CHANGED_DELAY_MS = 500;
+ // 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;
+
private final AccessibilityNodeProvider mAccessibilityNodeProvider;
private ContentViewCore mContentViewCore;
private final AccessibilityManager mAccessibilityManager;
@@ -328,6 +337,20 @@ public class BrowserAccessibilityManager {
// If something is collapsible or expandable, just activate it to toggle.
nativeClick(mNativeObj, virtualViewId);
return true;
+ case ACTION_SHOW_ON_SCREEN:
+ nativeScrollToMakeNodeVisible(mNativeObj, virtualViewId);
+ return true;
+ case ACTION_CONTEXT_CLICK:
+ nativeShowContextMenu(mNativeObj, virtualViewId);
+ return true;
+ case ACTION_SCROLL_UP:
+ return nativeScroll(mNativeObj, virtualViewId, ScrollDirection.UP);
+ case ACTION_SCROLL_DOWN:
+ return nativeScroll(mNativeObj, virtualViewId, ScrollDirection.DOWN);
+ case ACTION_SCROLL_LEFT:
+ return nativeScroll(mNativeObj, virtualViewId, ScrollDirection.LEFT);
+ case ACTION_SCROLL_RIGHT:
+ return nativeScroll(mNativeObj, virtualViewId, ScrollDirection.RIGHT);
default:
break;
}
@@ -822,6 +845,8 @@ public class BrowserAccessibilityManager {
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);
if (editableText && enabled) {
// TODO: don't support actions that modify it if it's read-only (but
@@ -844,8 +869,21 @@ public class BrowserAccessibilityManager {
node.addAction(AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD);
}
- // TODO(dmazzoni): add custom actions for scrolling up, down,
- // left, and right.
+ if (canScrollUp) {
+ node.addAction(ACTION_SCROLL_UP);
+ }
+
+ if (canScrollDown) {
+ node.addAction(ACTION_SCROLL_DOWN);
+ }
+
+ if (canScrollLeft) {
+ node.addAction(ACTION_SCROLL_LEFT);
+ }
+
+ if (canScrollRight) {
+ node.addAction(ACTION_SCROLL_RIGHT);
+ }
if (focusable) {
if (focused) {
@@ -1152,4 +1190,6 @@ public class BrowserAccessibilityManager {
long nativeBrowserAccessibilityManagerAndroid, int id, int direction);
protected native String nativeGetSupportedHtmlElementTypes(
long nativeBrowserAccessibilityManagerAndroid);
+ private native void nativeShowContextMenu(
+ long nativeBrowserAccessibilityManagerAndroid, int id);
}
« no previous file with comments | « content/browser/accessibility/browser_accessibility_manager_android.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698