Skip to content

Commit 8bab6de

Browse files
committed
Add support for NEXT_HTML_ELEMENT to WebViewClassic.
Bug: 6663344 Change-Id: Ieb48998e3af12916fe499a12d5bf7a767df8d05b
1 parent 71fc205 commit 8bab6de

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

core/java/android/webkit/AccessibilityInjector.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -488,15 +488,19 @@ private boolean sendActionToAndroidVox(int action, Bundle arguments) {
488488
switch (action) {
489489
case AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY:
490490
case AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY:
491-
final int granularity = arguments.getInt(
492-
AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT);
493-
mAccessibilityJSONObject.accumulate("granularity", granularity);
491+
if (arguments != null) {
492+
final int granularity = arguments.getInt(
493+
AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT);
494+
mAccessibilityJSONObject.accumulate("granularity", granularity);
495+
}
494496
break;
495497
case AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT:
496498
case AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT:
497-
final String element = arguments.getString(
498-
AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING);
499-
mAccessibilityJSONObject.accumulate("element", element);
499+
if (arguments != null) {
500+
final String element = arguments.getString(
501+
AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING);
502+
mAccessibilityJSONObject.accumulate("element", element);
503+
}
500504
break;
501505
}
502506
} catch (JSONException e) {

core/java/android/webkit/AccessibilityInjectorFallback.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -272,11 +272,19 @@ private boolean traverseCurrentAxis(int direction, boolean sendEvent,
272272
boolean performAccessibilityAction(int action, Bundle arguments) {
273273
switch (action) {
274274
case AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY:
275-
case AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY:
275+
case AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY: {
276276
final int direction = getDirectionForAction(action);
277277
final int axis = getAxisForGranularity(arguments.getInt(
278278
AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT));
279279
return traverseGivenAxis(direction, axis, true, null);
280+
}
281+
case AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT:
282+
case AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT: {
283+
final int direction = getDirectionForAction(action);
284+
// TODO: Add support for moving by object.
285+
final int axis = NAVIGATION_AXIS_SENTENCE;
286+
return traverseGivenAxis(direction, axis, true, null);
287+
}
280288
default:
281289
return false;
282290
}
@@ -291,8 +299,10 @@ boolean performAccessibilityAction(int action, Bundle arguments) {
291299
*/
292300
private static int getDirectionForAction(int action) {
293301
switch (action) {
302+
case AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT:
294303
case AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY:
295304
return NAVIGATION_DIRECTION_FORWARD;
305+
case AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT:
296306
case AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY:
297307
return NAVIGATION_DIRECTION_BACKWARD;
298308
default:
@@ -316,8 +326,8 @@ private static int getAxisForGranularity(int granularity) {
316326
case AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE:
317327
return NAVIGATION_AXIS_SENTENCE;
318328
case AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH:
319-
// TODO: Figure out what nextSibling() actually means.
320-
return NAVIGATION_AXIS_SIBLING;
329+
// TODO: This should map to object once we implement it.
330+
return NAVIGATION_AXIS_SENTENCE;
321331
case AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE:
322332
return NAVIGATION_AXIS_DOCUMENT;
323333
default:

0 commit comments

Comments
 (0)