我正在开发针对视觉障碍用户的Flutter应用程序。在我的应用程序中,用户使用editbox搜索信息之后。该应用缺少通知用户搜索已完成的功能。
我愿意通过将焦点转移到搜索结果上来做到这一点,以便屏幕阅读器可以读取它(“对讲”或“旁白”)。例如,在Android中,我可以使用:
View.requestFocus();
我正在寻找在Flutter或自定义平台代码中执行相同操作的方法
答案 0 :(得分:0)
您可以为此使用FocusNode
。
检查示例代码here。
答案 1 :(得分:0)
我想澄清一些误解。我在其他地方看到过Aawaz Gyawali解决方案的变化。这行不通。
Flutter有两种焦点类型。第一个是“输入焦点”。这确定了当前具有焦点的表单字段,这就是FocusNode处理的内容。
第二种焦点是“可访问性焦点”。这是“话语提示” /“旁白”显示的框。它与“输入焦点”完全分开。您可以随意更改输入焦点,但是该可访问性焦点将保持不变。
我们无法更改Flutter中的可访问性焦点这一事实是一个巨大的监督,也是创建可访问应用程序的主要障碍。
编辑 为了完整起见,我确实找到了一个丑陋的解决方法。
如果将焦点更改为表单字段(例如文本字段),则可访问性焦点也将更新。
在我的情况下,我使用的FlatButton几乎没有任何样式。显然,您必须使该按钮 do 起作用,但这至少会使您进入想要的位置。
强悍?绝对可以,但这是我目前所拥有的,而不是更好的选择。