Safari Technology Preview 240: Key Updates & Fixes Explained

By

The latest Safari Technology Preview release, version 240, is now available for macOS Tahoe and macOS Sequoia. If you have a previous version installed, you can update via System Settings > General > Software Update. This update brings a range of improvements and fixes across CSS, editing, forms, HTML, and media handling. Below, we answer your top questions about what's new and what's been resolved.

What new CSS feature was introduced in Safari Technology Preview 240?

This release adds support for the revert-rule CSS keyword (patch 308733). This keyword allows you to revert the cascade of a style rule, effectively making it as if that rule was never applied. It’s a powerful tool for managing style conflicts without needing to override every property. For example, if you have a global style sheet and want to exclude a specific element from a rule, revert-rule lets you do that cleanly. This feature adds to the existing revert and revert-layer keywords, giving developers more precise control over CSS inheritance and specificity.

Safari Technology Preview 240: Key Updates & Fixes Explained
Source: webkit.org

What fixes were made to CSS scrollbars and hanging punctuation?

Several CSS glitches were addressed. On macOS, custom scrollbars could be cut off and the scrollbar corner rect was sized incorrectly (patch 309119) β€” this is now fixed, ensuring scrollbars render fully. Additionally, hanging-punctuation support was improved: U+0027 (apostrophe) and U+0022 (quotation mark) are now correctly treated as hangable quotes (patch 308597). Also, the ideographic space character (U+3000) can now hang when used with the first value (patch 308605). These refinements make web typography more consistent, especially for languages that rely on wide spaces or punctuation at the start of lines.

What editing issues were resolved in this release?

Three notable editing bugs have been squashed. First, the Font Picker style selection no longer becomes unusable after changing fonts while editing multiple lines of text (patch 308562). Second, emoji images are now preserved correctly when copying and pasting content across different websites (patch 309176) β€” previously they could be lost or replaced. Third, text selection no longer jumps unexpectedly when selecting absolutely-positioned content inside an element with user-select: none (patch 308451). These fixes improve the reliability of content creation and manipulation in web apps.

How does this update improve form handling for keyboard navigation?

A frustrating issue where keyboard tabbing position was lost when a focused button became disabled has been fixed (patch 308991). Previously, if you were tabbing through a form and the currently focused button was disabled (e.g., by JavaScript), focus would jump back to the beginning of the page, disrupting the flow. Now, the tabbing position is preserved, allowing users to continue where they left off. This improvement enhances accessibility and makes form interaction smoother for keyboard-only users.

What HTML parsing improvements were made?

Two parsing corrections were implemented. First, the viewport <meta> tag now correctly treats the form feed character ( ) as ASCII whitespace, aligning with the HTML specification (patch 309044). Previously, form feed was not recognized as whitespace, which could break layouts relying on responsive <meta> values. Second, pixel-length margin attributes on <body>, <iframe>, and <frame> elements are now parsed correctly (patch 308526). This ensures that margins specified in pixels (e.g., margin="10") are applied as intended, preventing layout shifts.

What media playback issues were fixed?

This release addresses multiple media bugs. WebM audio files with more than two channels can now be decoded (patch 308749), and MediaCapabilities.decodingInfo() no longer incorrectly reports VP8 in WebM as unsupported (patch 308789). MP4 files containing Opus audio tracks now work with decodeAudioData() (patch 309140). Live Text selection is available again on paused fullscreen videos (patch 308498). FairPlay-protected VP9 content can now play via MediaSource (patch 308622). Autoplay no longer proceeds before default text tracks finish loading (patch 308796). The currentTime getter returns defaultPlaybackStartPosition when no media player exists (patch 308654). And HTMLMediaElement now fires a timeupdate event when resetting the playback position during media load, as required by the spec (patch 308695). These fixes improve audio/video reliability and compatibility.

What changes were made to WebM and Opus audio support?

Specifically, two critical audio fixes were made. First, WebM audio files with more than two channels (e.g., 5.1 surround) previously failed to decode; this is now resolved (patch 308749). Second, MP4 containers with Opus audio tracks could not be decoded with decodeAudioData() β€” that bug is fixed (patch 309140). Additionally, MediaCapabilities.decodingInfo() was corrected to accurately report VP8 in WebM as supported (patch 308789). Together, these changes expand the range of audio formats that work seamlessly in Safari, benefiting developers who work with modern codecs and multi-channel audio.

Tags:

Related Articles

Recommended

Discover More

Intuit Engineers Reveal Top Challenge: Orchestrating AI Agents at ScaleCloudflare Completes 'Code Orange' Overhaul: Network Now More Resilient After Global OutagesLinux Weekly Roundup: Standard Projects Folder, Ubuntu 26.04, Fedora 44, and MoreA Practical Guide to Inclusive UX Research: How to Plan and Execute Accessible StudiesNASA's Artemis III Earth Orbit Mission Slips to 2027 as Lunar Landers Face Delays