【发布时间】:2017-01-24 12:00:01
【问题描述】:
我需要在 HTML/JavaScript 中实现某种模式。当模式打开时,页面仍应在后台可见,但不应通过键盘访问,也不应包含在屏幕阅读器输出中。换句话说,我希望它表现得好像它不存在,但仍然可见。
我还查看了提议的“对话”规范,发现inert 的定义完美地描述了我的需求:
当节点处于惰性状态时,用户代理必须像节点不存在一样行事,以针对用户交互事件进行定位
我尝试了什么(我无法使用屏幕阅读器进行测试,所以我只测试了键盘访问):
- 在页面元素上设置
hidden和style="display: block"。 - 在页面元素上设置
tabindex="-1"和aria-hidden="true"。
正如您可能猜到的那样,这些都不起作用。
有没有一些明智的方法可以用当前的技术使子树“惰性”?
【问题讨论】:
-
您可以使用
position: absolute; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.5); z-index: 1在 div 中创建一个模态框,以模拟模态框所在的前景和褪色的背景,您的页面仍然可见。
标签: html dialog accessibility tabindex