微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Android对讲没有注册onFocus for web.如何使用Android Talkback操纵辅助功能焦点?

正如标题所说,Android Talkback没有注册onFocus事件.我知道onFocus事件从未被注册,因为屏幕阅读器使用的是特殊类型的accessibility focus.那么,我们如何驱动/操纵可访问性焦点以便为用户提供更好的体验?

在这里一个例子:https://codesandbox.io/s/r54j2mqrl4.所以这里的console.log(“你好!”)没有在移动Android Talkback中为我注册,但是它在桌面mac OSX上正确注册(没有打开屏幕阅读器).我正在使用tab键进行导航.

是否有类似onFocus事件的东西用于Android Talkback的可访问性焦点?

提前谢谢您的时间.

设备和版本:

移动Android对讲:三星galaxy Tab S2,Android 7.0版,谷歌Chrome 62.0.3202.84

桌面Mac OSX:macOS Sierra 10.12.6,谷歌浏览器61.0.3163.100

解决方法:

理论上“.focus()”方法应该有效.如果收到“焦点”的东西也不会获得可访问性焦点,那么问题就会发挥作用. Android辅助功能服务只能是辅助功能焦点,也可以访问辅助功能.

不幸的是,您不能直接从Javascript操纵辅助功能焦点,只关注焦点.这就是说,当你在Android中并且某些东西请求焦点时,这通常表明可访问性焦点也会随着焦点移动到该项目.在TalkBack术语中,这是Tab导航的工作方式,Accessibility Focus只是跟随输入焦点.它并不完美,但Focus和Accessibility Focus想要保持一致是合理的期望.虽然并非总是如此:在TalkBack中,EditTexts可以处于quazi聚焦/未聚焦状态,原因很简单……当字段仍然有光标(输入焦点)时,您可能需要与屏幕键盘进行交互.

如果以下情况属实:

>您的元素是可聚焦的可访问性
>你的元素是可聚焦的
> A11yFocusable和可聚焦的东西是相同的,而不仅仅是后代(非常重要).

您可以通过在Android设备监视器中探索来轻松确认上述三件事.三重检查你没有关注你所设想的可访问性焦点的东西(比如元素的孩子).

如果在那之后你在这个东西上调用了.focus(),并且它不起作用,你基本上在你用来呈现HTML / Javascript内容的webview中发现了一个错误,并且没有什么是你可以做的关于它.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐