Stay up to date on Safari releases
Join Releasebot and subscribe to release note updates from hundreds of products.
- Sep 22, 2025
- Parsed from source:Sep 22, 2025
- Detected by Releasebot:Sep 29, 2025
Safari 26.1 Beta
Safari 26.1 beta brings broad accessibility and rendering fixes across iOS, macOS, visionOS, and more, plus CSS anchor positioning improvements, form and PDF refinements, security policy alignment, and WebGPU/WebRTC stability tweaks. A solid polish release.
Safari 26.1 beta is available for iOS 26.1 beta, iPadOS 26.1 beta, visionOS 26.1 beta, macOS 26.1 beta, macOS Sequoia, and macOS Sonoma.
Accessibility Resolved Issues
- Fixed hit testing for scrolled iframe content by adjusting for the frame’s scroll position, ensuring accurate element detection across assistive technologies. (158233884)
- Fixed an issue where VoiceOver reports the wrong radio count with a dynamically inserted radio option. (159937173)
- Fixed exposing content within dynamically expanded details elements in the accessibility tree. (159937257)
- Fixed the target of aria-labelledby not updating its accessibility label after dynamic inner HTML change in the label. (160691619)
Browser Resolved Issues
- Fixed Safari’s frozen iOS user agent version to correctly report 18_6_2 for improved compatibility. (160246460)
CSS New Features
- Added support for remembering the last successful position-try fallback in CSS anchor positioning to reduce layout jumps when styles change. (158452223)
CSS Resolved Issues
- Fixed anchor positioning to correctly handle fragmented multicolumn flows. (156958568)
- Fixed anchor positioning fallbacks to respond dynamically to scrolling. (158451016)
- Fixed @media print styles to work when used inside a nested rule. (158608834)
- Fixed an issue where container queries failed to re-evaluate after a position-try fallback because the query container state was not reset. (158880410)
- Fixed performance of :has(> .changed) .subject selectors. (159257003)
- Fixed pseudo-class invalidation performance by creating separate Rule Sets for attribute selectors like :has([attr=value]) to avoid using universal invalidation. (159257022)
- Fixed anchor position to only generate position options on base style. (159570080)
- Fixed an issue where changing the ruby-overhang property did not trigger a layout update, ensuring proper rendering when overhang values change. (159573050)
- Fixed anchor positioning to correctly account for a left-hand scrollbar in right-to-left and vertical-rl containing blocks. (160723993)
Forms Resolved Issues
- Fixed native text inputs so that their background colors properly update when autofilled. (159014135)
- Fixed checkboxes and radio buttons missing borders in the filled state when “Increased Contrast” is enabled on macOS. (159379948)
PDF Resolved Issues
- Fixed VoiceOver not recognizing the password form. (159240531)
Rendering Resolved Issues
- Fixed a bottom gap appearing on layouts with viewport-sized fixed containers on iOS. (158055568)
- Fixed position-visibility: anchors-visible visibility heuristic in certain situations. (160060564)
- Fixed an issue on iOS where Safari extension popups and some websites could scroll or flicker unexpectedly. (160216319)
Security Resolved Issues
- Fixed Safari ignoring the style-src-elem Content Security Policy directive ensuring it is checked before falling back to style-src, in line with CSP3 specifications. (157298407)
Web API Resolved Issues
- Fixed an issue on iOS 26 where pressing the B button on a gamepad could make a page appear to lose gamepad focus by bypassing the system’s automatic navigation behavior. (159125095)
Web Inspector Resolved Issues
- Fixed issue where searching on certain text fails to find matches. (159897282)
WebGPU Resolved Issues
- Fixed an issue where GPUQueue.copyExternalImageToTexture could not handle SVG images. (158442476)
- Fixed an issue where video playback using the WebGPU renderer in WebCodecs could display a black screen. (158442539)
- Fixed an issue where WebGPU video textures failed to load in Three.js panoramas. (159918934)
WebRTC Resolved Issues
- Fixed getUserMedia() on iOS incorrectly firing devicechange events when there was no actual change to available microphones or default devices. (157693528)
- Sep 15, 2025
- Parsed from source:Sep 15, 2025
- Detected by Releasebot:Sep 29, 2025
Safari 26.0
Safari 26.0 arrives with broad accessibility fixes, new CSS and rendering features, expanded Web APIs, and improved performance across iOS, macOS, visionOS, and more. Highlights include ARIA fixes, SVG and Canvas enhancements, WebGL/WebGPU support, and Web Extensions updates.
Safari 26.0 is available for iOS 26, iPadOS 26, visionOS 26, macOS 26, macOS Sequoia, and macOS Sonoma.
Accessibility
- Fixed aria-expanded attribute support on navigation links. (141163086)
- Fixed presentational images with empty alt attributes to be ignored by assistive technology, even when additional labeling attributes are set. (146429365)
- Fixed within a element to only contribute to the accessible name of an element if the image lacks other labeling methods like alt, ARIA attributes, or the title attribute. (150597445)
- Fixed handling of invalid values for aria-setsize and aria-posinset according to the most-recent revision of the ARIA specification. (151113693)
- Fixed VoiceOver reading “Processing page %infinity” when loading large pages. (152617082)
- Fixed VoiceOver failing to output newlines in certain circumstances when using caret navigation. (154368379)
- Fixed an issue where dynamic changes to iframe display properties could cause the iframe’s scroll view to incorrectly become the accessibility root, preventing assistive technologies from accessing content outside the iframe. (156440342)
- Fixed CSS content alt text when used on an element to be announced by VoiceOver. (156666741)
Animations
New Features- Added support for animation-range, animation-range-start, animation-range-end, and animation-timeline properties for ::marker. (154021467)
Browser
New Features- Added support for SVG icons. (113567909)
- Added support for reporting a website compatibility issue in Safari. (133791139)
- Added support for data: URL icons. (143967312)
- Fixed keyboard typing to cancel voice dictation. (152597958)
- Fixed: Safari now reports a frozen OS version in its user agent string on iOS 26 and iPadOS 26, showing the last version released before iOS 26. (156170132)
CSS
New Features- Added support for overflow-block and overflow-inline. (70579028)
- Added support for the margin-trim: block inline syntax for trimming in both directions. (141784069)
- Added partial support for the dynamic-range-limit property: standard and no-limit, non-animatable. (144486108)
- Added support for contrast-color(). (144630635)
- Added support for Scroll-driven Animations. (144887859)
- Added support for allowing declarations directly inside @scope rule without a style rule ancestor. (145101643)
- Added support for text-wrap-style: pretty. (145577976)
- Added support for CSS Anchor Positioning. (145681750)
- Added support for the self-alignment properties align-self and justify-self in absolute positioning. (145689547)
- Added support for CSS progress() function. (145717727)
- Fixed cursor: pointer not appearing on an element used in conjunction with an element. (74483873)
- Fixed: Apply space from align-content when grid container and rows have definite sizes during column sizing (85252183)
- Fixed and to always be in-flow and non-floating. (102670652)
- Fixed grid sizing with inline-size containment and auto-fit columns is incorrectly sized. (108897961)
- Fixed “inherit” as a variable substitution fallback when setting custom property. (136463977)
- Fixed content skipped with content-visibility: auto to be findable. (141237620)
- Fixed an issue wrapping an SVG at the end of a line when using text-wrap: balance. (141532036)
- Fixed @font-face font-family descriptor to not allow a list of values. (142009630)
- Fixed the computed value of a float with absolute positioning to be none when there is no box. (144045558)
- Fixed buttons to not have align-items: flex-start by default. (146615626)
- Fixed style container query on :host CSS pseudo-class to be correctly applied to slotted elements. (147684247)
- Fixed @scope to create a style rule with a nested context. (148101373)
- Fixed changing content-visibility from visible to hidden to repaint correctly. (148273903)
- Fixed an issue where float boxes, selections, and carets were incorrectly painted inside skipped subtrees. (148741142)
- Fixed incorrect getBoundingClientRect() inside skipped subtree on an out-of-flow positioned box. (148770252)
- Fixed making
and other elements use logical margins in the User-Agent stylesheet. (149212392)
- Fixed space-around and space-evenly to fallback to safe center for align-content. (153403381)
- Fixed the serialization of custom properties to provide the used value. (153675017)
Canvas
New Features- Added HDR support in WebGPU Canvas. (128164668)
- Fixed re-drawing a canvas with relative width when the parent element is resized. (121996660)
- Fixed getContext('2d', { colorSpace: 'display-p3' }) in iOS Simulator. (151188818)
Content Blockers
New Features- Added support for unless-frame-url. (139456686)
- Added support for the request-method content blocker trigger field. (148474901)
- Added support for is Content Rule List Redirect. (150692793)
DOM
Resolved Issues- Fixed the serialization of CDATASection nodes in HTML. (150739105)
Device Management
New Features- Added support for a managed device to have a folder of managed bookmarks. (133974240)
- Added support for a managed device to have managed new tab or new window page (home page, blank page, extension new tab page). (134425148)
Editing
New Features- Added support for rendering native selection UI inside scrolled content. (136988607)
- Fixed the selection UI to be clipped in overflow scrolling containers. (9906345)
- Fixed selection issues caused by
elements between absolute positioned elements. (123637358) - Fixed selection failing to update during auto or keyboard scrolling. (144581646)
Forms
Resolved Issues- Fixed form associated ElementInternals always reporting a custom Error when using setValidity. (115681066)
- Fixed setValidity of Element Internals to handle missing optional anchor parameter. (123744294)
- Fixed updating scrollbar appearance correctly for the page and
- Fixed programmatically assigned File objects to display the correct filename in elements, even without a file path. (152048377)
- Fixed labels inside elements to behave consistently with other browsers by using standard attribute matching instead of quirk mode handling. (152151133)
- Fixed allowing the custom element itself to be passed as validation anchor in the setValidity() API. (154303420)
- Fixed the intrinsic size of number inputs when the spin button width is a percentage value. (154680747)
HTTP
New Features- Added Safari support for WebSocket over HTTP/2 and HTTP/3. (104137162)
Images
New Features- Added support for HDR Images on iOS 26, iPadOS 26, macOS 26 and visionOS 26. (134397601)
- Fixed zoomed to not cause unwanted rounding of width and height. (150473104)
JavaScript
New Features- Added support for Regular Expression Pattern Modifiers. (131580854)
- Added support for the notation option for Intl.PluralRules. (152149896)
- Added support for Intl.Locale.prototype.variants getter. (153939662)
- Fixed Array.prototype.pop to throw an exception when the array is frozen. (141805240)
- Fixed performance of Math.hypot() that was significantly slower than Math.sqrt(). (141821484)
- Fixed RegExp#[Symbol.search] to throw Type Error when lastIndex isn’t writable. (146488846)
- Fixed Array#indexOf and Array#includes to treat +0 and -0 as the same value. (148472519)
- Fixed iterator helpers incorrectly closing iterators on early errors. (148774612)
- Fixed Iterator.prototype.reduce failing with an undefined initial parameter. (149470140)
- Fixed: Aligned f() = 1 behavior with other engines when not using strict mode. (149831750)
- Fixed nested negated classes resulting in incorrect matches. (151000852)
- Fixed DateTime string parsing for ISO8601 inputs. (153679940)
- Fixed toIntegerOrInfinity to truncate negative fractional values to +0.0. (153939418)
- Fixed the order of function’s special properties returned by Object.keys and Object.entries. (155607661)
Lockdown Mode
New Features- Added support for more web fonts in Lockdown Mode by replacing a fragile hard-coded allowlist with a safe parser that handles a broader range of fonts without compromising security. (149314760)
Media
New Features- Added support for in-band tracks in MSE. (129295806)
- Added support for detachable MediaSource objects to allow for seamless switching between objects attached to a media element. (129298010)
- Added support for MediaSource prefers DecompressionSession. (142761051)
- Added support for WebCodec’s AudioEncoder and AudioDecoder. (142916087)
- Added support for ALAC and PCM audio in MediaRecorder. (144145333)
- Fixed picture-in-picture to exit when the video element is removed. (123869436)
- Fixed MP4 seeking with b-frames to prevent out-of-order frame display by suppressing frames with earlier presentation timestamps following the seek point. (140415210)
- Fixed media elements on iPadOS to support the volume being changed by web developers, similar to macOS and visionOS. The :volume-locked pseudo-class can continue to be used for feature detection. (141555604)
- Fixed seeking or scrubbing not always seeking to the time requested. (142275903)
- Fixed stale audio buffer data after seeking when playing sound through an AudioContext. (146057507)
- Fixed subtitle tracks with no srclang to be shown with the correct label. (147722563)
- Fixed MediaSession to handle SVG icons with subresources. (150665852)
- Fixed MediaCapabilitiesDecodingInfo.configuration to be correctly populated even when .supported is false. (150680756)
- Fixed video elements with WebM object URLs causing MediaError code 2. (151234095)
Networking
New Features- Added support for on iOS while improving privacy on macOS. (144699889)
PDF
Resolved Issues- Fixed “Open with Preview” button to open a PDF in the Preview app. (148680145)
Privacy
New Features- Added support for preventing fingerprinting for known tracking scripts. (134227067)
Rendering
Resolved Issues- Fixed overflow: hidden to not clip filter: drop-shadow(). (72205047)
- Fixed a list-style-position: inside list item marker to be rendered as the first child of the list item. (79587134)
- Fixed using setDragImage with a fixed-position element, so that the drag preview bitmap includes the correct content. (90120656)
- Fixed an issue to allow images in scroll containers to load when they are near the viewport rather than when they are intersecting the viewport. (118706766)
- Fixed CSS filters to establish a containing block like transform does. (119130847)
- Fixed a disappearing stretched image in a vertical flexbox layout. (135897530)
- Fixed CSS gradient interpolation for “longer hue” gradients when an end color stop is omitted. (142738948)
- Fixed will-change: view-transition-name to create a stacking context and a backdrop root. (146281670)
- Fixed will-change: offset-path to create a stacking context and a containing block. (146292698)
- Fixed dropdowns not displaying option labels. (146921617)
- Fixed the text indicator sometimes getting clipped during a bounce animation. (147602900)
- Fixed geometry values inside content-visibility: hidden subtrees. (148553259)
- Fixed not marking content-visibility: hidden content for layout when targeting content-visibility: auto. (148663896)
- Fixed incorrect ruby annotation positioning in sideways-lr. (148713073)
- Fixed: Prevented hit testing content inside a skipped subtree. (148741508)
- Fixed an issue where feMerge incorrectly positioned HTML elements when merging the same feMerge Node multiple times. (149431216)
- Fixed box-shadow with spread on a border-radius box to scale the radii correctly. (149490613)
- Fixed an issue in determining when a flex item should be used for percentage resolution during intrinsic width computation. (149615295)
- Fixed an issue causing a element to disappear for one frame if a view transition occurs. (149709642)
- Fixed within an not scrolling into the viewport on receiving focus for the second time. (150521759)
- Fixed invisible controls when transformed due to incorrect coordinate space calculations for clipped child elements. (150526971)
- Fixed centering text for elements with display: flex. (151148821)
- Fixed showing a resize cursor even when text overlaps the resize control. (151309503)
- Fixed SVG transform translate(X) not equal to translate(X,0). (151643419)
- Fixed border-image repaint code is broken in some writing modes. (152396671)
- Fixed rendering an image with a filter and mix-blend-mode only getting filtered but not mixed. (152460888)
- Fixed box-shadow to repaint correctly in vertical-rl and horizontal-bt writing modes. (152803240)
- Fixed border to no longer be adjusted in computed style for elements with native appearance. (153152167)
- Fixed margin-trim to not trim inline margins on block-level boxes, regardless of their position. (153240895)
- Fixed text-wrap-style to not constrain single line content. (153755326)
- Fixed inputs within inline-block containers shifting vertically when text is deleted and re-entered into an input. (154094432)
- Fixed baseline alignment participation to expand to items with automatic logical width in the alignment axis. (154311395)
- Fixed grid containers incorrectly processing first-letter pseudo-elements when they should not contribute a first formatted line according to the CSS Grid specification. (154504582)
- Fixed grid items hit-testing order to align with painting order. (154990290)
- Fixed SVG paint server fallback handling for a non-existent URL. (144493507)
- Fixed respecting the CSS image-rendering property when drawing an SVG. (144507619)
- Fixed handling url(...) none to match the SVG Paint Server specification. (146454258)
- Fixed ancestor bounding box for “disabled” and . (147455573)
- Fixed: Improved handling of SVG images with subresources. (148607855)
- Fixed handling of auto for rx and ry on . (153274593)
Safari View Controller
Resolved Issues- Fixed lvh and vh viewport units getting incorrectly sized relative to the small viewport in SFSafariViewController. (108380836)
Scrolling
Resolved Issues- Fixed selection does not update during autoscroll when selecting with a gesture or a mouse. (144744443)
- Fixed autoscrolling for smooth scrolling while selecting text. (144900491)
- Fixed inconsistent decimal values from getBoundingClientRect for sticky elements. (147163986)
- Fixed scroll compensation transform to be applied before any other transforms. (155992464)
Security
New Features- Added support for enforcing the Integrity-Policy header on script destinations. (152244156)
- Added new configuration to support Google Safe Browsing version 5 traffic to Safari and WebKit clients with the web browser entitlement. (154114595)
Service Workers
Resolved Issues- Fixed the ReadableStream cancel method not getting reliably called in Service Worker. (144297119)
- Fixed an issue where navigation preload responses incorrectly retained a redirection flag when served from disk cache, causing security check failures during loading. (144571433)
- Fixed structure Clone to preserve Error.cause. (152725880)
Spatial Web
New Features- Added support for the element for embedding interactive 3D models into web content in visionOS. (99085736)
- Added playback support for 180º, 360º, and Apple Projected Media Profile formats. (140124611)
- Fixed various issues related to spatial audio not working in visionOS that could occur when repositioning Safari widows or moving a tab to a new window. (145661522)
- Fixed the shape of gaze glow regions for elements with associated labels when the element has non-uniform border radii or if the element is styled with clip-path. (154258426)
Text
Resolved Issues- Fixed generating text fragments around text that contains newlines. (137109344)
- Fixed generating text fragments when the selected text starts and ends in different blocks. (137761701)
- Fixed bold synthesis to be less aggressive. (138047199)
- Fixed Copy Link with Highlight not working when selecting text that is its own block and when that text exists higher up in the document. (144392379)
- Fixed selections that start or end in white space not creating text fragments. (145614181)
- Fixed and to use font-weight: bolder to match the Web Specification. (146458131)
- Fixed Korean counter styles to be aligned with manual Korean numbering in lists. (152969810)
- Fixed content spacing for elements with text-align: justify and white-space: pre-wrap applied. (154211168)
URLs
Resolved Issues- Fixed percent-encoding ^ in non-opaque URL paths. (146233526)
- Fixed ensuring that opaque URL paths always roundtrip. (146848690)
- Fixed making URL host and hostname setters handle @ correctly. (146886347)
- Fixed Windows drive letter after file:/// when parsing URLs. (147381130)
Web API
New Features- Added support for the URLPattern API. (114658976)
- Added support for scrollMargin in IntersectionObserver. (117527880)
- Added toggle event support for dialog open and close. (122185814)
- Added support for Trusted Types. (130065736)
- Added support for the WebAuthn Signal API. (134729866)
- Added support for Scoped Custom Element Registry. (144888965)
- Added support for the Digital Credentials API. (145536102)
- Added support for the File System WritableStream API. (145875384)
- Added support for the alg parameter when importing or exporting Edward’s-curve based JSON Web Keys in WebCrypto. (147323269)
- Added support for user Agent Allows Protocol in the Digital Credentials API. (153776127)
- Fixed: URL’s protocol setter should forbid switching non-special to special schemes. (82549495)
- Fixed event dispatching to be done by the fullscreen rendering update steps. (103209495)
- Fixed the mousemove event to be fired when the mouse stays in the document but there is no element. (120551245)
- Fixed an overly broad fullscreen exit trigger by restricting it to only text-entry elements gaining focus, preventing non-text input types from causing unexpected fullscreen exits. (136726993)
- Fixed WKDownload.originating Frame of downloads originated without a frame. (145328556)
- Fixed fullscreen to use a single queue for event dispatching. (145372389)
- Fixed the Progress Event members loaded and total to use the double type as per a recent specification change. (146356214)
- Fixed Intrinsic Sizing of SVG embedded via to be invalidated on navigation. (147198632)
- Fixed an issue where pending utterances do not receive an error event when speech synthesis is cancelled. (148731039)
- Fixed escaping < and > when serializing HTML attribute values. (150520333)
- Fixed making the SpeechRecognition interface available only within a secure context. (151240414)
- Fixed the
- Fixed IntersectionObvserver to notify observers asynchronously. (152684301)
- Fixed setting inner HTML to correctly use a scoped custom element registry associated with the context object. (154333132)
- Fixed attach Shadow throwing type error with a ShadowRoot document-fragment. (154658449)
- Removed the get SVGDocument() method from HTMLFrame Element to align with the specification. (133800070)
Web Animations
Resolved Issues- Fixed CSS scroll-driven animations on pages using requestAnimationFrame to animate correctly after navigating away and back to the page. (141528296)
- Fixed computing the time offset as needed when applying accelerated actions. (142604875)
Web Apps
New Features- Added support for any website to become a web app on iOS or iPadOS. (113034903)
- Fixed the “Add to Home Screen” flow failing to load webpage data, preventing users from making new Home Screen web apps. (154655565)
Web Extensions
New Features- Added support to show Web Extension commands in the menubar on macOS and iPadOS. On macOS, users can customize the keyboard shortcut associated with a command in Safari Settings. (99049863)
- Added support for web extensions in WebDriver. (144725173)
- Added support for dom.openOrClosedShadowRoot(). (153118095)
- Fixed tabs.update to not remove history from the target tab. (134939755)
- Fixed including the extension’s icon in the commands menu item and prevented customization using System Settings. (135360504)
- Fixed a bug where the runtime.MessageSender origin parameter would be lowercased, differing from the result returned from runtime.getURL. (140291738)
- Fixed high priority redirects to supercede low priority blocks for declarativeNetRequest. (145241581)
- Fixed "exclude Matches" array in scripting.registerContentScripts() API getting ignored in Safari web extensions. (145489255)
- Fixed a declarative Net Request bug that prevents redirects to extension resources. (145569361)
- Fixed processing of declarative Net Request rules so that higher numbers are treated as higher priority. (145570245)
- Fixed an issue causing wasm-unsafe-eval to not get parsed as a valid CSP keyword. (147551225)
- Fixed permissions.getAll() to return the correct origins if all urls and/or hosts match pattern(s) have been granted. (147872012)
- Fixed a non-fatal web Request error for non-persistent background content. (150051544)
- Fixed allow All Requests declarativeNetRequest rules so that a higher priority correctly overrides a lower-priority block rule. (152746422)
- Fixed CSS display: none matching everything still getting applied even after an ignore-following-rules action was matched. (152996225)
- Fixed calling scripting.registerContentScripts() sometimes returning the error: “Error: Invalid call to scripting.registerContentScripts(). Failed to add content script.” (153001967)
Web Inspector
New Features- Added support for the console to log both the URI and the time when entering a new navigation context. (116901390)
- Added support for automatic inspection of Service Workers. (118233905)
- Added support for showing @scope styles in the Styles sidebar. (138840732)
- Added support for console.profile in Worker. (144672019)
- Added support for exporting and importing data from worker targets in the Timelines tab. (145330533)
- Added a a badge for to quickly jump to the assigned node in the Elements tab. (148297936)
- Added support for recording Workers in the Timelines tab. (151721737)
- Added support for @starting-style. (153862298)
- Fixed pretty-printing CSS to avoid adding a space after the universal selector (*) when followed by a pseudo-class or pseudo-element, preventing unintended changes to CSS selector behavior. (71544976)
- Fixed to show a separate overview for each target in the Timelines tab. (146356054)
- Fixed a performance issue when blackboxing a large number of sourcemaps. (148116377)
- Fixed the debugger to step over an await statement as though it is synchronous code. (149133320)
- Fixed parsing sourcemaps asynchronously so that large sourcemaps do not block rendering. (151269154)
- Fixed the Timelines tab to consistently display the target’s hierarchical path for JavaScript and Events to prevent confusion when working with multiple targets. (152357197)
- Fixed clicking on the “+” button in the Sources tab sidebar doing nothing when Web Inspector is undocked. (153193833)
- Fixed Quick Open dialog to show results when an Inspector Bootstrap script exists. (154947309)
WebAssembly
New Features- Added support for an in-place interpreter for Wasm. (113768719)
WebGPU
New Features- Added support for WebGPU. (145801580)
WebKit API
New Features- Added Screen Time support to WKWebView. (62901207)
- Added support for a WebKit API in SwiftUI. (65050537)
- Added support for local storage and session storage restoration APIs. (137700273)
- Added support for applying backdrop-filter to content behind a transparent webview. (144100719)
- Added a new obscured Content Insets property to WKWebView that allows developers to specify areas of the web view that are covered by browser UI elements like tab bars or toolbars. Set this property to automatically adjust the layout viewport so web content renders within the visible area without being obscured by overlapping interface elements. (155921447)
- Fixed a crash at launch in iOS Simulator for apps built for older deployment targets that bind to specific WebKit API. (152200884)
- Deprecated WKProcessPool and WKSelectionGranularity. (152447218)
WebRTC
New Features- Added support for exposing CSRC information for RTCEncodedVideoStream. (76548862)
- Added support for the Speaker Selection API on iOS and iPadOS. (141436868)
- Added serialization of RTCEncodedAudioFrame and RTCEncodedVideoFrame. (148244334)
- Added support for Image Capture.grab Frame. (148425176)
- Added support for RTCRtpScriptTransformer.generate Key Frame to take a rid parameter. (148592676)
- Added support for RTCEncodedAudioFrame and RTCEncodedVideoFrame constructors. (149541424)
- Added support for exposing a default system speaker device. (151761469)
- Fixed switching from speaker to receiver does not work the first time, but only the second time. (141685006)
- Fixed enumerate Devices returning devices as available when permissions are denied. (147313922)
- Fixed enumerate Devices to not check for device permission. (148094614)
- Fixed WebRTC encoded transform to transfer to the RTC encoded frame array buffer. (148343876)
- Fixed RTC encoded frame timestamp should be persistent. (148580865)
- Fixed the configurationchange event to fire when a microphone’s audio unit changes its echo cancellation mode, ensuring web pages are notified of such changes to update track settings accordingly. (150770940)
- Removed the fec and rtx from WebRTC encoding parameters. (155046829)
- Jul 29, 2025
- Parsed from source:Jul 29, 2025
- Detected by Releasebot:Sep 29, 2025
Safari 18.6
Safari 18.6
is available for iOS 18.6, iPadOS 18.6, visionOS 2.6, macOS 15.6, macOS Sonoma, and macOS Ventura.
- Fixed style invalidation for :has(+popover-open). (149794951)
- Fixed a crash at launch in iOS Simulator for apps built for older deployment targets that bind to specific WebKit API. (152342621)
- Fixed loading a web accessible resource from a subframe at about:blank. (149971391)
- Fixed 'allow All Requests' for declarative Net Request. (151015324)
- May 12, 2025
- Parsed from source:May 12, 2025
- Detected by Releasebot:Sep 29, 2025
Safari 18.5 Release Notes
Safari 18.5 rolls out across iOS, iPadOS, visionOS, macOS Sonoma, macOS Ventura, and macOS 15.5 with a slate of stability fixes and a notable new feature. Key fixes tackle caret positioning in vertical writing modes on iOS, WebWorker WebSocket freezes, premature Service Worker downloads, and download finalization. It also resolves a permission quirk where DeclarativeNetRequestWithHostAccess could.
Safari 18.5 is available for iOS 18.5, iPadOS 18.5, visionOS 2.5, macOS 15.5, macOS Sonoma, and macOS Ventura.
Resolved Issues
- Fixed some errors in finding the caret position from a click or tap on iOS in vertical writing modes. (146512180)
- Fixed using WebSocket in a WebWorker causing the entire Worker to freeze. (145149784)
- Fixed Service Worker downloads being prematurely interrupted. (143065672)
- Fixed moving a download file to its final destination. (146326574)
- Fixed declarativeNetRequestWithHostAccess permission removing site access even though the extension already has permission to inject scripts. (145484265)
New Features
- Added support for Declarative Web Push on macOS. (148109003)
- Mar 31, 2025
- Parsed from source:Mar 31, 2025
- Detected by Releasebot:Sep 29, 2025
Safari 18.4
Safari 18.4 ships with broad WebKit updates across CSS, JavaScript, and media, plus security improvements like pinning on security keys and expanded certificate details. Deprecations include old APIs; new features span writing modes, gradients, image and audio/video tech, and visionOS support.
Safari 18.4 notes
Authentication
- Added support for setting a pin on a security key when a registration requires it. (122660610)
Browser
Resolved Issues- Fixed an issue where sites would log out automatically after a brief time. (99829958)
Canvas
New Features- Added CanvasRenderingContext2D support for unprefixed letterSpacing and wordSpacing. (140614722)
- Removed support for webKitBackingStorePixelRatio. (123980544)
- Removed support for the prefixed webkitImageSmoothingEnabled to use the standard imageSmoothingEnabled property. (141128458)
- Removed non-standard legacy alias of Canvas Compositing including setAlpha and setCompositeOperation. (141510218)
Connection Security
New Features- Added the ability to view certificate detail from Page Menu > more > Connection Security Details on iOS, iPadOS, and in visionOS, or Safari > Connection Security Details… on macOS. (139300381)
- Removed the lock icon from the Smart Search field for HTTPS connection. (107993392) (107993392)
CSS
New Features- Added support for writing-mode: sideways-rl and writing-mode: sideways-lr. (81519211)
- Added support for the ::details-content pseudo-element. (129786929)
- Added attr() fallback support. (136763160)
- Added support for view-transition-name: match-element. (138932551)
- Added support for text-autospace. (140008990)
- Added support for the CSS shape() function. (142276582)
- Added support for gradients with only one stop. (142796999)
- Fixed table border-color to be currentColor by default. (48382483)
- Fixed combining CSS clip-path with any property that creates a new stacking context makes element disappear. (86091397)
- Fixed resize to not be applied to generated content. (121348638)
- Fixed contain: size breaking object-fit. (131866042)
- Fixed: Dropped layout containment from container-type. (132549134)
- Fixed handling all of the CSS properties in specifications that should cause a UI widget to devolve to a primitive appearance. (134273374)
- Fixed scrollIntoView alignment to always be honored. (135484284)
- Fixed: background-clip: border-area to do nothing on the root. (135972986)
- Fixed vertical-rl writing mode inter-character ruby text being significantly smaller than over ruby text. (135973587)
- Fixed CSS cursor to not eagerly evaluate calc() values. (136103471)
- Fixed flex shorthand to not eagerly evaluate calc(). (136103475)
- Fixed -webkit-perspective to not eagerly evaluate calc(). (136103493)
- Fixed @property initial-value descriptor to prevent containing var(--foo). (136103499)
- Fixed delaying the evaluation of calc() for raw font consumers so that each caller can choose the correct behavior. (136103500)
- Fixed grid to not eagerly evaluate calc() for repetitions value. (136103503)
- Fixed counter-increment, counter-set, and counter-reset to not eagerly evaluate calc(). (136103519)
- Fixed CSS nested declarations inside a @scope to behave like :where(:scope). (136856371)
- Fixed: Updated the shape() function to match the proposed syntax. (138126105)
- Fixed same-document view transitions performance on pages with many elements. (138966650)
- Fixed an issue where radial gradients with two color stops at 100% failed to extend the last color. (139369366)
- Fixed @scope start and end to be a classic (non-forgiving) selector list. (139471866)
- Fixed updating the base background color where the root has color set explicitly when switching to light or dark modes. (139917332)
- Fixed performance of querySelectorAll() with :has() descendant selectors. (140093151)
- Fixed the unicode-bidi default for the element. (140662417)
- Fixed broken revert-layer when logical group CSS properties are explicitly inherited. (140819138)
- Fixed border-spacing to use the shortest possible serialization (“0px” vs “0px 0px”). (141920587)
- Fixed subsequent nested styles getting ignored after an incorrect nested selector. (142187930)
- Fixed font-variant-caps: all-small-caps causing incorrect box-sizing in flex inline context. (142212550)
- Fixed ensuring the correct logic is run for over-constrained cases when the absolute positioned box is a writing-mode root. (142214631)
- Fixed animation-name set from the view transitions dynamic UA stylesheet having extra quotes. (142298840)
- Fixed the serialization and parsing of animation-name strings. (142318879)
- Fixed text-box-trim accumulation failing when updating the CSS dynamically. (142386761)
- Fixed text-emphasis to not paint emphasis marks on punctuations. (142387538)
- Fixed sizing and positioning issues when a popover changes CSS position upon opening. (142491219)
- Fixed Page Zoom (⌘+ and ⌘-) to work with calc() used with font-size on macOS. (142736427) (FB16287129)
- Fixed scroll-padding and scroll-margin to be strongly typed CSS/Style values. (142830546)
- Fixed View Transitions to stop running when the user navigates with a swipe. (142844150)
- Fixed top-level and nesting selector to have zero specificity matching a recent specification update. (143765827)
- Removed the non-standard CSSUnknownRule interface. (142380626)
Editing
New Features- Implemented ClipboardItem.support() which gives the page author the ability to understand which formats are supported during Clipboard operations. It also now returns a TypeError for a new ClipboardItem() with an empty Array. (136008522)
- Fixed document.execCommand("copy") only triggering if there is a selection. (27792460)
- Fixed an issue where iCloud Notes pasted text copied from a plain text document in Safari as raw markup. (124788252)
- Fixed highlighting correctly a large text selection that ends with a common phrase. (135973065)
- Fixed copying a link to a common term in an article to highlight the correct part of the page. (135973186)
- Fixed missing Secure Context in the ClipboardItem interface. (137197266)
- Fixed Hebrew text pasted from Safari getting aligned left. (139029945)
- Fixed setting selection to not set focus unless there is an existing selection. (139075809)
- Fixed sometimes being unable to select text for non-editable content. (143296175)
- Fixed missing selection handles after selecting text across multiple lines. (143720155)
Forms
New Features- Improved support on iOS. (125457578)
- Added alpha and colorspace attributes to . (137737348)
- Fixed
- Fixed setting a datetime-local input to a large value cause a crash. (135733092)
- Fixed dropdown keyboard interactions to align with platform conventions. (143012287)
- Fixed: Disabled all Writing Tools app menu items, except “Compose”, for empty editable content. (143332082)
Home Screen Web Apps
Resolved Issues- Fixed Wake Lock API for Home Screen Web Apps. (108573133)
HTML
New Features- Implemented and disclosure triangle as a list item. (95148788)
- Removed the composite attribute on an element. (143109250)
Images
Resolved Issues- Fixed broken WebP images in lockdown mode. (144224372)
JavaScript
New Features- Completed the Iterator Helpers proposal by implementing map(), filter(), take(), drop(), and flatMap() methods. (103171739)
- Updated JSON.parse to provide the reviver function access to the input source text and extended JSON.stringify behavior to support object placeholders. (131579181)
- Added support for Math.sumPrecise. (131580043)
- Added support for Iterator.prototype.toArray from Iterator Helpers Proposal. (135493558)
- Added support for Iterator.prototype.forEach from Iterator Helpers Proposal. (136010225)
- Added support for some, every, find from Iterator Helpers Proposal. (136027193)
- Added support for Iterator.prototype.reduce. (136064316)
- Added support for SetterThatIgnoresPrototypeProperties() in Iterator helpers. (137078675)
- Added support for Atomics.pause. (137571229)
- Added support for Iterator.prototype.chunks and Iterator.prototype.windows. (138012241)
- Added support for Iterator.prototype.concat. (138013723)
- Added support for Iterator Helpers. (138520150)
- Added support for Map.prototype.getOrInsert and WeakMap.prototype.getOrInsert. (138955824)
- Added support for Error.isError. (141132351)
- Added "never" and "formal Symbol" to the currencyDisplay option for Intl.NumberFormat. (141504278)
- Fixed Array destructuring assignment to close the iterator if an evaluation throws an exception. (121960887)
- Fixed: Updated Intl.DurationFormat#resolvedOptions to the latest specification. (136276429)
- Fixed Iterator Helpers methods to not iterate an array. (136303997)
- Fixed Iterator.prototype.reduce() not properly forwarding the return() call to the underlying iterator. (137181340)
- Fixed Set.prototype methods to invoke keys() without arguments. (137395979)
- Fixed Array.from(), Array.fromAsync(), and TypedArray.from() to invoke document.all passed as a mapper. (137490201)
- Fixed Intl.DurationFormat to have a value limit to match the specification. (137885273)
- Fixed a rounding error for Intl.DurationFormat. (138261569)
- Fixed calendar canonicalization logic in DateTimeFormat. (141792829)
- Fixed broken output for Intl.DurationFormat digital style when hoursDisplay is "auto". (141969050)
- Fixed Intl.DurationFormat to print a negative sign for minutes after hidden hours. (142119353)
- Fixed Array.prototype.toReversed to fill holes with undefined. (142197604)
- Fixed: Increased the matchLimit for regular expressions, allowing complex matches on longer strings. (143202375)
- Removed obsoleted methods for Temporal.PlainTime and Temporal.PlainDateTime to align with specification changes. (135509670)
Loading
New Features- Added noopener-allow-popups support in Cross-Origin-Opener-Policy. (129664445)
Media
New Features- Added support for Ogg Opus and Ogg Vorbis on macOS Sequoia 15.4, iOS 18.4, iPadOS 18.4, and visionOS 2.4. (131407707)
- Added support for the Image Capture API. (136860809)
- Added WebM support to MediaRecorder. (137560454)
- Fixed handling an empty srcAttr in Media Element. (132042925)
- Fixed getUserMedia video track getSettings() returning a stale value for torch and whiteBalanceMode constraints. (137870391)
- Fixed the space key not pausing a video in fullscreen by making the video mouse focusable. (138037616)
- Fixed an issue where playback doesn’t always resume after a seek. (140097993)
- Fixed playing video generating non-monotonic ‘timeupdate’ events. (142275184) (FB16222910)
- Fixed websites calling play() during a seek() is allowed by the specification so that the play event is fired even if the seek hasn’t completed. (142517488)
- Fixed seek not completing for WebM under some circumstances. (143372794)
- Fixed MediaRecorderPrivateEncoder writing frames out of order. (143956063)
Networking
New Features- Added support for Cookies Having Independent Partitioned State (CHIPS). (116143212)
- Added support for cookies’ Partitioned attribute for opt-in partitioned cookies. (142317056)
- Blocked partitioned cookies for known tracking domains. (144184516)
- Fixed optimistically upgraded navigations to set a timeout based on current network conditions. (135972599)
- Changed 3DES cipher to show a warning to users that it is a legacy TLS cipher. (138948491)
PDF
Resolved Issues- Fixed switching a PDF from continuous to discrete mode displaying the page(s) that are at the top of the window, even when barely visible. (137608841)
- Fixed the “Previous Page” context menu option not navigating to previous page in 2-up continuous mode. (139817364)
- Fixed main frame PDFs served with a CSP sandbox header not loading. (141166987)
Rendering
Resolved IssuesFixed computing the baseline for replaced elements with an intrinsic ratio but no intrinsic size as flex items. (74279029)
Fixed flickering caused by extra resize events dispatched when rotating from landscape to portrait on iOS. (93767145)
Fixed adding out-of-flow objects under the inline in a continuation chain, when possible. (102421379)
Fixed mix-blend-mode to work for large resolution fixed or stick elements. (104686540)
Fixed the missing table collapsed border for , , and elements in the wrong order. (110430887)
Fixed handling inline-box trailing content. (112409103)
Fixed taking up space even with width: 0 applied. (113402515)
Fixed the Spotify media player disappearing when rotating to landscape mode on iOS. (123870311)
Fixed textarea elements to reserve space for overlay scrollbars. (129597865)
Fixed grid layout animation performance by caching intrinsic logical heights during the first row sizing pass, improving efficiency and preventing invalidation issues with complex grid configurations. (135791322)
Fixed Grid item which is an image with specified sizes failing to update when the src changes. (135972911)
Fixed nested inlines’ vertical alignment when line-fit-edge is set. (136036997)
Fixed the consistency of table layout with . (136090741)
Fixed repainting to be more consistent for text-underline-position. (136095297)
Fixed floats not clearing in the WordPress Classic Editor sidebar layout. (136362683)
Fixed handling of out-of-flow children in MathML layout functions to be consistent. (136683070)
Fixed a repeating background-image sized to the content-box failing to fill the viewport in an iframe. (136725820)
Fixed consistently triggering a reflow when needed for table DOM manipulations. (137300794)
Fixed scriptlevel multipler for font-size in MathML. (137671252)
Fixed inline marquees to allow them to shrink when adjacent to float(s). (137766071)
Fixed a flex container with no flex item to not run flex layout. (137884128)
Fixed support for CSS width and height properties on MathML elements. (138174295)
Fixed Inline content incorrectly positioning around right-to-left and/or vertical shape-outside floats. (139076129)
Fixed incorrectly overlapping when a float has shape-outside: inset. (139133291)
Fixed right-to-left content failing with a shape-outside float. (139198865)
Fixed incorrectly overlapping a float that has shape-outside: ellipse in vertical mode. (139208636)
Fixed incorrectly overlapping a float that has shape-outside: polygon in right-to-left. (139215719)
Fixed outside list-style-position quirk to only be applicable in quirks mode. (140602985)
Fixed: Updated line box dimensions. (141167251)
Fixed incorrect horizontal writing mode state when nested in a vertical block container. (141543326)
Fixed baseline calculation few cases for tables with empty rows. (142046863)
Fixed to refuse to break inside replaced content. (142224455)
Fixed absolute positioned child with percent to include containing block padding. (142321535)
Fixed computing an out-of-flow box width correctly when it is inside an inline continuation. (142417374)
Fixed a border not showing when a linear gradient and a border radius are set. (142617573)
Fixed relative-positioned input elements in scroll areas not rendering outlines. (142995142)
Fixed tabbing out of a popover causing a hang in certain cases. (143145544)
Fixed setting up inline continuations correctly when not inserting a new child. (143388080)
Fixed adding a margin-top to a also adds a bottom margin. (143720832)
- Removed the non-standard CSSUnknownRule interface. (142380626)
Editing
New Features- Implemented ClipboardItem.support() which gives the page author the ability to understand which formats are supported during Clipboard operations. It also now returns a TypeError for a new ClipboardItem() with an empty Array. (136008522)
- Fixed document.execCommand("copy") only triggering if there is a selection. (27792460)
- Fixed an issue where iCloud Notes pasted text copied from a plain text document in Safari as raw markup. (124788252)
- Fixed highlighting correctly a large text selection that ends with a common phrase. (135973065)
- Fixed copying a link to a common term in an article to highlight the correct part of the page. (135973186)
- Fixed missing Secure Context in the ClipboardItem interface. (137197266)
- Fixed Hebrew text pasted from Safari getting aligned left. (139029945)
- Fixed setting selection to not set focus unless there is an existing selection. (139075809)
- Fixed sometimes being unable to select text for non-editable content. (143296175)
- Fixed missing selection handles after selecting text across multiple lines. (143720155)
Forms
New Features- Improved support on iOS. (125457578)
- Added alpha and colorspace attributes to . (137737348)
- Fixed
- Fixed setting a datetime-local input to a large value cause a crash. (135733092)
- Fixed dropdown keyboard interactions to align with platform conventions. (143012287)
- Fixed: Disabled all Writing Tools app menu items, except “Compose”, for empty editable content. (143332082)
Home Screen Web Apps
Resolved Issues- Fixed Wake Lock API for Home Screen Web Apps. (108573133)
HTML
New Features- Implemented and disclosure triangle as a list item. (95148788)
- Removed the composite attribute on an element. (143109250)
Images
Resolved Issues- Fixed broken WebP images in lockdown mode. (144224372)
JavaScript (continued)
New Features- See above (listed in JavaScript new features)
- See above (listed in JavaScript resolved issues)
- Removed wheel event handling for to match platform conventions. (99318505)
Web API
New Features- Added support for element.focus({ focusVisible: true }). (97021844)
- Added support for PublicKeyCredential.toJSON(). (109419228)
- Added support for the Cookie Store API. (135969444)
- Added Key generation, import and export support for CryptoKeyOKP(x25519/ed25519). (136368298)
- Added support for Brotli to Compression Streams. (137244214)
- Added an option to set the popover’s invoker from an imperative API. (139362169)
- Added support for Declarative Web Push. (141082392)
- Added support for X25519 for Web Cryptography. (141346336)
- Added support for dialog.requestClose(). (143388390)
- Fixed: Aligned some MIME type handling in EME with the MIME Sniffing standard. (114311586)
- Fixed window.history.replaceState('', '', '') having no effect on macOS. (117782346)
- Fixed MutationObserver to observe style attribute changes when resizing the element. (120109181)
- Fixed: Updated selectorText handling to align with the specification for CSSPageRule. (125588212)
- Fixed Gamepad rumble issue where sending two sequential playEffect() requests prevents reset() from working as expected. (126589062) (FB13733668)
- Fixed matching emoji in an element’s id attribute from a with an href that uses percent-encoded syntax. (134531921)
- Fixed the onrejectionhandled and onunhandledrejection event handler attributes to work correctly on body and frameset elements. (135401362)
- Fixed render blocking for to not match elements that are on a ‘stack of open elements’ for the parser. (135846827)
- Fixed Distraction Control unexpectedly hiding out-of-flow elements that overlap with a hidden element. (136358918)
- Fixed CSSOM setSelectorText(string) to prepend the implicit selector. (136791222)
- Fixed HTMLElement.prototype.requestPointerLock to return a Promise. (139854530)
- Fixed innerText behavior for and . (140172890)
- Fixed the HTML parser phone number handling to better account for MathML. (141632782)
- Fixed Range.getClientRects to take surrogate pairs into account. (142098484)
- Fixed tokenization of the rel attribute of the link element and Link header. (142600096)
- Removed wheel event handling for to match platform conventions. (99318505)
Web Authentication
Resolved Issues- Fixed .catch() for conditional mediation not getting passed the abort reason that was thrown. (112178073)
Web Extensions
New Features- Added support for loading Safari Web Extensions that have been Developer ID-signed and notarized. (40429283)
- Added support for temporarily installing web extensions from disk without requiring an Xcode project. (98208121)
- Added support for getKeys() in storage areas. (136595295)
- Added support for i18n.getSystemUILanguage and i18n.getPreferredSystemLanguages. (136929657)
- Added support for documentId to the sender message object. (137532821)
- Added support for documentId to tabs.sendMessage() and tabs.connect(). (137532897)
- Added support for documentId in webNavigation. (137532909)
- Added support for documentId to webRequest. (141058456)
- Added support for documentId to scripting and tabs. (141291546)
- Added support for match_about_blank and match_origin_as_fallback to inject content scripts and styles into more frames. (145875291)
- Fixed CORS for Web Extension pages to respect granted per-site permissions. Developers will need to add a browser.permissions.request({origins: []}) call before doing any fetch() that is blocked by CORS. (102912898)
- Fixed an issue causing content blockers to not hide content in about:blank frames. (134273470)
- Fixed a slowdown in applying rulesets and dynamic rules in declarativeNetRequest. (136394861) (FB15196130)
- Fixed clicking the “Clear Storage…” button in Safari Extensions Settings. (137533628)
- Fixed storage.onChanged returning undefined as the areaName. (138086765)
- Fixed the tabs field missing from the result returned by windows.create. (138529797)
- Fixed es-419 support in Web Extensions. (138857112)
- Fixed the webRequest.onBeforeRequest event missing the requestBody. (140338580) (FB15911234)
- Fixed blurry extension icons. (142070967) (FB16171862)
- Fixed not picking the “zh” locale when “zh-Hant” is preferred. (142602243) (FB16271745)
- Fixed webRequest event listeners to honor extraInfoSpec for better performace. (142907168)
- Fixed web extension resources to be treated as UTF-8 by default. (143079179)
Web Inspector
New Features- Added support for ignoreList in sourcemaps. (130630075)
- Added support for viewport presets in Responsive Design Mode. (131541189)
- Added support for the Apps and Devices Inspector. (134519731)
- Exposed cookie Partition Key in Web Inspector. (136293236)
- Added the ability to modify only the headers of a request using a Request Local Override. (139043491)
- Added support for sending Android user agents using the device override menu when Web Inspector is connected to a remote device. (139305520)
- Added support for DOMRect in console.screenshot. (141650264)
- Added an orientation toggle to rotate a viewport preset in Responsive Design Mode. (142632311)
- Fixed ensuring that all of the Desktop Sites on iPad site-specific hacks are disabled when the site-specific hacks setting is turned off in Web Inspector. (50035167)
- Fixed style rules to stay editable after being modified by CSSOM in JavaScript. (124650808)
- Fixed glitches when trying to edit a style from a stylesheet that has an @import statement. (131756178)
- Fixed error cases to match new source map specification. (137934436)
- Fixed the overview icon to be inverted dark mode in the Graphics tab. (140602803)
- Fixed recorded WebGL objects not getting highlighted correctly in the Graphics tab. (140625113)
WebAssembly
New Features- Added support for JIT-less Wasm. (113768974)
- Added support for the new Wasm Exception Specification. (131409318)
- Implemented relaxed laneselect SIMD instructions. (138484223)
- Fixed Wasm legacy catch_all instruction to correctly catch thrown JS primitives. (135972897)
WebDriver
Resolved Issues- Fixed a crash that could occur when simulating drag events with the right mouse button. (137068514)
WebKit
New Features- Added support for WKWebExtension, WKWebExtensionContext, and WKWebExtensionController Swift and Objective-C classes to support integrating Web Extensions into WebKit-based browsers. (121537087)
WebRTC
New Features- Added support for MediaSession capture mute API. (131386187)
- Added support for stuns server URIs. (136505783)
- Added support for enumerated visible network interfaces. (137067672)
- Added support for the Speaker Selection API on macOS. (140918327)
- Fixed MediaSession.setMicrophoneActive(true) prompting repeatedly if the microphone was muted by the user-agent once. (135941062)
- Fixed setCameraActive to not unmute microphone if the user-agent previously muted both camera and microphone. (136221456)
- Fixed AirPods unmuting to not unmute the camera if website muted the camera. (137065964)
- Fixed voice search to not re-prompt for camera or microphone permission after a page-initiated same origin navigation. (138122655)
WKWebView
New Features- Added support for customizing the file upload flow for file inputs. (130219174)
- Added support for WKNavigationAction/buttonNumber and WKNavigationAction/modifierFlags as API on iOS. (136865172)
- Added support for the Writing Tools API in visionOS. (140412673)
- Fixed calling WKWebView.evaluateJavaScript in an async context when nothing is returned by JS. (139618495) (FB15755273)
See Also
Version 18
- Safari 18.6 Release Notes Released July 29, 2025 — 18.6 (20621.3.11)
- Safari 18.5 Release Notes Released May 12, 2025 — 18.5 (20621.2.5)
- Safari 18.3 Release Notes Released January 27, 2025 — 18.3 (20620.2.4)
- Safari 18.2 Release Notes Released December 11, 2024 — 18.2 (20620.1.16)
- Safari 18.1 Release Notes Released October 28, 2024 — 18.1 (20619.2.8)
- Safari 18.0.1 Release Notes Released October 3, 2024 — 18.0.1 (20619.1.26.30)
- Safari 18.0 Release Notes Released September 16, 2024 — 18.0 (20619.1.26)
- Jan 27, 2025
- Parsed from source:Jan 27, 2025
- Detected by Releasebot:Sep 29, 2025
Safari 18.3
Safari 18.3 updates across iOS, iPadOS, visionOS, and macOS bring broad fixes spanning accessibility, CSS, SVG, Web APIs, extensions, and WebKit stability. Notable improvements include VoiceOver announcements, rendering and scrolling fixes, WebAssembly memory management, and a security deprecation for Clear-Site-Data contexts.
Safari 18.3 is available for iOS 18.3, iPadOS 18.3, visionOS 2.3, macOS 15.3, macOS Sonoma, and macOS Ventura.
Accessibility
Resolved Issues
- Fixed VoiceOver to not announce the content of
- Dec 11, 2024
- Parsed from source:Dec 11, 2024
- Detected by Releasebot:Sep 29, 2025
Safari 18.2
Safari 18.2 ships across iOS, iPadOS, visionOS, and macOS with accessibility fixes, new View Transition CSS features, expanded CSS and Web API support, and broad rendering, security, and bug fixes.
Safari 18.2 is available for iOS 18.2, iPadOS 18.2, visionOS 2.2, macOS 15.2, macOS Sonoma, and macOS Ventura.
Accessibility Resolved Issues
- Fixed text-transform: full-size-kana to not affect speech output. (115504070)
- Fixed element reflection attributes to be able to retrieve a disconnected element. (133693674)
- Fixed VoiceOver focus to activate PDF form fields when it lands on them. (134522935)
- Fixed tree updates becoming broken when children change for a dynamically ignored element and its unignored ancestor is in the same tree update cycle. (137876593)
- Fixed handling dynamically-created and nested aria-modal dialogs. (137883473)
- Fixed the accessibility tree to update when a text selection is cleared. (137960839)
Browser New Features
- Added contextual menu support for generating text fragment links. (131712706)
Browser Resolved Issues
- Fixed windows not getting restored after updating macOS. (138413468)
Canvas Resolved Issues
- Fixed CanvasRenderingContext2D globalAlpha property getting ignored for some values of globalCompositeOperation. (134840885)
CSS New Features
- Added support for cross-document View Transitions. (133994557)
- Added support for View Transition Classes. (129849286)
- Added support for View Transition Types. (132051697)
- Added support for view-transition-name: auto. (137788958)
- Added support for ruby-align. (133656625)
- Added support for ruby-overhang. (135058411)
- Added support for unprefixed ruby-position. (86128259)
- Added support for text-box-edge. (133834296)
- Added support for text-box-trim. (133947582)
- Added support for the text-box shorthand. (133942602)
- Added support for text-underline-position: left and text-underline-position: right. (130621143)
- Added support for background-clip: border-area. (133788384)
- Added support for scrollbar-gutter. (111918434)
- Added support for scrollbar-width. (133019206)
- Added support for @page margin descriptors. (118773100)
- Added support for jis-b4 and jis-b5 sizes for @page. (133138325)
- Added support for :is(:host). (118582384)
- Added support for closest-corner and farthest-corner in circle and ellipse shapes. (132936677)
- Added support for @property syntax. (133250776)
- Added support for ::target-text. (134010063)
- Updated calc() to the most recent web standard, including support for dividing by numbers with additional units. (134446246)
CSS Resolved Issues
- Fixed backgrounds applied to a table row repeating in every table cell. (11446455)
- Fixed the size property of @page to parse as a descriptor, not a global CSS property. (92963022)
- Fixed background-clip: text to correctly paint text decorations. (93823895)
- Fixed font-variant: small-caps normal; to be invalid syntax. (102679841)
- Fixed -webkit-line-clamp: none to be parsable. (103158259)
- Fixed text-underline-offset to support percentages. (117246233)
- Fixed text-decoration-thickness to work in buttons. (118320835)
- Fixed the lh unit sometimes getting computed before line-height is resolved. (118983248)
- Fixed touch-action to use pan-x pan-y order when serializing. (125349558)
- Fixed serialization of place-content, place-items, and place-self properties. (125415088)
- Fixed: Updated CSS Nesting to remove the hoisting behavior. (130094168)
- Fixed: Improved scrollbar styling support for interoperability. (131515907)
- Fixed contrast between ButtonFace and ButtonText system colors in dark mode. (131996608)
- Fixed: Disallow matching of :has() in CSS Nesting. (132102543)
- Fixed defaults for text underline position and text emphasis marks in CJK languages. (132444497)
- Fixed attribute initial-value makes the @property rule invalid for [var(--x)]. (134317319)
- Fixed invalidating attribute values when programmatically mutated so that page attribute selectors work as expected. (137228504)
- Fixed CSS Nested declarations inside a @scope to behave like :where(:scope). (137307934)
Editing Resolved Issues
- Fixed aligning with the standardized version of the autocorrect attribute, which does not support Email, URL, and Password fields and does not treat the empty string value in a special way. (101036922)
Forms New Features
- Added support for input type=week on iOS, iPadOS, and visionOS. (10854201)
Forms Resolved Issues
- Fixed HTMLSelectElement.prototype.add with optgroup elements. (120553757)
History Resolved Issues
- Fixed using Cross-Origin-Opener-Policy HTTP header disabling the back-forward cache. (128678196)
JavaScript New Features
- Implemented Float16Array. (109883982)
- Added support for Uint8Array.prototype.toBase64 and Uint8Array.prototype.toHex. (129045737)
- Added support for Uint8Array.fromBase64 and Uint8Array.prototype.setFromBase64. (131509586)
- Added support for firstDayOfWeek for Intl.Locale info API. (132731533)
- Added support for Promise.try and RegExp.escape. (132952304)
- Enabled Base64 and Hex features. (133312461)
- Added support for type reflection for WebAssembly.Module.imports and WebAssembly.Module.exports. (133429946)
- Added support for Iterator.prototype.constructor and Iterator.prototype[@@toStringTag]. (134598491)
- Added support for Iterator.from from Iterator Helpers Proposal. (135065388)
JavaScript Resolved Issues
- Fixed class field initializers to disallow yield and await expressions. (119044881)
- Fixed DestructuringAssignmentTarget to be evaluated prior to calling [[Get]] or a stepping iterator. (121960976)
- Fixed throwing an exception for negative exponent in BigInt in the JIT compiler. (131051084)
- Fixed RegExp range quantifier to allow 2^53 - 1. (131710011)
- Fixed Uint8Array#setFromBase64 to decode and write chunks which occur prior to bad data. (132198988)
- Fixed: Disallow yield and await expressions in class field initializers. (132338331)
- Fixed TimeZone without Time to be rejected in ISO8601 strings. (133988956)
- Fixed Object.keys(global) including non-enumerable properties unless deleted first. (134121649)
- Fixed duration format’s nanoseconds calculation ordering. (134526619)
- Fixed TimeZoneAnnotation to disallow sub-minute. (134541964)
- Fixed: Improved the TypeError message when a WeakMap constructor takes an iterable that yields invalid entry. (135333331)
- Fixed incorrect SyntaxError when destructuring let. (135353378)
Loading Resolved Issues
- Fixed javascript: URL navigation to another browsing context created from window.open not checking the source’s Content Security Policy. (137941234)
Media New Features
- Added support for viewing Spatial Photos in Safari in visionOS. (130545126)
- Added a fallback image to Now Playing when a website doesn’t specify one in MediaSession metadata. (131185836)
- Added support for allowing websites to override the system-default accessibility caption styling. (134265139)
- Added support for Spatial Video in Safari in visionOS. (138482091)
Media Resolved Issues
- Fixed fullscreen error handling to include error messages. (103073510)
- Fixed audioTrack.configuration() values for WebM files. (133545263)
Networking New Features
- Added support for Document render-blocking with . (122797243)
- Added support for Navigation Activation.finished handling. (133220864)
PDF Resolved Issues
- Fixed a hang that could occur using the Select All keyboard shortcut ⌘A (Command-A) on a PDF causing all pages to be blank. (125375518)
Rendering New Features
- Added support for blocking=render attribute for
- Oct 28, 2024
- Parsed from source:Oct 28, 2024
- Detected by Releasebot:Sep 29, 2025
Safari 18.1
Safari 18.1 ships with broad accessibility and stability improvements across iOS, iPadOS, visionOS, macOS, and Safari. It includes numerous fixes (ARIA, table/nav accessibility, text under aria-describedby, display: contents, VoiceOver), a new WKWebView Writing Tools API, and AVIF/codec optimizations.
Safari 18.1 is available for iOS 18.1, iPadOS 18.1, visionOS 2.1, macOS 15.1, macOS Sonoma, and macOS Ventura.
Accessibility
- Fixed display: contents on tbody elements preventing table rows from being properly exposed in the accessibility tree. (129131780)
- Fixed the handling of ElementInternals’s ariaValueNow null values so the right value is exposed to assistive technologies. (129218234)
- Fixed tables with hidden rows reporting wrong counts and blocking access to some rows in VoiceOver. (129612387)
- Fixed role="menu" elements to allow child groups with menuitem children. (131838275)
- Fixed updating the accessibility tree when text underneath an aria-describedby element changes. (131877635)
- Fixed text exposed to assistive technologies when display: contents directly wraps a display: block text container. (132265522)
- Fixed VoiceOver not finding any content in a table when display: table is applied to tbody elements. (132820485)
Authentication
- Fixed an issue using large credential lists with security keys. (133711978)
CSS
- Fixed style container queries querying the root element. (124875999)
Editing
- Fixed deleting content immediately before a element unexpectedly removing elements. (128100106)
- Fixed inserting text before a element inserting the text after the element instead. (134378236)
JavaScript
- Fixed incorrect optimization and random non-updated values. (135851156)
Media
- Fixed a bug in WebCodecs where audio and video codecs with pending work could be prematurely garbage collected. (134297589)
Networking
- Fixed a bug where Cross-Origin-Opener-Policy header fields in the response of iframe elements were not ignored, resulting in window.opener being null after multiple cross-origin navigations of the embedder document. (132840366)
Rendering
- Fixed content-visibility to not apply to elements with display: contents or display: none. (134436437)
- Fixed float clearing in the WordPress Classic Editor sidebar layout. (136988841)
Security
- Fixed the ping attribute for elements to be controlled by the connect-src CSP directive. (131054895)
Web Extensions
- Fixed blob URL downloads failing to trigger from an extension. (78929424)
WebRTC
- Fixed blurry screen sharing for some sites. (133611004)
WKWebView
New Features- Added support for the Writing Tools API to enable and customize the behavior in apps. (128340967)
- Fixed AVIF in WKWebView on macOS. (133272264) (FB14678252)
- Oct 3, 2024
- Parsed from source:Oct 3, 2024
- Detected by Releasebot:Sep 29, 2025
Safari 18.0.1 Release Notes
Safari 18.0.1
Safari 18.0.1 is available for iOS 18.0.1, iPadOS 18.0.1, visionOS 2.0.1, macOS 15.0.1, macOS Sonoma, and macOS Ventura.
- Fixed SameSite default behavior.
- Fixed an issue to restore lost Safari Web Extension data.
- Sep 16, 2024
- Parsed from source:Sep 16, 2024
- Detected by Releasebot:Sep 29, 2025
Safari 18.0
Safari 18.0 ships with broad feature and fix updates across input types (datetime, datetime-local, time) and ARIA reflection, plus extensive accessibility, CSS, Web API, rendering, media, and WebKit improvements and bug fixes across iOS, iPadOS, visionOS, and macOS.
New Features
- Added support for , , and elements. (118180250)
- Added support for ariaBrailleLabel and ariaBrailleRoleDescription element reflection properties. (123926949)
Resolved Issues
- Fixed role assignment for inside and sectioning elements. (48370244)
- Fixed range input not firing an input event when incremented or decremented via accessibility APIs. (85707481)
- Fixed setting aria-hidden on a slot not hiding the slot’s assigned nodes. (108762653)
- Fixed VoiceOver to read hidden associated labels. (113631557)
- Fixed comboboxes to expose their linked objects correctly. (121242926)
- Fixed VoiceOver support for aria-activedescendant on macOS. (122590052)
- Fixed time input accessibility by adding labels to subfields. (122590568)
- Fixed aria-hidden=true to be ignored on the and elements. (123049663)
- Fixed datetime values being exposed to assistive technologies in the wrong timezone. (123522296)
- Fixed wrong datetime value being exposed to assistive technologies for datetime-local inputs. (123803281)
- Fixed ignored CSS content property replacement text when it is an empty string. (123919677)
- Fixed the computed role for these elements: dd, details, dt, em, hgroup, option, s, and strong. (124641956)
- Fixed hidden elements targeted by aria-labelledby to expose their entire subtree text, not just their direct child text. (125634439)
- Fixed accessible name computation for elements with visibility: visible inside a container with visibility: hidden. (125738704)
- Fixed updating table accessibility text when its caption dynamically changes. (127263464)
- Fixed updating aria-describedby text after the targeted element changes its subtree. (127390465)
Animations
- Fixed the transition property to produce the shortest serialization. (119822401)
- Fixed the animation property to produce the shortest serialization. (120439368)
Apple Pay
- Added support for funds transfer. (104115471)
Authentication
- Implemented conditional credential creation. (113573376)
- Added support for the WebAuthn PRF extension. (119057355)
- Added support for using passkeys across related origins. (121477346)
Canvas
- Added support for willReadFrequently. (126739379)
- Added support for resolving a nested currentcolor used in color-mix or a relative color. (128027026)
Deprecations
- Removed support for OffscreenCanvasRenderingContext2D’s commit() method. (126758254)
Cookies
- Fixed treating the lack of an explicit “SameSite” attribute as “SameSite=Lax”. (96026173)
CSS
- Added support for currentColor and system color keywords to Relative Color Syntax. (100981965)
- Added support for (prefers-contrast: custom). (103658875)
- Added support for content-visibility. (117156105)
- Added support for animating the display property. (121662911)
- Added support for CSS Style Container Queries. (122800215)
- Added support for View Transitions. (123128491)
- Added support for the unprefixed backdrop-filter. (123523441)
- Added support for the :active-view-transition pseudo-class. (129851076)
Resolved Issues in CSS
- Fixed setting white-space to a non-default value dynamically on a whitespace or a new line. (92559818)
- Fixed custom counter styles disclosure-open and disclosure-closed to point to the correct direction in right-to-left. (109014745)
- Fixed backface-visibility to create a stacking context and containing block. (114732608)
- Fixed getComputedStyle() to work with functional pseudo-elements like ::highlight(). (117864743)
- Fixed: Aliased :-webkit-full-screen pseudo-class to :fullscreen. (120335917)
- Fixed: Aliased :-webkit-any-link to :any-link and :matches() to :is(). (120337922)
- Fixed getComputedStyle() pseudo-element parsing to support the full range of CSS syntax. (120471227)
- Fixed @supports to correctly handle support for some -webkit prefixed pseudo-elements that were incorrectly treated as unsupported. (120577690)
- Fixed updating media-query sensitive meta tags after style changes. (120854167)
- Fixed changing color scheme to update gradients with system colors or light-dark(). (121285450)
- Fixed incorrect inline element size when using font-variant-caps: all-small-caps with font-synthesis. (121314557)
- Fixed :empty selector to work with animations. (122838142)
- Fixed preserving whitespace when serializing custom properties. (123491915)
- Fixed updating style correctly for non-inherited custom property mutations. (123645196)
- Fixed element removed by parent to end up losing the last remembered size. (123975513)
- Fixed an incorrect difference between implicit and explicit initial values for custom properties. (124573975)
- Fixed the contrast of Menu and MenuText system colors. (125270664)
- Fixed keeping the shorthand value for CSS gap as-is in serialized and computed values. (125335787)
- Fixed the style adjuster for @starting-style incorrectly invoking with a null element. (125837628)
- Fixed excluding -apple-pay-button from applying to any element that supports appearance: auto and is not a button. (126107516)
- Fixed missing color interpretation methods added to CSS color specifications. (126444371)
- Fixed hsl() and hsla() implementation to match the latest spec changes. (126722229)
- Fixed the implementation of rgb() and rgba() to match the latest spec. (126830606)
- Fixed the implementation of hwb() to match the latest spec. (126924645)
- Fixed the remaining color types to be synced with the latest spec changes. (127077683)
- Fixed carrying analogous components forward when interpolating colors. (127170141)
- Fixed applying the fill layer pattern for mask-mode. (127999241)
- Fixed backdrop-filter: blur to render for elements not present when the page is loaded. (129517679)
- Fixed: Improved large Grid performance. (130728344)
- Fixed some CSS properties causing quotes to be reset. (132585704)
Deprecations in CSS
- Removed support for WEBKIT_KEYFRAMES_RULE and WEBKIT_KEYFRAME_RULE in CSSRule. (97084520)
- Removed :-webkit-full-screen-ancestor pseudo-class. (100782937)
- Removed -webkit-alt and alt properties. (120051066)
- Removed the non-standard resize: auto rule. (120138995)
- Removed :-webkit-animating-full-screen-transition pseudo-class. (121302758)
- Removed :-khtml-drag pseudo-class. (121303391)
- Removed :-webkit-full-screen-controls-hidden pseudo-class. (121323330)
- Removed :-webkit-full-page-media pseudo-class. (121752962)
- Removed :-webkit-full-screen-document pseudo-class. (121816310)
Editing
- Added writingsuggestions attribute to HTML elements to opt into multiword text completions. (114989563)
Resolved Issues in Editing
- Fixed an issue where input method editing would sporadically drop the composition range. (130020224)
- Fixed dictation UI no longer showing up when beginning dictation after focusing an empty text field. (131534054) (FB14277296)
Forms
- Added haptic feedback for on iOS. (125474921)
- Added support for partially transparent accent colors. (130599744)
Resolved Issues in Forms
- Fixed displayed datalist dropdown to sync its options elements after a DOM update. (54690831)
- Fixed input elements to use the [value] as the first fallback step base. (107721910)
- Fixed scrollbars to match the used color scheme. (123807167)
- Fixed updating the input value when selecting an element. (124784204) (FB13688998)
- Fixed the value attribute not getting displayed in an input element with type="email" and the multiple attribute. (125221858)
- Fixed the iOS animation for . (125563501)
- Fixed form controls drawing with an active appearance when the window is inactive. (127391198)
- Fixed constructed FormData object to not include entries for the image button submitter by default. (128176811)
History
- Fixed the properties of History to throw a SecurityError when not in a fully active Document. (118750576)
HTML
- Fixed “about:blank” document.referrer initialization. (97689906)
- Fixed parsing a self-closing SVG script element. It now successfully executes. (121887875)
Images
- Removed support for JPEG2000. (35161822)
JavaScript
- Added support for the v flag with RegExp.prototype[Symbol.matchAll]. (126017731)
- Added support for Unicode 15.1.0 characters in RegExp. (126863692)
Resolved Issues in JavaScript
- Fixed RegExp.prototype.@@split to update the following legacy RegExp static properties: RegExp.input, RegExp.lastMatch, RegExp.lastParen, RegExp.leftContext, RegExp.rightContext, and RegExp.$1, ... RegExp.$9. (99865597)
- Fixed String.prototype.replace to not take the fast path if the pattern is RegExp Object and the lastIndex is not numeric. (101122567)
- Fixed spec compliance for Async / Await, Generators, Async Functions, and Async Generators. (113884730)
- Fixed async functions and generators to properly handle promises with throwing “constructor” getter. (119734587)
- Fixed return in async generators to correctly await its value. (119834751)
- Fixed Symbol.species getters to not share a single JS Function. (120416817)
- Fixed throwing a Range Error if Set methods are called on an object with negative size property. (121310940)
- Fixed eval() function from another realm to not cause a direct eval call. (121546048)
- Fixed eval() call with ...spread syntaxt to be a direct call. (121547890)
- Fixed try/catch to not intercept errors originated in [[Construct]] of derived class. (121959506)
- Fixed several issues: ◦ direct eval() in a default value expression inside a rest parameter creates a variable in the environment of the function rather than the separate one of the parameters; ◦ a ReferenceError is thrown when accessing a binding, which is defined inside rest parameter, in eval(), or a closure created in a default value expression of a preceding parameter, but only if there is a var binding by the same name; ◦ a closure, created in the default value expression inside a rest parameter, is created in a different VariableEnvironment of the function than its counterparts in preceding parameters which causes the incorrect environment to be consulted when querying or modifying parameter names that are “shadowed” by var bindings. (121961421)
- Fixed TypedArray sorting methods to have a special-case for camparator returning false. (122093956)
- Fixed programming style for bitwise and in setExpectionPorts. (122138733)
- Fixed emitReturn() to load this value from arrow function lexical environment prior to the TDZ check. (122430056)
- Fixed NFKC normalization to work with Latin-1 characters. (123328161)
- Fixed parsing of private names with Unicode start characters. (123425805)
- Fixed instanceof to not get RHS prototype when LHS is primitive. (123629166)
- Fixed bracket update expression to resolve property key at most once. (123872374)
- Fixed bracket compound assignement to resolve the property key at most once. (124420301)
- Fixed Object.groupBy and Map.groupBy to work for non-objects. (125485685)
- Fixed Array.fromAsync to not call the Array constructor twice. (125509304)
- Fixed inconsistent output of Function.prototype.toString for accessor properties. (125739577)
- Fixed Set#symmetricDifference to call this.has in each iteration. (126526845)
- Fixed logical assignment expressions to throw a syntax error when the left side of the assignment is a function call. (126540636)
- Fixed throwing a syntax error for nested duplicate-named capturing groups in RegEx. (126863735)
- Fixed ArrayBuffer and SharedArrayBuffer constructor to check length before creating an instance. (126971134)
- Fixed Intl implementation to ensure canonicalizing “GMT” to “UTC” based on a spec update. (127061600)
- Fixed RegEx lookbehinds differing from v8. (127440248)
- Fixed fractionalDigits of Intl.DurationFormat to be treated as at most 9 digits if it is omitted. (129145390)
- Fixed optimized TypedArrays giving incorrect results. (129303210)
- Fixed Intl.DurationFormat for numeric and 2-digit. (130279541)
Deprecations in JavaScript
- Removed [[Var Names]] from the global object to reflect changes in the specification. (130438575)
Loading
- Fixed navigator.cookieEnabled to return false when cookies are blocked. (121284878)
Media
- Added support for WebRTC HEVC RFC 7789 RTP Payload Format. (112001659)
- Added support for Viewer on macOS, a full window video watching mode for web pages with a prominent video element. (114218891)
- Added support for MSE in workers. (123052315)
Resolved Issues in Media
- Fixed MediaSession to determine the best size artwork to use when the sizes metadata attribute is provided. (81160539) (FB9409169)
- Fixed video sound coming from another window after changing tabs in the Tab Bar in visionOS. (120018549)
- Fixed playback for MSE videos on some sites. (123528095)
- Fixed allowing a video’s currentTime to be further than the gap’s start time. (124186726)
- Fixed broken audio playback for a WebM file with a Vorbis track. (124880261)
- Fixed sampleRate and numberOfChannels to be required and non-zero in a valid AudioEncoderConfig. (125107934)
- Fixed media elements appending the same media segment twice. (125386530)
- Fixed an issue where Safari audio may be emitted from the wrong window in visionOS. (127009932)
- Fixedrejecting valid NPT strings if ‘hours’ is defined using 1 digit. (128318772)
- Fixed picture-in-picture when hiding the element while in Viewer. (131786564)
- Fixed the return button not working after the video is paused and played in picture-in-picture. (131791367)
Deprecations in Media
- Removed non-standard VTTRegion.track. (123172214)
Networking
- Fixed upgrading inactive or passive subresource requests and fetches in would-be mixed security contexts to match standards. (101678657)
- Fixed incorrect Sec-Fetch-Site value for navigation of a nested document. (109358563)
- Fixed loading WebArchives with a non-persistent datastore. (122290562)
- Fixed Timing-Allow-Origin to not apply to an HTTP 302 response. (126531139)
PDF
- Fixed print buttons with a print action implementation. (123850236)
- Fixed Open in Preview for a PDF with a space in its name. (127379128)
- Fixed “Open with Preview” context menu item to work with locked PDF documents. (132033502)
Rendering
- Fixed Greek uppercase transforms failing for some characters. (90364897)
- Fixed resizing a
- Fixed the color correctness of the color matrix filter. (120795573)
- Fixed backdrop-filter to apply to the border area of an element with a border-radius. (122295068)
- Fixed intrinsic inline size calculators to account for whitespace before an empty child with nonzero margins. (122586712)
- Fixed overlapping elements with flex box when height: 100% is applied on nested content. (125572851)
- Fixed incorrect grid item positioning with out-of-flow sibling. (126207467)
- Fixed break-word with a float discarding text. (126309547)
- Fixed min-content calculation for unstyled only-child inlines elements. (128348427)
- Fixed ellipsis rendering multiple times when position: relative and top are used. (128394449)
- Fixed a bug for inline elements inserted in reverse order after a block in a continuation. (128826228)
- Fixed the flash of a page background-colored bar in the footer when the window is resized. (128940179)
- Fixed garbled bold text caused by glyph lookup using the wrong font’s glyph IDs when multiple installed fonts have the same name. (129891005) (FB13909556)
- Fixed selecting Japanese text annotated with ruby in a vertical-rl writing mode table. (130974783)
- Fixed support for border, padding, and margin on mfrac and mspace elements in MathML. (131119823)
Safari Extensions
- Added support for Safari Web Extensions and Content Blockers in web apps on macOS. (99755515)
- Added support for Device Management of extension enabled state, private browsing state, and website access on Managed Devices. (113051857)
Scrolling
- Fixed the cursor not updating as content scrolls under it on some pages. (122347347)
Security
- Fixed stripping the scroll-to-text fragment from the URL to prevent exposing the fragment to the page. (124717009)
- Fixed CORS bypass on private localhost domain using 0.0.0.0 host and mode “no-cors”. (125913679)
- Fixed blocking cross-origin redirect downloads in an iframe. (130901951)
- Fixed blocked cross-origin redirect downloads to attempt rendering the page instead. (131962658)
Spatial Web
- Added support for docking fullscreen videos into the current Environment in visionOS. (91364019)
- Added support for interaction regions in SVGs that have a cursor: pointer set. (117642184) (FB13310281)
- Added interaction region support for CSS clip-path. (119124300)
- Added support for Spatial and Panoramic images. (125913434)
Storage
- Removed support for AppCache. (113343269)
SVG
- Fixed the SVG parser to interpret “form feed” as white space. (95488677)
- Fixed error handling for invalid filter primitive references. (104262208)
- Fixed displaying an SVG element inside a element. (120732837)
- Fixed SVG title to have display: none as the default UA style rule. (122185838)
- Fixed the UA stylesheet for links in SVGs to apply cursor: pointer matching standards. (122715957)
- Fixed returning the initial value for the SVG gradient stop-color if it is not rendered in the page. (123262508)
- Fixed the SVG marker segment calculations if the marker path consists of sub-paths. (123434203)
- Fixed SVGLength to sync with the WebIDL specification. (129169603)
- Removed non-standard getTransformToElement from SVGGraphicsElement (122435702)
- Removed the SVGAnimateColorElement interface. (122586568)
Text
- Fixed disclosure counter styles to consider writing-mode. (130468537)
Web Animations
- Fixed percentage transform animations when width and height are animated. (63309680)
- Fixed updating an animation when changing the value of a transform property while that property is animated with an implicit keyframe. (126126617)
- Fixed display transition to none. (130857338)
Web API
- Added support for URL.parse(). (125376520)
- Added support for shadowRootDelegatesFocus and shadowRootClonable to . (125401993)
- Added support for serializing shadow roots through getHTML() as well as the corresponding shadow root serializable feature. (125513986)
- Added support for PopStateEvent’s hasUAVisualTransition. (125849073)
- Added support for subresource integrity in imported module scripts. (127038535)
- Added support for feature detecting text fragments by exposing document.fragmentDirective. (127650843)
- Added support for the bytes() method to Request and Response. (128407577)
- Added support for bytes() to Blob and PushMessageData. (128418858)
Resolved Issues in Web API
- Fixed cssText setter to change the style attribute when the serialization differs. (29861252) (FB5535475)
- Fixed history.pushState() and history.replaceState() to ignore the title argument. (75695791)
- Fixed URL text fragment directives not fully stripped from JavaScript. (107326333)
- Fixed showPicker() method to trigger suggestions from a datalist. (116017782)
- Fixed lang attribute in no namespace to only apply to HTML and SVG elements. (117795695)
- Fixed unnecessarily unsetting the iframe fullscreen flag. (120052751)
- Fixed DOM Range to correctly account for CDATASection nodes. (122608224)
- Fixed getGamepads() to no longer trigger an insecure contexts warning. (123039555)
- Fixed inserting a element displaying the same image twice. (123795045)
- Fixed throwing exceptions in navigation methods if in a detached state. (123898636)
- Fixed a minor issue in URL’s host setter. (124363495)
- Fixed cloning of ShadowRoot nodes following a DOM Standard clarification. (125917138)
- Fixed GeolocationCoordinates to expose a toJSON() method. (126183686)
- Fixed IntersectionObserver notifications that sometimes fail to fire. (126238865)
- Fixed GeolocationPosition to expose a toJSON() method. (126247408)
- Fixed setting CustomEvent.target when dispatching an event. (126369768)
- Fixed navigator.language only returning the system language in iOS 17.4. (126765790)
- Fixed: Removed presentational hints from the width attribute for . (128647444)
- Fixed an issue when inserting writing suggestions into an editable display: grid container. (129366300)
- Fixed the warning message for window.styleMedia. (131005713)
Web Views
- Added WKWebView API support for Text Assistant. (126585826)
- Added WKWebView API to control adaptive image glyph insertion. (126585881)
Resolved Issues in Web Views
- Fixed Gamepad API in WKWebView. (123310472)
- Fixed repainting HTML elements when their width or height change in legacy WebView. (124564409)
WebDriver
- Fixed retrieving titles containing multibyte characters. (123987149)
WebGL
- Enabled support for the following approved extensions: ◦ EXT_texture_mirror_clamp_to_edge ◦ WEBGL_render_shared_exponent ◦ WEBGL_stencil_texturing ◦ EXT_render_snorm ◦ OES_sample_variables ◦ OES_shader_multisample_interpolation (121835897) (126863775)
WebRTC
- Added support for MediaStreamTrack processing in a dedicated worker. (114213842)
- Added support for additional WebRTC stats. (121594743)
Resolved Issues in WebRTC
- Fixed RTCEncodedVideoFrame and RTCEncodedAudioFrame to match the WebIDL specification. (118607685)
- Fixed VideoTrackGenerator writer to close when its generator track (and all its clones) are stopped. (121835553)
- Fixed WebRTC AV1 HW decoding on iPhone 15 Pro. (123449229)
- Fixed black stripes with screen sharing windows. (123492622)
- Fixed black stripes with getDisplayMedia captured windows when the window is resized. (124131045)
WebView
- Deprecated some legacy WebKit notification names including: ◦ WebViewDidBeginEditingNotification ◦ WebViewDidChangeNotification ◦ WebViewDidEndEditingNotification ◦ WebViewDidChangeTypingStyleNotification ◦ WebViewDidChangeSelectionNotification (130033164)
WebXR
- Added support for immersive WebXR in visionOS. (125631316)