如何实现和样式化 Dialog 元素

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您的旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费积分!

一瞥 来自 Christian Kozalla 关于 <dialog> HTML 元素,以及如何使用它来创建一个外观漂亮且可访问的模态。

我被 <dialog> 元素吸引,因为它是一个“你免费得到很多”的元素(甚至比备受喜爱的 <details> 元素还要多),而且模态可访问性很容易做错(例如,焦点捕获),所以有一个本机元素提供这种功能,看起来…很棒。::backdrop 尤其酷。

但这真的是太好了吗? <dialog> 的支持还没有很稳固,Safari 还没有支持它。Christian 提到了 来自 Google 的 polyfill,它肯定有助于将基本功能带到不支持它的浏览器。

主要问题是在屏幕阅读器上的实际测试。 Scott O’Hara 有一篇文章,“有一个打开的对话框,” 该文章最近(2021 年 10 月)更新过,他最终说,“[…] dialog 元素及其 polyfill 不适合在生产中使用。” 我不怀疑 Scott 的测试结果,但由于大多数人只是不理会可访问性,而自己构建模态体验,我想知道如果更多人只是使用 <dialog>(以及 polyfill)是否会更好。 更高的使用率可能会引发更多浏览器的关注和改进。