0

我正在为盲人创建应用程序。在那里,当盲人在该个人资料注册编辑文本框中输入邮政编码后,如45987。它的读数为四万五千九百八十七。

但是,我想读四五九八七。4 5 9 8 7。

注意:当我在 TexView 中尝试相同时,它的读数是正确的。EditText 的唯一问题。

我的示例代码: zipCode_EditText.setContentDescription("4 5 9 8 7");

我已经提到了这些链接:

Android 可访问性:如何更改为 EditText 视图大声朗读的文本

如何让 TalkBack 自动读取 TextView 错误信息?

谢谢提前

4

2 回答 2

0

最好不要强制 Talk Back 执行此操作。我的建议实际上是完全停止这样做。作为盲人,解析单个数字实际上比解析单个数字更容易。45,500 比 4、5、5、0、0 更容易记住。将“四万五千九百八十七”心理覆盖到一个邮政编码成为第二天性。如果有一个足够长的号码,以至于需要一次检查一个号码,TalkBack 有支持它的模式。您可以将 TalkBack 切换到字符模式并手动进行探索。

这个要求真的只是来自有视力的人像有视力的人一样思考和解决盲人没有的问题。

并且由于另一个用户提出了它,在 Android 中编写编辑文本的最佳方法是

TextView label = ....
EditText editBox = .....

label.setLabeFor(editBox);
于 2018-09-08T01:47:01.307 回答
0

通常,您不希望强制屏幕阅读器以特定方式阅读某些内容。不幸的是,屏幕阅读器用户已经习惯了阅读方式。如果你的输入字段有一个正确关联的标签,例如“邮政编码”,那么当他们听到“邮政编码四万五千九百八十七”时,他们就会明白它是什么。屏幕阅读器用户可以按字符导航元素,以便他们可以根据需要单独阅读每个数字。

重要的部分是您有一个与输入字段关联的标签。我知道您是专门为 Android 编写的(我不熟悉),但是如果我将您正在做的事情与 html 进行比较,在 html 中您会想要类似的东西:

<label for="zip">zipcode:</label>
<input id="zip">

有一些方法(在 html 中)强制屏幕阅读器说什么,但它通常会让盲文用户搞砸。您添加以强制屏幕阅读器语音的任何“隐藏”文本都会物理显示在盲文设备上。

对于 html,该autocomplete属性可用作屏幕阅读器关于字段中信息类型的“提示”。屏幕阅读软件可以使用该提示来更改其读取字段内容(例如autocomplete="postal-code")的方式,但对该提示的支持尚未得到广泛支持。同样,我知道那是针对 html 的,而您是专门为 android 编写的,但也许对于 android 也有类似的“提示”概念。

于 2018-09-07T18:28:41.700 回答