检测页面级别的滑动(向左和向右)

问题描述 投票:0回答:3

我正在与辅助功能合作。当用户通过画外音访问电话时,他们使用向右滑动和向左滑动来到达该元素。我正在尝试检测页面级别的滑动,因此根据操作和当前活动元素,我可以动态地遍历。我们如何在 JavaScript 中检测网页级别的滑动?

javascript html reactjs accessibility wai-aria
3个回答
6
投票

关于如何检测扫描的纯技术答案已经给出,我没有什么可补充的。

但是,在谈论可访问性时,您必须记住,VoiceOver 用户使用扫描来在页面中导航,然后 您将无法使用 JavaScript 可靠地检测到扫描 因为这些扫描事件在 VoiceOver 处于活动状态时会被 VoiceOver 吸收。 你对此无能为力。如果 VoiceOver 处于活动状态,扫描等事件将不会传递到您的页面。 这导致了第二个建议:因为扫掠被 VoiceOver 吸收,VO 用户将永远无法触发您在扫掠上实施的操作。 因此,

提供另一种方式来执行相同的操作

,例如通过链接或按钮(而不是其他手势!),否则 VoiceOver 用户将无法使用您的网站。 不要用其他手势来替代,因为 VoiceOver 不仅仅捕捉扫动。 为了更好的可访问性,我什至建议根本不要使用手势检测,除非您进行仔细的测试。 VoiceOver 吸收一定数量的手势,但不是全部;对讲也吸收手势,但并非都是相同的;因此,可能会出现某个特定手势在 Android 上通过但在 iO 上不通过的情况;也可能发生某些手势在某些上下文中被吸收而在其他上下文中被吸收的情况(例如取决于当前关注的焦点)。 结果是不一致,并且让屏幕阅读器用户感到困惑。

对于扫描来说,你可能是安全的,它永远不会被通过。对于其他一些人,我不太确定,所以最好在多个平台上使用一些屏幕阅读器进行测试。


1
投票
https://stackoverflow.com/a/23230280/10761768

简而言之,您可以对整个页面或每个元素单独使用 JavaScript 作为

touchstart

touchmove
事件监听器,并使用
x
偏移量来识别它的前进方向。有一个库
HammerJS
为手势和触摸反应提供额外的帮助。
https://hammerjs.github.io/


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.