我正在为盲人创建应用程序。 在那里,当盲人在该配置文件注册后输入邮政编码后 编辑文本框,如 45987。它读作四万五千九百八十七。
但是,我想读一本四五九八七。 4 5 9 8 7.
注意:当我在 TexView 中尝试相同时,它的读数正确。 只有编辑文本的问题。
我的示例代码:zipCode_EditText.setContentDescription("4 5 9 8 7"(;
我已经参考了这些链接:
Android Acccessibility:如何更改 EditText View 大声朗读的文本
如何让TalkBack自动读取TextView错误消息?
感谢提前
通常,您不希望强制屏幕阅读器以特定方式阅读某些内容。 不幸的是,屏幕阅读器用户习惯了阅读的方式。 如果您的输入字段具有与其正确关联的标签,例如"邮政编码",那么当他们听到"邮政编码四万五千和九百八十七"时,他们将了解它是什么。 屏幕阅读器用户可以按字符导航元素,以便他们可以根据需要单独读取每个数字。
重要的部分是您有一个与输入字段关联的标签。 我知道你是专门为Android写的(我不熟悉(,但是如果我将你正在做的事情与html进行比较,在html中你会想要这样的东西:
<label for="zip">zipcode:</label>
<input id="zip">
有一些方法(在html中(可以强制屏幕阅读器说出内容,但它通常会使盲文用户感到混乱。 您为强制屏幕阅读器语音而添加的任何"隐藏"文本都会以物理方式显示在盲文设备上。
对于 html,autocomplete
属性可用作屏幕阅读器关于字段中信息类型的"提示"。 屏幕阅读软件可以使用该提示来更改它读取字段内容的方式(例如autocomplete="postal-code"
(,但对此提示的支持尚未得到广泛支持。 再说一次,我知道这是针对html的,你是专门为Android编写的,但也许Android也有类似的"提示"概念。
最好不要强迫 Talk Back 这样做。我的建议实际上是完全停止这样做。作为一个盲人,解析单个数字实际上比解析单个数字更容易。45,500 比 4、5、5、0、0 更容易记住。在精神上覆盖"四万五千九百八十七"到邮政编码成为第二天性。如果有一个数字足够长,需要一次检查一个数字,TalkBack 有模式来支持这一点。您可以将 TalkBack 切换到角色模式并像手动一样探索它。
这个要求实际上只是来自视力正常的人像视力正常的人一样思考并解决盲人没有的问题。
由于另一个用户提出了它,因此在Android中编写编辑文本的最佳方法是
TextView label = ....
EditText editBox = .....
label.setLabeFor(editBox);