在 Android 的 Talkback 辅助功能中将缩写或缩写发音为单个字符

1 android accessibility text-to-speech android-studio

我正在使用对讲来开发语音辅助功能,但是当画外音从文本视图中读取文本时,它将缩写/首字母缩写作为单词而不是单个字符读取。例如,FBI 应该是 FBI,而不是作为单词读出。

slu*_*ous 5

不要试图强迫屏幕阅读器以某种方式阅读单词或缩写。这可能会扰乱盲文用户的用户体验。屏幕阅读器具有控制详细程度以及如何处理全部大写单词的设置。这允许用户控制他们想要听到的方式。

此外,当单词以不熟悉的方式发音时,屏幕阅读器用户可以逐个字母导航以听到缩写。

2018 年 11 月 29 日更新:根据评论,以下是一些附加信息。

如果句子中间有缩写,例如

The FBI always gets its man
Run Code Online (Sandbox Code Playgroud)

那么您可以为屏幕阅读器设置隐藏文本,以强制单独发音字母,但我会再次强调,强烈建议不要这样做

<p>The FBI always gets its man</p>
Run Code Online (Sandbox Code Playgroud)

可以变成

<p>The <span aria-hidden="true">FBI</span> <span class="sr-only">F B I </span> always gets its man</p>
Run Code Online (Sandbox Code Playgroud)

因此,可见的“FBI”对屏幕阅读器来说是隐藏的,后面是视觉上隐藏的文本“FB I”,供屏幕阅读器作为单独的字母读出。

(“sr-only”类可以在什么是 Bootstrap 3 中的 sr-only?中看到)

强制这种行为有两个(至少)缺点:

  1. 如前所述,盲文用户将获得额外的文本。当然,在这种情况下,虽然没有那么多,但仍然增加了阅读盲文的开销。

    盲文版“FBI”的基本内容:FBI 的盲文
    开头有两个单点。第一个单点通常意味着下一个字符是大写的。当您连续有两个单点时,它就像一个“大写锁定”,因此它告诉您以下所有字母都是大写的。

    “FB I”中的嵌入空格在此输入图像描述
    在这种情况下,“大写”字符(单个点)必须出现在每个字母之前,因为它们是单独的“单词”并且每个字母之间有间隙。

    因此“FBI”占用 5 个单元格,“FB I”占用 8 个单元格。

  2. 第二个缺点是,在 iOS 设备和 Voiceover 上,由于段落 (<p>) 被嵌入的 <span> 元素分割,因此当您使用 Voiceover 向右滑动时,它会在每次中断时停止,因此您会听到“The” ,然后是“FB I”,然后是“总能找到人”。不是很好的用户体验。不确定 Talkback 是否也这样做。