Calculate talkback role based on supported paging actions
Summary: Google Talkback identifies nodes with supported actions up, down, left and right to be of the role Pager. Reference here: https://github.com/google/talkback/blob/master/utils/src/main/java/com/google/android/accessibility/utils/Role.java#L376-L385 This diff give us the ability to correctly calculate those roles when we come across them in flipper Reviewed By: blavalla Differential Revision: D40449485 fbshipit-source-id: 5a9dfe3f807b7fce8043eaab2695d864f93a1392
This commit is contained in:
committed by
Facebook GitHub Bot
parent
c1ec891fd0
commit
d28aab50d7
@@ -11,6 +11,7 @@ import android.view.View;
|
||||
import android.view.accessibility.AccessibilityNodeInfo;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
|
||||
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
@@ -119,6 +120,17 @@ public class AccessibilityRoleUtil {
|
||||
}
|
||||
|
||||
if (role.equals(AccessibilityRole.NONE)) {
|
||||
if (AccessibilityUtil.supportsAction(
|
||||
nodeInfo, AccessibilityActionCompat.ACTION_PAGE_UP.getId())
|
||||
|| AccessibilityUtil.supportsAction(
|
||||
nodeInfo, AccessibilityActionCompat.ACTION_PAGE_DOWN.getId())
|
||||
|| AccessibilityUtil.supportsAction(
|
||||
nodeInfo, AccessibilityActionCompat.ACTION_PAGE_LEFT.getId())
|
||||
|| AccessibilityUtil.supportsAction(
|
||||
nodeInfo, AccessibilityActionCompat.ACTION_PAGE_RIGHT.getId())) {
|
||||
return AccessibilityRole.PAGER;
|
||||
}
|
||||
|
||||
AccessibilityNodeInfoCompat.CollectionInfoCompat collection = nodeInfo.getCollectionInfo();
|
||||
if (collection != null) {
|
||||
// RecyclerView will be classified as a list or grid.
|
||||
|
||||
@@ -211,7 +211,7 @@ public final class AccessibilityUtil {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean supportsAction(AccessibilityNodeInfoCompat node, int action) {
|
||||
protected static boolean supportsAction(AccessibilityNodeInfoCompat node, int action) {
|
||||
if (node != null) {
|
||||
final int supportedActions = node.getActions();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user