diff options
| -rw-r--r-- | core/java/android/webkit/AccessibilityInjector.java | 16 | ||||
| -rw-r--r-- | core/java/android/webkit/AccessibilityInjectorFallback.java | 16 |
2 files changed, 23 insertions, 9 deletions
diff --git a/core/java/android/webkit/AccessibilityInjector.java b/core/java/android/webkit/AccessibilityInjector.java index 95694d8e1ddd..7dfb5bb102e2 100644 --- a/core/java/android/webkit/AccessibilityInjector.java +++ b/core/java/android/webkit/AccessibilityInjector.java @@ -483,15 +483,19 @@ class AccessibilityInjector { switch (action) { case AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY: case AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY: - final int granularity = arguments.getInt( - AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT); - mAccessibilityJSONObject.accumulate("granularity", granularity); + if (arguments != null) { + final int granularity = arguments.getInt( + AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT); + mAccessibilityJSONObject.accumulate("granularity", granularity); + } break; case AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT: case AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT: - final String element = arguments.getString( - AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING); - mAccessibilityJSONObject.accumulate("element", element); + if (arguments != null) { + final String element = arguments.getString( + AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING); + mAccessibilityJSONObject.accumulate("element", element); + } break; } } catch (JSONException e) { diff --git a/core/java/android/webkit/AccessibilityInjectorFallback.java b/core/java/android/webkit/AccessibilityInjectorFallback.java index 4d9c26c5305d..783b3db3b385 100644 --- a/core/java/android/webkit/AccessibilityInjectorFallback.java +++ b/core/java/android/webkit/AccessibilityInjectorFallback.java @@ -272,11 +272,19 @@ class AccessibilityInjectorFallback { boolean performAccessibilityAction(int action, Bundle arguments) { switch (action) { case AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY: - case AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY: + case AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY: { final int direction = getDirectionForAction(action); final int axis = getAxisForGranularity(arguments.getInt( AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT)); return traverseGivenAxis(direction, axis, true, null); + } + case AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT: + case AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT: { + final int direction = getDirectionForAction(action); + // TODO: Add support for moving by object. + final int axis = NAVIGATION_AXIS_SENTENCE; + return traverseGivenAxis(direction, axis, true, null); + } default: return false; } @@ -291,8 +299,10 @@ class AccessibilityInjectorFallback { */ private static int getDirectionForAction(int action) { switch (action) { + case AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT: case AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY: return NAVIGATION_DIRECTION_FORWARD; + case AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT: case AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY: return NAVIGATION_DIRECTION_BACKWARD; default: @@ -316,8 +326,8 @@ class AccessibilityInjectorFallback { case AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE: return NAVIGATION_AXIS_SENTENCE; case AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH: - // TODO: Figure out what nextSibling() actually means. - return NAVIGATION_AXIS_SIBLING; + // TODO: This should map to object once we implement it. + return NAVIGATION_AXIS_SENTENCE; case AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE: return NAVIGATION_AXIS_DOCUMENT; default: |