【问题标题】:Detect Swipe (Left and Right) on Page Level检测页面级别的滑动(左右)
【发布时间】:2019-12-22 04:59:30
【问题描述】:

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

【问题讨论】:

    标签: javascript html reactjs accessibility wai-aria


    【解决方案1】:

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

    但是,在谈到可访问性时,您必须记住,VoiceOver 用户使用扫描来在页面中导航,然后您将无法可靠地检测使用 JavaScript 进行的扫描 因为这些扫描事件在 VoiceOver 处于活动状态时会被 VoiceOver 吸收。 你对此无能为力。如果 VoiceOver 处于活动状态,则扫描等事件将不会传递到您的页面。

    这导致第二个建议:由于 VoiceOver 吸收了扫描,VO 用户将永远无法触发您在扫描上实施的操作。 因此,提供另一种方式来执行相同的操作,例如通过链接或按钮(不是其他手势!),否则 VoiceOver 用户将无法使用您的网站。 不要以其他手势作为替代,因为 VoiceOver 不只是捕捉扫描。

    为了更好的可访问性,我什至建议不要使用手势检测,除非您进行仔细测试。 VoiceOver 吸收了一定数量的手势,但不是全部;对讲也吸收了手势,但并非都是一样的;因此可能会发生特定手势在 Androit 上通过但在 iO 上不通过的情况;也可能发生某些手势在某些情况下被吸收但在其他情况下不被吸收(例如取决于当前关注的内容)。 结果是不一致,并且屏幕阅读器用户会感到困惑。

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

    【讨论】:

    • 嗨,QuentinC,你是对的。我有一种情况,我必须动态更改画外音焦点。我没有收到任何文件或其他东西。只有移动浏览器让我很难集中精力。
    【解决方案2】:

    我认为这个问题已经在 StackOverflow 上得到解答。我认为这将是https://stackoverflow.com/a/23230280/10761768 的一个很好的链接。

    简而言之,您可以对整个页面或每个元素单独使用 JavaScript 作为 touchstarttouchmove 事件侦听器,并使用 x 偏移量来确定它的方向。有一个库HammerJS 为手势和触摸反应提供额外帮助。 https://hammerjs.github.io/

    【讨论】:

      猜你喜欢
      • 2018-12-31
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 2015-01-17
      • 2012-08-29
      • 1970-01-01
      相关资源
      最近更新 更多