【问题标题】:Javascript: Capture swipe gesture using ontouchstart with iOS VoiceOver turned onJavascript:在打开 iOS VoiceOver 的情况下使用 ontouchstart 捕获滑动手势
【发布时间】:2016-01-11 01:40:42
【问题描述】:

我们正在开发一款使用左右滑动手势来导航内容的应用。对于使用 VoiceOver 屏幕阅读器的盲人用户,手势会被 VoiceOver 窃取。这是一个问题,因为滑动手势是我们应用的主要功能,并且非常适合盲人用户(但其他一些按钮需要 VoiceOver)。

我们正在使用 Cordova/PhoneGap 开发 HTML5 javascript。

理想情况下,我们希望禁用 VoiceOver 事件捕获或在区域(即 DIV)内禁用 VoiceOver。

Apple iOS 是主要目标,但理想情况下它也会使用 HTML5 ARIA 等标准,因为我们希望它在 Android 上也能与其他屏幕阅读器一起使用。

【问题讨论】:

    标签: javascript ios cordova accessibility wai-aria


    【解决方案1】:

    注意:下面提供的解决方案不是最佳的,最好提供与手势不同的解决方案。

    目前没有办法以编程方式开启 VoiceOver 手势拦截。唯一的方法是让用户使用 iOS 手势 passthru。为了启用此功能,您的手势区域必须集中并具有 role="application" 属性。

    An example can be seen here

    要使用 iOS 手势通道,请双击并按住一秒钟。 VoiceOver 轮廓将消失,然后可以使用任何拖动或滑动手势(您不能使用任何需要抬起手指的手势,因为这会禁用 passthru)。

    在我最近对 ​​iOS 8 的测试中,应用程序角色是必需的。链接的解决方案适用于所有 iOS 版本,包括最新版本 (9.2)。

    您必须通过提供带有说明的屏幕阅读器文本来告知 VoiceOver 用户如何使用 passthru。

    【讨论】:

    • 感谢您的解决方法。我试过了,我真的不知道该怎么做!正如您所说,这远非理想,老实说,我认为它会产生与解决的问题一样多的问题。还有其他想法吗?
    • 附言。我阅读了您的博客文章,感谢您撰写有关这些内容的文章-尽管unobfuscated.blogspot.co.nz/2013/11/… 似乎没有解决我的问题的实际方法
    • 真正的解决方案是不要像我在开头的笔记中指出的那样依赖手势
    • 是的,我想我可以创建一个屏幕阅读器会发现但有视力的用户不会看到的隐形按钮。不理想,但考虑到当画外音打开时手势不起作用,应该可以实现更好的可访问性。
    • 理想情况下,您应该创建一些仅限语音识别/键盘用户也可以使用的控件
    【解决方案2】:

    将 4 根手指放在任何地方并用一根手指在可滑动区域上滑动也可以。我在旋转木马上试过了

    【讨论】:

    • 有趣。虽然不是很好的可用性
    【解决方案3】:

    我们想出了一个解决方法,它适用于我们的用例。我已经从我的Speaking Email blog 中粘贴了有关我们如何实现这一目标的相关部分:

    最大的问题是 VoiceOver 接管了滑动手势,并且 我们应用程序的基本部分是我们所说的“电子邮件滑块”,其中 您通过左右滑动浏览电子邮件。

    我们设法通过将电子邮件滑块呈现为 ARIA 来解决这个问题 “tabset”,这是一个碰巧通过滑动来导航的组件 左和右。我们通过电子邮件的标题命名选项卡(例如“电子邮件 来自 Fred Flintstone”),因此用户可以在电子邮件和 听到 VoiceOver 读出电子邮件标题。几秒钟后 用户停止更改标签(即左右滑动),然后我们触发 我们自己的文本到语音引擎可以很好地读出电子邮件内容 通常。因此,我们设法使用向左和向右滑动界面 VoiceOver 和 WAI ARIA 标准。

    【讨论】:

      猜你喜欢
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 2015-11-13
      相关资源
      最近更新 更多