code: public static boolean performNavigationAtGranularityAction(
              AccessibilityNodeInfoCompat node, int direction, int granularity) {
          final int action = (direction == DIRECTION_FORWARD)
                  ? AccessibilityNodeInfoCompat.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
                  : AccessibilityNodeInfoCompat.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY;
          final Bundle args = new Bundle();
          args.putInt(
                  AccessibilityNodeInfoCompat.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT, granularity);
          return node.performAction(action, args);
      }
docs: Sends an instruction to ChromeVox to move within a page at a specified
  granularity in a given direction.
  <p>
  WARNING: Calling this method with a source node of
  {@link android.webkit.WebView} has the side effect of closing the IME
  if currently displayed.
  
  @param node The node containing web content with ChromeVox to which the
  message should be sent
  @param direction {@link #DIRECTION_FORWARD} or
  {@link #DIRECTION_BACKWARD}
  @param granularity The granularity with which to move or a special case argument.
  @return {@code true} if the action was performed, {@code false} otherwise.