Safari 27.2 将 Grid Lanes 的 flow-tolerance 改名为 fit-tolerance,并完善 Customizable Select
WebKit 10 月 26 日的 Safari 27.2 说明为 Customizable Select 新增 ::field-content 伪元素,把 Grid Lanes 的 flow-tolerance 属性改名为 fit-tolerance(默认 1em,旧名称作为已弃用别名保留),并列出 20 项错误修复,其中一项涉及 Safari MCP 的键盘焦点。
Safari 27.2 重命名 Grid Lanes 属性,并打磨 Customizable Select
10 月 26 日,WebKit 团队发布了由 Jen Simmons 撰写的 Safari 27.2 的 WebKit 新功能。这次发布完善了 Customizable Select,重命名了 Grid Lanes 中的一个 CSS 属性,并修复了 20 个程序错误。这是一次幅度不大的更新,但其中两项会改变网页开发者应当写的代码。Safari 27.2 随 iOS 27.2、iPadOS 27.2、visionOS 27.2 和 macOS 27.2 Golden Gate 一同提供,也面向 macOS Tahoe 和 macOS Sequoia 提供,这两个系统上可以通过软件更新单独升级 Safari。这是厂商的发布说明,描述的是 WebKit 称自己已实现的行为,而不是外部测试的结果。
Customizable Select 获得更细的样式控制
Customizable Select 最早出现在 Safari 27.0,它允许开发者重新设计 `<select>` 下拉控件的样式,其中的 `<selectedcontent>` 元素用来控制收起状态的按钮显示什么。Safari 27.2 新增 `::field-content` 伪元素,不需要 `<selectedcontent>` 也能给所选选项的文字设置样式。WebKit 还调整了 `appearance: base-select` 的默认样式:按钮内容更可靠地垂直居中,所选文字会继承 `<select>` 的 `text-overflow`,选择器图标改用更简单的布局绘制,以便始终可见。此前较大的选择器弹层可能部分渲染到视口之外,Safari 27.2 通过应用 `safe` 对齐让它保持在视口内,这源自针对绝对定位和固定定位盒子的一项更广泛的 CSS 对齐变更。WebKit 表示标准化工作仍在继续,其他浏览器也在更新以保持一致。
Grid Lanes:把 `flow-tolerance` 改为 `fit-tolerance`
Grid Lanes 在 Safari 26.4 中发布。此后 CSS 工作组把 `flow-tolerance` 属性改名为 `fit-tolerance`,Safari 27.2 采用了新名称。旧名称暂时仍可用,作为已弃用的别名,但 WebKit 提醒开发者尽快更新代码,Safari 的网页检查器可以标出需要修改的地方。这个属性决定浏览器在放置下一个条目时有多挑剔。当多列的结束高度几乎相同时,较高的容差会把它们视为并列,并选择第一列。默认值是 `1em`。WebKit 认为,较高的数值能让连续的条目留在相邻的列中,使依靠肉眼观察焦点的键盘用户在内容间用 Tab 键切换时更稳定,因此大多数页面应当把它调高很多。
二十个错误修复,部分涉及智能体和媒体
这些修复涵盖无障碍、动画、CSS、表单、媒体、网络等方面。例如:VoiceOver 重复朗读 `aria-live` 区域的文字、`AudioContext.decodeAudioData()` 在有效的 AAC/M4A 文件上失败,以及对含间接绘制的渲染包调用 `executeBundles()` 时 WebGPU 帧率下降。一项网络修复避免了在站点主机名以 CNAME 指向另一个可注册域名时,顶层导航设置的 Cookie 被限制为七天有效期。另有一项涉及 Safari MCP:当软件在 MCP 控制下创建标签页或截取屏幕时,Safari 不再从其他应用夺走键盘焦点。这个细节说明,对浏览器的自动化控制已经成为被预期的用法。开发者应当测试任何依赖这些问题旧行为的代码,并在上线前对照说明核对浏览器特有功能。
开发者现在可以做什么
按发布说明,可以列出几项具体的检查。第一,在代码里搜索 `flow-tolerance`,改为 `fit-tolerance`;旧名称只是暂时可用的已弃用别名,网页检查器可以帮忙标出位置。第二,重新审视 Grid Lanes 的容差值:默认的 `1em` 未必适合自己的内容,WebKit 建议大多数页面显著调高,调整后应当用键盘按 Tab 键走一遍,确认焦点顺序合理。第三,如果使用 Customizable Select,评估是否改用 `::field-content`,并检查大型选择器是否仍然完整显示在视口内。第四,对主机名通过 CNAME 指向其他可注册域名的站点,核对顶层导航设置的 Cookie 有效期。第五,依赖 AAC/M4A 解码、WebCodecs 的 H.264 编码或 `ManagedMediaSource` 的媒体应用,应当重新测试,因为这些环节都有修复。
Customizable Select 与 Grid Lanes 都是近年新增的能力,WebKit 在发布之后仍根据标准组织的讨论调整名称和默认样式。这说明新特性在稳定之前,名称与行为都可能再变,生产环境中使用时应保留回退方案,并关注各浏览器的实现进度。本文所述内容全部来自 WebKit 的发布说明,没有对其他浏览器做测试。二十个修复里与无障碍相关的有三项,涉及 `aria-labelledby`、`aria-live` 以及 iOS 上的日期、时间和颜色控件,依赖屏幕阅读器的用户会最先感受到变化。
总的来说,这是一次以维护和打磨为主的发布,没有引入大型新功能,但对正在使用这两项新特性的团队来说,更名和样式调整需要尽快落实。
发布说明还给出了更新方式:在 iOS、iPadOS、visionOS 和 macOS 27.2 Golden Gate 上,Safari 随系统更新一起提供。
Sources
FAQ
开发者需要为 Grid Lanes 改什么?
Safari 27.2 使用新属性名 fit-tolerance,取代 flow-tolerance。旧名称暂时仍作为已弃用别名可用,但 WebKit 提醒开发者尽快更新。默认值是 1em,WebKit 建议大多数页面显著调高。
Customizable Select 有什么新内容?
Safari 27.2 新增 ::field-content 伪元素,不需要 selectedcontent 元素就能给所选选项的文字设置样式,同时调整了 appearance: base-select 的默认样式,并用 safe 对齐让大型选择器保持在视口内。
哪些修复最值得关注?
WebKit 列出 20 项修复,例如 VoiceOver 重复朗读 aria-live 文字、AAC/M4A 解码失败、含间接绘制时 WebGPU 帧率下降、CNAME 主机名的 Cookie 被限制为七天,以及 Safari MCP 从其他应用夺走键盘焦点。