此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

HTML inert 全局属性

Baseline 2023 *
Newly available

Since ⁨April 2023⁩, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

* Some parts of this feature may have varying levels of support.

inert 全局属性是一个表示该元素及其所有平级树后代变为惰性的布尔属性。使用 showModal() 生成的模态 <dialog> 不会继承自其祖先的惰性状态,而是只能通过显式设置自身 inert 属性来使其成为惰性的。

具体来说,inert 做了这些事情:

  • 防止用户点击元素时触发 click 事件。
  • 通过阻止元素获得焦点,防止触发 focus 事件。
  • 防止元素中的任何内容在使用浏览器的“在页面中查找”功能时被找到或匹配。
  • 防止用户在元素内选择文本——类似于使用 CSS 属性 user-select 来禁用文本选择。
  • 防止用户编辑元素中本可编辑的任何内容。
  • 通过将元素及其内容排除在无障碍树之外,使其对辅助技术不可见。
html
<div inert>
  <!-- 内容 -->
</div>

inert 属性可用于标记不应具有交互性的内容区域。当元素被设置为 inert 时,该元素及其所有后代元素(包括通常具有交互性的元素,如链接、按钮和表单控件)将被禁用,因为它们无法获得焦点或被点击。

inert 属性还可以添加到应处于屏幕外或隐藏状态的元素上。当元素处于 inert 状态时,该元素及其所有后代元素将从标签顺序和无障碍树中移除。

备注: 虽然 inert 是一个全局属性,可应用于任何元素,但通常用于内容部分。要使单个控件“惰性”,请考虑使用 disabled 属性,以及 CSS :disabled 样式。

无障碍考虑

在使用 inert 属性时,请务必仔细考虑其无障碍性。默认情况下,无法通过视觉方式判断一个元素或其子树是否为非活动状态。作为 Web 开发者,有责任明确标识出哪些内容部分是活跃的,哪些是静态的。

在提供内容非交互性的视觉和非视觉提示时,请记住视觉视口可能仅包含内容的某些部分。用户可能已放大到内容的某个小区域,或根本无法查看内容。非交互性部分若未明显标识为非交互性,可能导致用户感到沮丧并产生糟糕的用户体验。

规范

Specification
HTML
# the-inert-attribute

浏览器兼容性

参见