Safari 16.2 中的 WebKit 功能
今天,我们很高兴宣布 Safari 16.2 正式发布。此次更新重点在于提高与其他浏览器的互操作性,这是 WebKit 对 2022 年 Interop 项目的贡献之一。
Interop 2022
一年前,来自 Apple、Bocoup、Google、Igalia、Microsoft 和 Mozilla 的代表齐聚一堂,共同致力于改善浏览器之间的互操作性。该组织选择了 15 个对 Web 开发影响最大的重点领域,并将此项目命名为 Interop 2022。该项目针对 一组特定的 Web 技术 运行自动化测试,并鼓励浏览器遵循这些技术的 Web 标准。
截至今天,Safari 技术预览版 159 通过了 Interop 2022 测试的 98.5%。(这使得 Interop 仪表盘 上的分数为“94”,该分数是在减去因小组调查项目进展滞后而扣除的 3.8 分并从 94.7 四舍五入向下取整后得出的。)
在 WebKit 发布新功能的激动人心的一年之后,我们还有两个待完成的任务来进一步提高我们的 Interop 2022 分数。
字体特性
Safari 16.2 为 font-variant-alternates
属性添加了额外值的支持:annotation()
, character-variant()
, ornaments()
, styleset()
, stylistic()
, swash()
, 以及相关的 @font-feature-values
at-rule。
这些额外的值完善了 Safari 对 font-variant-alternates
的支持,它是创建出色排版的强大工具。它为开发者提供了一种方法来指定激活网络字体的哪些特性——修改一段文本以使用字体的历史形式,或者添加花饰、装饰或其他更多。具体来说,font-variant-alternates
的功能取决于每个网络字体包含的特性。
希望,一旦 所有浏览器都支持 font-variant-alternates
(由于 Interop 2022 的倡导),Web 开发者和设计师将开始更频繁地使用字体特性。
最后基线
CSS 对齐 允许 Web 开发者描述在 Flexbox 和 Grid 格式化上下文中,项目周围或项目之间应如何分配空间。它包含多个属性,例如 justify-content
, align-items
, 和 place-self
。这些属性支持许多值,其中包括三个用于 基线对齐 的值:baseline
, first baseline
, 和 last baseline
。Safari 自实现 CSS 对齐支持以来,一直支持前两个值。
Safari 16.2 添加了对 last baseline
的支持,从而可以在 Flexbox 和 Grid 项目中沿着其包含的最后一行文本的基线对齐。这意味着现在支持以下规则
align-items: last baseline;
align-content: last baseline;
align-self: last baseline;
justify-items: last baseline;
justify-self: last baseline;
place-items: last baseline normal;
place-self: last baseline normal;
修复和优化
Safari 16.2 还包含改进互操作性的 Bug 修复。
CSS
- 修复了具有
fixed
附件的背景在变换元素内部表现得像scroll
的问题。 - 修复了计算内联
min-content
大小时包含aspect-ratio
并添加min-content
块计算的问题。 - 修复了在某些 flexbox 情况下,边框和内边距被重复添加到计算出的最小和最大尺寸的问题。
- 修复了 flex base size 宽度计算不考虑最小和最大尺寸的问题。
- 修复了焦点行为在检查可见性时不考虑滚动外边距的问题。
- 修复了布局 containment 不将强制换行传播给父级的问题。
- 修复了
perspective: 0
的行为问题。 - 修复了基于百分比的变换在 SVG
<text>
元素上不工作的问题。 - 修复了在必要时重新吸附以跟随滚动吸附目标的问题。
- 修复了在各轴上的目标不可见时,滚动吸附选择最接近的吸附目标的问题。
- 修复了根元素尺寸更改时,SVG 图形和组上的变换问题。
- 修复了文本字符串同时包含常规文本和上标或下标时,上标和下标的
text-decoration
位置问题。 - 修复了内容被截断时,
text-decoration
像素对齐问题。 - 修复了
text-decoration-thickness
属性不被继承的问题。 - 修复了在指定
<input>
元素的宽度或高度时,移除固有外边距的问题。 - 修复了
rgba()
通道的舍入问题。 - 修复了
font-variant
简写属性解析以允许font-variant-east-asian
属性出现在任何位置的问题。 - 修复了在应用了
scroll-margin
的日期输入框上滚动吸附的问题。
渲染
- 修复了变换更改后重新计算溢出的问题。
- 修复了在
<canvas>
上绘图时应用lineWidth
和strokeStyle
的问题。 - 修复了将
contain: content
应用于body
时导致滚动中断的问题。 - 修复了应用带有 z 轴分量的
transform-origin
的问题。 - 修复了应用外边距时计算表格基线位置的问题。
- 修复了对表格部分应用变换的问题:
tbody
,thead
, 和tfoot
。
媒体
- 修复了使用
srcObject
时,更新媒体元素的 MediaSessionInfo 的问题。
Web API
- 修复了 SharedWorker 尊重 Upgrade-Insecure-Request 的问题。
WebDriver
- 修复了 Element Click 命令在 iOS 上失败的问题。
- 修复:在 iOS 上启用了
touch
指针输入源子类型。
反馈
我们乐于听取您的意见。请在 Twitter 上发送推文至 @webkit 分享您对 Safari 16.2 的看法。您可以在 Mastodon 上找到我们:@jensimmons@front-end.social 和 @jondavis@mastodon.social。如果您遇到任何问题,欢迎提供关于 Safari UI 的 反馈,或关于 Web 技术或 Web Inspector 的 WebKit Bug 报告。提交问题确实很有帮助。
下载最新的 Safari 技术预览版 以前沿使用 Web 平台并使用最新的 Web Inspector 功能。您还可以阅读 Safari 16.2 发布说明。
更新到 Safari 16.2
Safari 16.2 可用于 macOS Ventura、macOS Monterey、macOS Big Sur、iPadOS 16 和 iOS 16。在 macOS Monterey 或 macOS Big Sur 上,您可以通过前往“系统偏好设置”→“软件更新”→“更多详情”并选择更新 Safari 来更新到 Safari 16.2。要更新 macOS Ventura、iOS 或 iPadOS,请前往“设置”→“通用”→“软件更新”。