盲人能使用利用鼠标事件进行交互的网页吗?

3

具体问题是如果我使用类似以下代码:

$("#mytable").on("mousedown", "input", function(event) {...});

这个页面是否对视力有障碍的人友好?

一般来说,在 JavaScript 和 jQuery 中,还有其他需要避免的问题吗?

2个回答

3
有一种简单的方法来测试这种交互的基本可访问性:您能否使用Tab键和空格或回车键激活该项?
可访问性不仅关乎盲人,还有其他依赖键盘但不使用屏幕阅读器(例如具有运动障碍的人)的群体。无论哪种情况,似乎都存在两个问题:
  1. 表格通常不是可以使用键盘聚焦的元素,因此,如果用户通过单击它获取信息或激活功能,则也应该可用键盘选择。
  2. “mousedown”函数很少对键盘用户开放。(尽管使用屏幕阅读器的人可能可以通过模拟鼠标单击来使用它。)
假设元素不是链接或表单控件,则需要添加tabindex(在HTML中或通过JavaScript添加):
<table tabindex="0">

0值会将其放置在DOM中的tabindex位置。(http://www.w3.org/TR/wai-aria-practices/#focus_tabindex)

然后您应该确保按键也会触发事件,类似以下代码应该可以实现:

$("#test").mousedown(function() {
    // your function
});

// also activate with enter/space
$("#test").on("keydown", 
   function (e) {
    if (e.which === 13 || e.which === 32) {
        $('#test').click();
    } 
  }
);

(JavaScript/jQuery并不是我的强项,请检查按键代码并根据需要进行改进。它应该使人们能够按下空格或回车键来激活控件。)

通常,我会寻找一个已考虑到可访问性并谈论使用WAI-ARIA的JavaScript库。JQuery和jQuery UI是比较好的选择,但测试也很有用。通常使用标准的HTML控件,并用JS增强是最安全的方法,最好创建一个基本测试,并在像WebAim这样的列表上提出问题。


1
盲人可以使用利用鼠标事件进行交互的网页,前提是该页面还提供了替代的交互方法。即使没有提供替代方法,一些盲人也可能能够使用该页面,例如通过辅助软件将鼠标事件映射到他们可以使用的键盘事件。但是,您不应该依赖这一点。
WCAG 2.0有一个技术文档同时使用键盘和其他设备特定功能,其中建议将mousedown事件处理程序与keydown处理程序配对。如何做取决于上下文。有时您可以简单地将相同的处理程序分配给两个事件。但是,您还需要考虑使用鼠标的上下文。如果用户需要将鼠标移动到某个地方,然后按下鼠标按钮,则应尝试找到一种允许完成整个操作而无需看到任何内容的方法。

+1 for the reference. 我以前没有看过那个页面,非常有用。具体来说,对于有视力的访问者,我可以使用mousedown事件,但对于视力受损的访问者,应该将其与keydown或change事件相结合。 - kasdega

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接