| 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 fd77ec37dc708b1a1e8eac450b0a6398f5511b59..e78877d3185e26f51c6c6a6c2be261de9a8af869 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
|
| @@ -37,6 +37,10 @@ import java.util.Locale;
|
| public class BrowserAccessibilityManager {
|
| private static final String TAG = "BrowserAccessibilityManager";
|
|
|
| + // Constants from AccessibilityNodeInfo defined in the K SDK.
|
| + private static final int ACTION_COLLAPSE = 0x00080000;
|
| + private static final int ACTION_EXPAND = 0x00040000;
|
| +
|
| // Constants from AccessibilityNodeInfo defined in the L SDK.
|
| private static final int ACTION_SET_TEXT = 0x200000;
|
| private static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE =
|
| @@ -319,6 +323,11 @@ public class BrowserAccessibilityManager {
|
| return true;
|
| }
|
| return false;
|
| + case AccessibilityNodeInfo.ACTION_COLLAPSE:
|
| + case AccessibilityNodeInfo.ACTION_EXPAND:
|
| + // If something is collapsible or expandable, just activate it to toggle.
|
| + nativeClick(mNativeObj, virtualViewId);
|
| + return true;
|
| default:
|
| break;
|
| }
|
| @@ -807,7 +816,7 @@ public class BrowserAccessibilityManager {
|
| int virtualViewId, boolean canScrollForward, boolean canScrollBackward,
|
| boolean canScrollUp, boolean canScrollDown, boolean canScrollLeft,
|
| boolean canScrollRight, boolean clickable, boolean editableText, boolean enabled,
|
| - boolean focusable, boolean focused) {
|
| + boolean focusable, boolean focused, boolean isCollapsed, boolean isExpanded) {
|
| node.addAction(AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT);
|
| node.addAction(AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT);
|
| node.addAction(AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY);
|
| @@ -849,6 +858,14 @@ public class BrowserAccessibilityManager {
|
| if (clickable) {
|
| node.addAction(AccessibilityNodeInfo.ACTION_CLICK);
|
| }
|
| +
|
| + if (isCollapsed) {
|
| + node.addAction(ACTION_EXPAND);
|
| + }
|
| +
|
| + if (isExpanded) {
|
| + node.addAction(ACTION_COLLAPSE);
|
| + }
|
| }
|
|
|
| @CalledByNative
|
|
|