code: public static boolean isAccessibilityFocusable(
              Context context, AccessibilityNodeInfoCompat node) {
          if (node == null) {
              return false;
          }
  
          // Never focus invisible nodes.
          if (!isVisibleOrLegacy(node)) {
              return false;
          }
  
          // Always focus "actionable" nodes.
          if (isActionableForAccessibility(node)) {
              return true;
          }
  
          if ((Build.VERSION.SDK_INT < 16)) {
              // In pre-JellyBean, always focus ALL top-level list items and items
              // that should have independently focusable children.
              if (isTopLevelScrollItem(context, node)) {
                  return true;
              }
          } else {
              // In post-JellyBean, only focus top-level list items with
              // non-actionable speaking children.
              if (isTopLevelScrollItem(context, node)
                      && (isSpeakingNode(context, node)
                              || hasNonActionableSpeakingChildren(context, node))) {
                  return true;
              }
          }
  
  
          return false;
      }
docs: Returns whether a node should receive focus from focus traversal or touch
  exploration. One of the following must be true:
  <ul>
  <li>The node is actionable (see
  {@link #isActionableForAccessibility(AccessibilityNodeInfoCompat)})</li>
  <li>The node is a top-level list item (see
  {@link #isTopLevelScrollItem(Context, AccessibilityNodeInfoCompat)})</li>
  </ul>
  
  @param node
  @return {@code true} of the node is accessibility focusable.