是否可以访问window.confirm()?

时间:2019-04-09 00:02:17

标签: javascript accessibility

是否可以访问window.confirmwindow.alertwindow.prompt之类的本机浏览器模式,还是实现自定义功能更好?

3 个答案:

答案 0 :(得分:4)

关于此的信息不多,但我相信答案是肯定的(大部分情况下)。似乎以前的屏幕阅读器不支持警报/窗口对话框,但在当今世界,屏幕阅读器已开始支持这些功能。

“尽管无障碍专家曾经不鼓励使用JavaScript弹出警报框,但现代的屏幕阅读器和浏览器为基本的JavaScript警报框提供了出色的支持。”

http://accessibility.psu.edu/scripts/alertboxes/#basic

https://www.w3.org/TR/2018/WD-wai-aria-practices-1.2-20180719/examples/dialog-modal/alertdialog.html

通读w3文档,似乎更喜欢自己制作并指定适当的aria属性

答案 1 :(得分:3)

更新:阅读此答案的底部。 this answer称,大多数屏幕阅读器都可以访问它们,但JAWS(自2007年起) this December 2017文章拥有46%的市场份额,因此,使用屏幕阅读器的人中有46%使用的屏幕阅读器不支持window.confirm,因此最好创建自定义对话框框,其中包含各自的aria-*属性。



编辑:根据Travis J.的评论,the github issue显示这是一个Chrome错误,has been patched。但是,如果要保留对旧版Chrome的支持,则可以创建一个自定义对话框,或者如果要添加CSS,创建更多按钮等,可以仅创建一个自定义对话框。

答案 2 :(得分:3)

我的测试给出了以下结果:

  1. 在Windows中使用Firefox的JAWS和NVDA都正确宣布了一个window.confirm()对话框,但是当JAWS或NVDA处于打开或关闭状态时,Firefox允许键盘导航从对话框中泄漏出来。那是一个严重的可访问性缺陷。
  2. Windows中装有Chrome的JAWS和NVDA都根本无法宣布window.confirm()对话框的文本内容,因此,收听JAWS或NVDA的用户无法知道“确定”和“取消”按钮在确认什么或取消。这是致命的可访问性缺陷。
  3. 在OS X中带有Safari的宣布“发件人”和URL,但在window.confirm()对话框打开时不宣布任何内容。如果用户随后使用键盘向前导航,则VoiceOver会宣布“取消”和“确定”按钮,但绝不会宣布解释这些按钮的文本内容。那是致命的可访问性缺陷。 Safari还允许在VoiceOver打开或关闭时键盘导航从对话框中泄漏出来,这是一个严重的可访问性缺陷。