覆盖 AccessibillityNodeInfo 中的操作

Overriding action in AccessibillityNodeInfo

我有一个带有 AccessibilityDelegateCompat 的自定义视图用于初始化 AccessibilityNodeInfo,如何避免/删除视图默认的操作,如 'double tap to activate'?

我的 AccessibilityActionCompat 看起来像:

playVideoAction = new AccessibilityNodeInfoCompat
                .AccessibilityActionCompat(AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_ACCESSIBILITY_FOCUS
                .getId(),
                "Double tap to play video");

我在 onInitializeAccessibilityNodeInfo() 中调用 accessibilityNodeInfoCompat.addAction(playVideoAction)

我听到 'Double tap to play video' 和 'Double tap to activate'。我只想听到播放视频的动作。

如果您想修改主要交互模式(例如双击)的语音内容,您应该覆盖 CLICK 操作,而不是 FOCUS。

playVideoAction = new AccessibilityActionCompat(
    AccessibilityNodeInfoCompat.ACTION_CLICK, "play video");

此外,您的描述应该只包括将要执行的操作,而不是交互模型——所以 "play video." 无障碍服务负责管理交互模型并添加 "double tap to"描述。对于其他类型的无障碍服务,例如“开关控制”或“语音”,此描述会有所不同。