0Pricing
HTML Academy · 课时

兴趣调用器与 command 属性

探索 command 和 commandfor 属性实现声明式操作

兴趣调用器与 command 属性 是 CoddyKit 上的免费 HTML Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 HTML Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 HTML Academy 课程共包含 4 节课。

两个新兴的声明式模式

Open UI 社区正在制定两个新的 HTML 属性——command 用于由点击触发的操作,interesttarget 用于由悬停或聚焦触发的“关注”状态(工具提示和预览的基础)。这两个属性都以声明式行为扩展了 HTML,而这些行为过去通常需要 JavaScript 才能实现。

command 属性

带有 command="show-modal" 和 commandfor="dialog-id" 的按钮无需任何 JS 就能显示对话框,从而替代手动调用 dialog.showModal()。其他命令包括:command="close"、command="toggle-popover"、command="show-popover"。

<button command="show-modal" commandfor="my-dialog">Open</button>
<dialog id="my-dialog">...</dialog>

支持的命令

初始命令集面向常见的用户界面模式:显示或隐藏对话框(内置的 <dialog>)、切换弹出层(弹出层接口),并且未来可能继续扩展。自定义元素可以通过 oncommand 事件处理程序声明其接受哪些命令。

自定义命令

除了内置命令之外,规范还允许使用以“--”开头的自定义命令字符串。目标元素会接收到一个 command 事件,您可以在 JS 中处理它:el.addEventListener("command", (e) => { if (e.command === "--save") save(); })。

关注触发器

interesttarget 属性用于标记元素的“关注”目标,通常是一个在悬停或聚焦时出现的工具提示。浏览器会自动处理时间安排(300ms 的悬停意图延迟)、定位(使用锚点定位)和关闭操作。

<button interesttarget="user-info">Profile</button>
<div id="user-info" popover="hint">Ada Lovelace — Admin</div>

与提示弹出层模式结合

提示弹出层模式专为在用户关注时出现的工具提示式弹出层而设计。这类弹出层不是模态的,不会抢占焦点,并会在用户移开关注后关闭。将关注目标与提示弹出层模式结合,只需两个 HTML 属性就能获得原生工具提示。

无障碍方面的优势

原生对话框会处理焦点限制;原生弹出层会处理堆叠顺序;原生关注触发器会处理悬停意图的时间安排,并向屏幕阅读器传达元素之间的关系。用这些声明式基础能力替代自定义 JS 实现,能够稳定地提升无障碍质量。

规范状态

这些功能仍在标准化过程中。确切的属性名称和命令集可能会发生变化。浏览器实现首先在 Chromium 中出现。生产环境的使用应等到命名稳定,并且至少有两种浏览器正式支持后再开始——这很可能要等到未来一两年内。

替代 JavaScript 模式

这些功能分别替代了数百万次编写和重写过的 JavaScript:对话框管理、弹出层触发器和工具提示行为。将这些模式移入 HTML 可以减小页面体积、提高一致性,并让浏览器应用优化。

Open UI 作为信息来源

Open UI 社区组(open-ui.org)推动了其中许多工作,包括提出、制作原型,并引导新的 HTML 元素和属性通过标准制定流程。请关注他们的博客,了解最新提案。

与其他现代功能的联系

命令、关注目标、弹出层、对话框、锚点定位、视图过渡和可自定义选择框,都属于同一项连贯的努力:将组件库中的模式引入平台。每项功能单独来看都很小,但合在一起,它们代表了 HTML 用户界面词汇多年来最大的一次扩展。

现在该做什么

请关注相关提案(open-ui.org),在启用标志的 Chromium 中进行试验,并规划在功能稳定后采用它们。请检查现有代码库:统计有多少 JS 专门用于对话框、弹出层和工具提示的基础处理。这些代码将在未来几次版本发布中成为替换目标。

知识检查

按钮上的 command 属性有什么作用?

总结

两个新兴功能扩展了 HTML 的声明式用户界面词汇:命令属性 + 命令目标属性用于由点击触发的操作(显示模态对话框、切换弹出层),关注目标属性 + 提示弹出层模式用于由悬停或聚焦触发的工具提示。两者都用 HTML 属性替代常见的 JavaScript 模式,从而改善无障碍体验并减小资源包体积。这些功能仍在演变中;请关注 Open UI 的标准化进展,并随着浏览器支持的到来逐步发布。

常见问题解答

「兴趣调用器与 command 属性」课时是免费的吗?

是的 — 「兴趣调用器与 command 属性」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 HTML Academy 课程的其余内容,请升级到 CoddyKit PRO。 HTML Academy 课程共包含 4 节课。

「兴趣调用器与 command 属性」这节课中我会学到什么?

探索 command 和 commandfor 属性实现声明式操作 你通过在浏览器中直接运行的动手代码来练习 HTML Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 HTML Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 HTML Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「兴趣调用器与 command 属性」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 HTML Academy 课中编写并运行代码吗?

能。每节 HTML Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 声明式影子 DOM
  2. Popover API
  3. selectlist 元素
  4. 兴趣调用器与 command 属性
← 返回 HTML Academy