首页 > 解决方案 > 防止屏幕阅读器/辅助技术触发点击处理程序

问题描述

我有这个链接:

<a href="/path/to/page" data-trigger="expedient-element">The Best Page</a>

当前页面中存在的 ajax-populated 和 -revealed 元素是一种“增强”,并且具有aria-hidden="true". 对于屏幕阅读器和辅助技术来说,最好按照链接的 href 指向后续静态页面,而不是触发点击处理程序(特别是因为它所作用的元素已经隐藏,如前所述)。

这种行为是否已经发生或者我需要添加一些东西?

标签: ajaxonclickaccessibilityscreen-readersprogressive-enhancement

解决方案


在链接上按 enter 时,它的作用与单击相同,并且为了做一些不同的事情而拦截 enter 键是一个非常糟糕的主意。

  • 有些键盘用户,视力很好,没有使用屏幕阅读器。这些用户将遇到意外行为。
  • 屏幕阅读器可以选择直接发送点击事件,而不是键盘事件,即使实际已经按下了 Enter。所以同上相反的方向。
  • 除了单击或输入之外,可能还有其他方法可以激活链接:空格键、点击触摸屏、辅助技术人员通过眨眼单击等。在这些情况下应该如何表现?

顺便说一句,你不能根据是否使用屏幕阅读器来做不同的事情,仅仅因为你没有 100% 可靠的方法来检测它。

你应该问自己的问题是:

  • 为什么你想要 click 和 enter 之间的不同行为?还是在屏幕阅读器和普通用户之间?
  • 您是否正在尝试解决无法访问的内容,或者您​​是否有相同内容的两个版本(一个可访问的和一个不可访问的)?在这种情况下,拥有单一内容并使其易于访问会更好。很少有真正不可能的情况,经验表明这两个版本最终会不同步,比你想象的要快。

推荐阅读