我正在使用辅助功能。当用户通过配音访问电话时,他们使用向右滑动和向左滑动来到达该元素。我正在尝试检测页面级别的滑动,因此基于动作和当前活动元素,我可以动态浏览。我们如何在JavaScript中检测网页级别的滑动?
答案 0 :(得分:1)
我认为这个问题已经在StackOverflow上得到了解答。我认为这将是该https://stackoverflow.com/a/23230280/10761768的良好链接。
简而言之,您可以将JavaScript用于整个页面或将每个元素分别用作touchstart
和touchmove
事件侦听器,并使用x
偏移量来确定其走向。有一个HammerJS
库,可为手势和触摸反应提供其他帮助。
https://hammerjs.github.io/
答案 1 :(得分:1)
关于如何检测扫描的纯技术性答案已经给出,我无话可说。
但是,在谈论可访问性时,必须记住,VoiceOver用户使用扫描来浏览页面,然后您将无法使用JavaScript可靠地检测扫描 因为这些扫描事件在VoiceOver处于活动状态时会被吸收。 你对此无能为力。如果VoiceOver处于活动状态,则扫描等事件不会传递到您的页面。
这导致第二条建议:由于扫描被VoiceOver吸收,因此VO用户将永远无法触发您在扫描中实施的操作。 因此,提供另一种执行相同操作的方法,例如通过链接或按钮(而不是其他手势!),否则VoiceOver用户将无法使用您的网站。 不要用其他手势代替,因为VoiceOver不仅会捕捉到扫动。
为了获得更好的可访问性,我什至建议您不要使用手势检测,除非您进行了仔细的测试。 VoiceOver会吸收一定数量的手势,但不是全部。对讲功能也可以吸收手势,但不能完全一样。因此,可能会在Androit上通过特定手势,但在iO上无法通过;也有可能某些手势在某些情况下会被吸收,而其他姿势则不会(例如,取决于当前所关注的内容)。 结果是不一致,并且使屏幕阅读器用户感到困惑。
对于扫描,您可能很安全,它永远不会通过。对于另一些人,我不确定,所以最好在几个平台上使用几个屏幕阅读器进行测试。