Firefox上的VoiceOver-读取所有可点击的元素



当我们在页面上使用VoiceOver时,在每个元素上都会读取单词"可点击的"-关于标题、表格、段落等

页面正在使用Backbone生成UI。每当视图具有events属性时,就会出现问题。如果删除events属性或将其保留为空,则不会出现问题。

有人不得不处理同样的问题吗?知道我在这里能做什么吗?我们需要那些在主干视图的events属性中描述的事件处理程序:(

=====

附言:这里有一个JS fiddle演示了这个问题:https://jsfiddle.net/e5utd39o

还有-问题的屏幕截图:https://postimg.cc/YGyGmK2f

我想这个问题的发生是因为Backbone在视图中的顶级元素上使用了事件委派,并且因为所有东西都被放置在该根元素中——这导致了Firefox上VoiceOver中的行为。但即使我是对的,我也不知道如何解决这个问题。

您的fiddle代码没有显示该问题,因为它不会将点击事件处理程序添加到除按钮之外的任何内容中。这些并没有被宣布为";可点击";。

我刚试了一个基本的案子(没有骨干(。是的,事实上,Firefox在;可点击的";到具有单击处理程序的"不可操作"元素的可访问名称。它对按钮等可操作元件不起作用。

这当然没有错。真正的问题是:为什么你需要标题、表格和段落的点击处理程序?

如果你真的需要一个标题来表现(语义上(像一个标题,那么它不应该有点击事件处理程序。标题起着非常重要的作用。可点击不是它。("一个角色就是一个承诺"(。

可以在标题中放置一个按钮,并将单击事件附加到标题中。作为一个按钮,它将被宣布为";按钮";,而不是作为";可点击";。另一种选择是在标题中放一个超链接。这将被宣布为";链接";当然这两种方法都提供了关于元素如何表现的可靠提示。如果点击标题切换其所要搜索的内容的可见性,则存在一种称为"浏览"的形式模式;公开";,由w3c提供,您应该使用它。

"可点击的";没有给出这样的提示。但我想你根本不需要可点击的标题和段落。

在我看来,将点击事件处理程序添加到每一个"视图",甚至是不可操作的"视图"中似乎是错误的。也许你可以对不可操作内容使用默认的"视图行为",并为实际需要点击的内容保留"可操作视图"。

如果你能做出这种区分(可操作/不可操作(,你将更容易实现可访问性,因为这种区分是ARIA的核心。

你的虚假"可点击"公告会自动消失。

最新更新