繁体   English   中英

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

[英]Android Talkback not registering onFocus for web. How do I manipulate accessibility focus with Android Talkback?

如标题所示,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

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

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

如果满足以下条件:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM