in core/src/main/java/com/facebook/testing/screenshot/layouthierarchy/AccessibilityUtil.java [250:290]
public static boolean hasNonActionableSpeakingDescendants(
@Nullable AccessibilityNodeInfoCompat node, @Nullable View view) {
if (node == null || view == null || !(view instanceof ViewGroup)) {
return false;
}
final ViewGroup viewGroup = (ViewGroup) view;
for (int i = 0, count = viewGroup.getChildCount(); i < count; i++) {
final View childView = viewGroup.getChildAt(i);
if (childView == null) {
continue;
}
final AccessibilityNodeInfoCompat childNode = createNodeInfoFromView(childView);
try {
if (childNode == null) {
continue;
}
if (!childNode.isVisibleToUser()) {
continue;
}
if (isAccessibilityFocusable(childNode, childView)) {
continue;
}
if (isSpeakingNode(childNode, childView)) {
return true;
}
} finally {
if (childNode != null) {
childNode.recycle();
}
}
}
return false;
}