当前位置: 首页 > 知识库问答 >
问题:

Android:扩展SeekBar时如何消除AccessibilityEvents中的口语文本?

潘英豪
2023-03-14

我的Android应用程序包含一个基于SeekBar的自定义滑块控件,我想将自定义文本短语附加到我的控件以解释其用于辅助功能。

我已经使用View.setContentDescription(text)成功做到了这一点,当我从Activity.onCreate请求关注我的滑块控件时,TalkBack正确地说出了这个短语。

到目前为止,一切顺利。然而,当我触摸该控件时,我相信它设置了我的Android API 16测试设备上的AccessibilityFocus,额外的单词被添加到口语短语中,即...寻求控制。“0%”。我想删除这些附加的单词。

我试图在View.onInitializeAccessibilityEvent(event)中使用event.getText().clear()消除它们,但没有成功。将事件回显 LogCat 会在 event.contentDescription 中报告正确的短语,而在 event.text 中没有条目,但额外的单词既出现在设备硬件的音频输出中,也出现在 Menu 显示的屏幕调试文本中-

有人能建议在哪里添加额外的单词,以及如何消除它们吗?

欢迎任何建设性的建议。谢谢。

更新

我可以看到,我的自定义控件上的某些按触摸浏览(初始单点点击)事件不会通过其<code>onInitializeAccessibilityEvent。尽管如此,在<code>活动中设置的自定义控件的<code>ContentDescription</code>,仍会生成<code>AccessibilityEvent</code>。onCreate在代码中,加上我试图消除的额外单词。

我还在自定义控件的父级<code>视图组<code>上设置了<code>AccessibilityDelegate

这是非常令人费解的,在模拟器和使用API 16的真实硬件上都会发生。有什么想法吗?

共有2个答案

贝镜
2023-03-14

我认为这是反馈中的一个错误,并提出了Google Eyes免费问题#375,包括示例代码

更新:谷歌现在已经存档了。链接移至:http://code.google.com/archive/p/eyes-free/issues/375

宗穆冉
2023-03-14

您还需要覆盖http://developer.android.com/reference/android/view/View.html#onInitializeAccessibilityNodeInfo(android.view.accessibility.AccessibilityNodeInfo)

并将内容描述设置在那里。

如果您想删除0%,我会尝试更改AccessibilityNodeInfo/AccessibilityEvent:http://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.html#setClassName(java.lang.CharSequence)中的类

 类似资料:
  • 当前在VSCode设置中,您可以按以下方式配置保存时的格式: 我想排除一些文件扩展名,例如只格式化JavaScript,但不包括超文本标记语言文件。

  • 我正在编写一个需要扩展文件的应用程序,我想确保它与Android Q兼容。看来提供的文档没有解决Android Q中的更改。在Android Q中,将无法使用,所以我们如何访问扩展文件?

  • 问题内容: (不包括任何外部库。) 在不假定任何文件名的情况下,删除Java中文件名扩展名的最有效方法是什么? 一些例子和预期结果: 文件夹>文件夹 hello.txt>你好 read.me>阅读 hello.bkp.txt> hello.bkp 怪异..名称>怪异。 .hidden> .hidden (或者应该只 隐藏 最后一个?) 编辑 :原始问题假定输入是文件名(而不是文件路径)。由于一些答

  • 问题内容: 给定一个文件名,例如: 我想删除扩展名(如果存在)。我怎样用Java做这个?谢谢! 问题答案: 就像是 索引检查可避免将“ ” 等隐藏文件转换为“”,并避免使用诸如的名称。

  • 我知道有很多关于这个话题的帖子,但似乎没有一条适合我。我不确定这是否是因为我必须对两个服务器块都这样做,或者我做错了什么。请帮帮我。 下面是我在Amazon远程服务器上的nginx配置,第一个块表示后端,第二个块表示前端:

  • 问题内容: 我想使用Activity扩展ListActivity进行PullToRefresh。但是我已经使用CustomActionBar了,这就是为什么使用AppCompatActivity.How解决此问题的原因。感谢Advanced 代替这个: 问题答案: 如果要在应用程序中使用ListView,请直接使用它而不扩展ListActivity。像这样