我正在为盲人创建应用程序。在那里,当盲人在个人资料注册“编辑文本”框中输入邮政编码后,例如45987。它的读数为459 897。
但是,我想读四五九八七。 4 5 9 8 7。
注意:当我在TexView中尝试相同操作时,其读数正确。唯一的问题是EditText。
我的示例代码:zipCode_EditText.setContentDescription(“ 4 5 9 8 7”);
我已引用以下链接:
Android Acccessibility: How do I change the text read out loud for an EditText View
How to make TalkBack read TextView error message automatically?
感谢进阶
答案 0 :(得分:0)
通常,您不想强迫屏幕阅读器以特定方式阅读某些内容。不幸的是,屏幕阅读器用户习惯了阅读事物的方式。如果您的输入字段带有正确关联的标签,例如“邮政编码”,那么当他们听到“邮政编码459和987”时,他们会明白它是什么。屏幕阅读器用户可以按字符浏览元素,因此他们可以根据需要分别阅读每个数字。
重要的部分是您具有与输入字段关联的标签。我知道您是专门为Android(我不熟悉)而写的,但是如果我将自己的工作与html进行比较,那么在html中,您会想要以下内容:
<label for="zip">zipcode:</label>
<input id="zip">
有一些方法(以html格式)可以强制屏幕阅读器说出什么,但通常会给盲文用户带来麻烦。您添加的用于强制屏幕阅读器讲话的任何“隐藏”文本都会实际显示在盲文设备上。
对于html,autocomplete
属性可以用作“提示”,以针对字段中的信息类型向读者显示屏幕。屏幕阅读软件可以使用该提示来更改其读取字段内容的方式(例如autocomplete="postal-code"
),但是对该提示的支持尚未得到广泛支持。同样,我知道这是针对html的,而您是专门为android编写的,但是对于android,也许还有一个类似的“提示”概念。
答案 1 :(得分:0)
最好不要强迫“回话”执行此操作。我的建议实际上是完全停止这样做。作为盲人,解析单个数字实际上比单个数字更容易。 45,500比4、5、5、0、0更容易记住。在心理上将“四万五千九百八十七”覆盖到邮政编码成为第二自然。而且,如果有足够长的号码,一次需要检查一个号码,那么TalkBack可以提供支持该功能的模式。您可以将“话语提示”切换为字符模式,然后手动进行浏览。
这个要求实际上只是来自有见识的人像有见识的人那样思考,并解决了盲人没有的问题。
由于另一个用户提出了它,所以在Android中编写编辑文本的最佳方法是
TextView label = ....
EditText editBox = .....
label.setLabeFor(editBox);