Flutter-将焦点转移到特定的小部件



我正在开发一款针对视障用户的flutter应用程序。在我的应用程序中,用户使用editbox搜索信息。应用程序没有通知用户搜索已完成。

我愿意通过将焦点转移到搜索结果上来做到这一点,这样屏幕阅读器就可以阅读它(Talkback或VoiceOver(。例如,在Android中,我可以使用:

View.requestFocus();

我正在寻找在颤振或自定义平台代码中执行相同操作的方法

我想澄清一些误解。我在其他地方看到了Aawaz Gyawali解决方案的变体。这行不通。

Flutter有两种类型的焦点。第一个是"输入焦点"。这决定了当前具有焦点的表单字段,以及FocusNode所处理的内容。

第二类重点是"无障碍重点"。这是TalkBack/Voiceover提供的方框。它与"输入焦点"完全分离。您可以随心所欲地更改输入焦点,但可访问性焦点将保持不变。

事实上,我们无法改变Flutter的无障碍关注点,这是一个巨大的疏忽,也是创建无障碍应用程序的主要障碍。

EDIT为了完整起见,我确实找到了一个丑陋的解决方法。

如果将焦点更改为表单字段,例如文本字段,则辅助功能焦点也将更新。

在我的情况下,我使用的是一个FlatButton,它几乎没有任何样式。显然,你必须让这个按钮的事情,但它至少能让你接近你想要的地方。

哈奇?当然,但我现在没有更好的选择。

您可以为此使用FocusNode。请在此处查看示例代码。

最新更新