我正在开发的应用程序有一个被对讲错误发音的名称。我可以通过更改拼写在应用程序中解决此问题。但是,如果我更改清单中的 android:label 中的拼写,则会在手机上的应用程序图标上拼写错误。有没有人有办法解决这个问题?
3 回答
没有办法做到这一点。解决方法是让 LaunchScreen 能够读取替代标签,并将其放置在代表您的应用程序的 textView 的内容描述中。
TalkBack 会读回这样的内容。
- 如果 contentDescription 可用,则将其读取。
- 如果视图有“文本”,则将其读取。
- 在所有其他情况下,视图都不是以可访问性为重点的。
因此,正在发生的事情是 TalkBack 正在抓取应用程序名称提供的视图的“文本”。启动屏幕不提供覆盖 contentDescription 的机制,因此只会读取您的文本。这不是您的应用程序的问题,而是主屏幕应用程序的问题。您可能可以为使用不同主屏幕应用程序的用户解决此问题,但绝对没有通用解决方案,当然也没有针对摩托罗拉、三星和 Nexus 设备(很可能还有其他设备)上提供的标准 LaunchScreen 应用程序的解决方案,但我不拥有它们中的任何一个)。
如果对讲没有正确发音首字母缩略词,尝试将其作为单词而不是单个字母来阅读,您可以使用零宽度不间断空格字符\ufeff
以不可见的方式分隔字母。
假设你有这个词CAT
,但你希望它发音C.A.T.
:
<string name="app_name">C\ufeffA\ufeffT</string>
它仍然会显示为CAT
并且不会因换行而被破坏。
但是,您的用户将无法再通过键入 CAT 来搜索应用程序。
您可以通过以下方式以编程方式更改 TalkBack 读取的文本:
getWindow().getDecorView().setContentDescription("Name as pronounced")