10

我正在开发的应用程序有一个被对讲错误发音的名称。我可以通过更改拼写在应用程序中解决此问题。但是,如果我更改清单中的 android:label 中的拼写,则会在手机上的应用程序图标上拼写错误。有没有人有办法解决这个问题?

4

3 回答 3

2

没有办法做到这一点。解决方法是让 LaunchScreen 能够读取替代标签,并将其放置在代表您的应用程序的 textView 的内容描述中。

TalkBack 会读回这样的内容。

  • 如果 contentDescription 可用,则将其读取。
  • 如果视图有“文本”,则将其读取。
  • 在所有其他情况下,视图都不是以可访问性为重点的。

因此,正在发生的事情是 TalkBack 正在抓取应用程序名称提供的视图的“文本”。启动屏幕不提供覆盖 contentDescription 的机制,因此只会读取您的文本。这不是您的应用程序的问题,而是主屏幕应用程序的问题。您可能可以为使用不同主屏幕应用程序的用户解决此问题,但绝对没有通用解决方案,当然也没有针对摩托罗拉、三星和 Nexus 设备(很可能还有其他设备)上提供的标准 LaunchScreen 应用程序的解决方案,但我不拥有它们中的任何一个)。

于 2015-03-06T15:57:15.083 回答
2

如果对讲没有正确发音首字母缩略词,尝试将其作为单词而不是单个字母来阅读,您可以使用零宽度不间断空格字符\ufeff以不可见的方式分隔字母。

假设你有这个词CAT,但你希望它发音C.A.T.

<string name="app_name">C\ufeffA\ufeffT</string>

它仍然会显示为CAT并且不会因换行而被破坏。

但是,您的用户将无法再通过键入 CAT 来搜索应用程序。

于 2017-03-27T19:02:52.630 回答
0

您可以通过以下方式以编程方式更改 TalkBack 读取的文本:

getWindow().getDecorView().setContentDescription("Name as pronounced")

于 2019-12-16T13:24:31.273 回答