HTML inert 全局属性

Baseline 广泛可用 *

此功能已成熟,并且在许多设备和浏览器版本中都能正常工作。自 ⁨2023 年 4 月⁩ 起,所有浏览器均已支持此功能。

* 此特性的某些部分可能存在不同级别的支持。

inert 全局属性是一个布尔属性,用于指示元素及其所有平级树后代都将变为惰性inert 属性可以添加到不应交互的内容部分。当一个元素处于惰性状态时,它及其所有后代(包括链接、按钮和表单控件等通常可交互的元素)都将被禁用,因为它们无法获得焦点或被点击。inert 属性也可以添加到应在屏幕外或隐藏的元素上。惰性元素及其后代将从焦点顺序和辅助功能树中移除。

使用 showModal() 生成的模态 <dialog> 会逃脱惰性状态,这意味着它们不会从其祖先继承惰性,但只能通过在其自身上明确设置 inert 属性来使其惰性。其他任何元素都无法逃脱惰性状态。

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

具体来说,inert 执行以下操作:

  • 阻止用户点击元素时触发 click 事件。
  • 通过阻止元素获得焦点来阻止 focus 事件的触发。
  • 阻止在浏览器中使用查找页面功能时找到/匹配元素的任何内容。
  • 阻止用户选择元素内的文本——类似于使用 CSS 属性 user-select 来禁用文本选择。
  • 阻止用户编辑元素中任何原本可编辑的内容。
  • 通过将元素及其内容从辅助功能树中排除,将其从辅助技术中隐藏。

可访问性考虑

在应用 inert 属性时,请仔细考虑可访问性。默认情况下,没有视觉方法可以判断元素或其子树是否处于惰性状态。作为 Web 开发者,您有责任清楚地标示出内容中活跃的部分和惰性的部分。

在提供关于内容惰性的视觉和非视觉提示的同时,也要记住视觉视口可能只包含部分内容。用户可能放大了很小的内容区域,或者根本无法查看内容。惰性部分不明显是惰性的,可能导致用户感到沮丧和糟糕的用户体验。

规范

规范
HTML
# the-inert-attribute

浏览器兼容性

另见