问答 百科手机端

Android Talkback未在网络上注册onFocus。如何使用Android Talkback操作可访问性焦点?

2023-04-29 14:38

理论上,“。focus()”方法应该有效。如果正在接收“焦点”的事物也不会获得可访问性焦点,则该问题将发挥作用。Android辅助功能服务只能关注可访问性,而可访问性也是可聚焦的。

不幸的是,您不能直接从Javascript操作Accessibility Focus,而只能从焦点。话虽这么说,当您使用Android且某些内容需要焦点时,这通常表明可访问性焦点也将与焦点一起移至该项目。用话语提示来说,这就是Tab导航的工作方式,“辅助功能焦点”仅跟随输入焦点。这不是完美的,但是可以合理地期望Focus和Accessibility Focus希望相同。并非总是如此:出于充分的理由,EditTexts在TalkBack中可以处于准聚焦/未聚焦状态,这可能是因为您可能需要与屏幕键盘交互,而该字段仍具有光标(输入焦点)。

如果满足以下条件:

  • 您的元素具有可访问性
  • 您的元素具有重点
  • A11yFocusable和可聚焦的东西是相同的,而不仅仅是后代(非常重要)。

您可以通过在Android设备监视器中进行浏览轻松确认上述三件事。仔细检查您是否没有将某个对象(例如元素的子对象)集中在您希望获得的可访问性上。

如果之后,您在该事物上调用了.focus(),但它不起作用,则说明您实际上在用于呈现HTML / Javascript内容的Web视图中发现了一个错误,那么您将无能为力关于它。

如标题所示,Android
Talkback未注册该onFocus事件。我知道该onFocus事件从未注册过,因为屏幕阅读器使用的是特殊类型的可访问性焦点。那么,我们如何才能驱动/操纵可访问性焦点,从而为用户提供更好的体验?

我在这里有一个示例:https :
//codesandbox.io/s/r54j2mqrl4。因此,此处console.log("hello!")未在移动Android
Talkback中为我注册,但是已在台式机Mac OSX(未启用屏幕阅读器)上正确注册。我正在使用Tab键进行导航。

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

预先感谢您的宝贵时间。

设备和版本

移动Android对讲:Samsung Galaxy Tab S2,Android 7.0版,Google Chrome 62.0.3202.84

桌面Mac OSX:macOS Sierra 10.12.6,Google Chrome 61.0.3163.100

热门