android 在每句话后禁用TalkBack使用提示(“双击激活,双击并长按”)

ozxc1zmp  于 2023-01-15  发布在  Android
关注(0)|答案(4)|浏览(276)

我使用Appcelerator的Android应用程序,
设置accessibilityHint属性后,对讲完成此字符串,暂停并始终显示“双击激活,双击并长按”。如何禁用此功能?尝试使用accessibilityLabel或accessibilityValue,但没有运气。
在.xml文件中

<Label id='lblAppName' />

在.tss文件中

"#lblAppName":{
  accessibilityHint: 'Double tap here to activate me',
  text: L('app_name'),
  top:Alloy.Globals.sizes10,        
  left:Alloy.Globals.sizes58,
  right:Alloy.Globals.sizes57   
}
xdnvmnnf

xdnvmnnf1#

TalkBack宣布这一点是因为它检测到您的控件是可以与之交互的。例如:一个按钮。给定你的标记,特别是你的“accessibilityHint”,我假设它是一个Appcelerator属性,看起来你的控件确实是某种类型的按钮。为什么你想禁用这个有用的声明?
我的答案是删除您的提示,让Android操作系统按照自己的方式处理此按钮。您的提示并不比TalkBack的“提示”更有帮助,最好尽可能让辅助技术共享角色和指导信息。
让TalkBack不宣布这一点的唯一方法是使您的控件是非交互式的。如果TalkBack检测到一个控件可以交互(单击),它将宣布这些指令,对此您无能为力,也不应该做任何事情。

ghhaqwfi

ghhaqwfi2#

在Java中:

ViewCompat.setAccessibilityDelegate(view, new AccessibilityDelegateCompat() {
            @SuppressLint("NewApi")
            public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
                super.onInitializeAccessibilityNodeInfo(host, info);
                info.setClickable(true);
                info.setLongClickable(false);
                host.setLongClickable(false);
                info.setContentDescription("Talkback will speak it");
            }
        });

在Kotlin:

ViewCompat.setAccessibilityDelegate(<YOUR_TEXTVIEW>, object : AccessibilityDelegateCompat() {
            override fun onInitializeAccessibilityNodeInfo(host: View, info: AccessibilityNodeInfoCompat) {
                super.onInitializeAccessibilityNodeInfo(host, info)
                info.removeAction(AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_CLICK)
                info.isClickable = true
                info.isLongClickable = false
                info.contentDescription = "Talkback will speak it"
                host.isLongClickable = false
            }
        })
fquxozlt

fquxozlt3#

https://medium.com/android-microsoft/android-accessibility-resolving-common-talkback-issues-3c45076bcdf6
这可能会有帮助

ViewCompat.setAccessibilityDelegate(set_actions_button, object : AccessibilityDelegateCompat() {
    override fun onInitializeAccessibilityNodeInfo(v: View, info: AccessibilityNodeInfoCompat) {
        super.onInitializeAccessibilityNodeInfo(v, info)
        info.addAction(AccessibilityActionCompat(
            AccessibilityNodeInfoCompat.ACTION_CLICK, "Edit note"))
        info.addAction(AccessibilityActionCompat(
            AccessibilityNodeInfoCompat.ACTION_LONG_CLICK, "Copy note"))
    }
})
ctrmrzij

ctrmrzij4#

我的一些设备添加了“双击并按住长按”等,我只是想读我的整个段落,并添加“双击激活”只。所以我这样写;

ViewCompat.setAccessibilityDelegate(<YOUR_TEXTVIEW>, object : AccessibilityDelegateCompat() {
            override fun onInitializeAccessibilityNodeInfo(host: View, info: AccessibilityNodeInfoCompat) {
                super.onInitializeAccessibilityNodeInfo(host, info)
                info.removeAction(AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_CLICK)
                info.isClickable = false
                info.isLongClickable = false
                info.text = "${<YOUR_TEXTVIEW>.text}\n" + "Double tap to activate."
                host.isLongClickable = false
            }
        })

相关问题