我正在为盲人创建应用程序。在那里,当盲人进入邮政编码后,在该档案上注册编辑文本框,如45987.它读作四五十九和七十八。
但是,我想读四五九九七。 4 5 9 8 7。
注意:当我在TextView中尝试相同时,其读取正确。只有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?
谢谢提前
通常,您不希望强制屏幕阅读器以特定方式阅读内容。不幸的是,屏幕阅读器用户已经习惯了阅读的方式。如果您的输入字段与其具有正确关联的标签,例如“zipcode”,那么当他们听到“zipcode四十五和九百八十七”时,他们就会明白它是什么。屏幕阅读器用户可以按字符导航元素,以便他们可以根据需要单独读取每个数字。
重要的是你有一个与输入字段相关的标签。我知道你是专门为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);