我正在为盲人创建应用程序。在那里,当盲人输入邮政编码后,在那个档案注册编辑文本框中,就像45987。它的读数是40 5,987。
但是,我想读一个四五九八七。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?
感谢预支
发布于 2018-09-08 02:28:42
通常,您不希望强制屏幕阅读器以特定的方式读取某些内容。不幸的是,屏幕阅读器用户习惯了阅读事物的方式。如果您的输入字段有一个正确关联的标签,比如"zipcode",那么当他们听到"zipcode 40 5,987“时,他们就会明白它是什么。屏幕阅读器用户可以按字符导航元素,以便他们可以根据需要单独读取每个数字。
重要的是,您有一个与输入字段相关联的标签。我知道你是专门为Android编写的(我不熟悉),但如果我将你正在做的事情与html进行比较,在html中,你可能会想要这样:
<label for="zip">zipcode:</label>
<input id="zip">有一些方法(在html中)可以强制屏幕阅读器所说的内容,但对于盲文用户来说,这通常会使事情变得混乱。您为强制屏幕阅读器语音而添加的任何“隐藏”文本都会实际显示在盲文设备上。
对于html,autocomplete属性可用作屏幕阅读器对字段中信息类型的“提示”。屏幕阅读软件可以使用该提示来更改它读取字段内容的方式(例如autocomplete="postal-code"),但是对该提示的支持还不是很广泛。同样,我知道这是为html编写的,而您是专门为android编写的,但也许android也有类似的“提示”概念。
发布于 2018-09-08 09:47:01
最好不要强迫Talk Back这样做。我的建议实际上是完全停止这样做。作为盲人,解析单个数字实际上比解析单个数字更容易。45,500比4,5,5,0,0更容易记住。将“45,987”从心理上覆盖到邮政编码就成了第二天性。如果有一个足够长的数字需要一次检查一个数字,TalkBack就有模式支持这一点。您可以将TalkBack切换到字符模式,然后手动探索它。
这个要求确实来自于有视力的人,像有视力的人一样思考,并解决盲人没有的问题。
既然另一个用户提出了这个问题,那么在Android中编写编辑文本的最好方法就是
TextView label = ....
EditText editBox = .....
label.setLabeFor(editBox);https://stackoverflow.com/questions/52215042
复制相似问题