Today, Safari 26.1 is available with iOS 26.1, iPadOS 26.1, macOS Sequoia 26.1 and visionOS 26.1, as well as for macOS Sequoia and macOS Sonoma. It contains 2 new features and 36 improvements to existing features.
Relative units in SVG
As part of our most recent efforts on quality, WebKit for Safari 26.1 refactors the way the rendering engine handles CSS Units. This results in giving the SVG engine easier access to relative units, adding support for certain units inside SVG files for the first time. These units include rem; viewport units: vh, vw, vmin, vmax; typography-relative units: rlh, ic, cap, and container query units: cqw, cqi, cqmin, cqmax.
Anchor Positioning improvements
Safari 26.1 includes a dozen improvements to CSS Anchor Positioning. Now WebKit remembers the last successful position-try fallback in CSS anchor positioning to reduce layout jumps when styles change. See below for the full list of changes to Anchor Positioning.
Bug fixes and more
Along with the new features, WebKit for Safari 26.1 includes improvements to existing features.
Accessibility
- 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-labelledbynot updating its accessibility label after dynamicinnerHTMLchange in the label. (160691619)
CSS Anchor Positioning
- Fixed anchor positioning to handle fragmented multicolumn flows. (156958568)
- Fixed anchor positioning fallbacks to respond to scrolling. (158451016)
- Fixed an issue where container queries doesn’t work with
position-tryelement. (158880410) - Fixed anchor positioning to account for a left-hand scrollbar in right-to-left and
vertical-rlcontaining blocks. (160723993) - Fixed handling inline containing blocks for CSS Anchor Positioning. (160892829)
- Fixed an issue where anchor-positioned elements failed to update their position when the default anchor changed. (160892850)
- Fixed an issue where transitioning an element to
display: nonewithtransition-behavior: allow-discreteand CSS Anchor Positioning would repeatedly restart the transition. (161421046) - Fixed
position-areafor the initial containing block to include the in-flow scrollable area, improving alignment for typical overflow cases. (161997622) - Fixed
position-visibility: anchors-visiblevisibility heuristic when anchor is clipped by an ancestor container. (160060564)
CSS
- Fixed
@media printstyles to work when used inside a nested rule. (158608834) - Fixed: Improved the performance of
:has(> .changed) .subjectselectors. (159257003) - Fixed pseudo-class invalidation performance by creating separate
RuleSetsfor attribute selectors like:has([attr=value])to avoid using universal invalidation. (159257022) - Fixed an issue where changing the
ruby-overhangproperty did not trigger a layout update, ensuring proper rendering when overhang values change. (159573050) - Fixed
offsetParentto return the fixed-position element’s containing block when it is not the viewport, such as a transformed element. (160892685) - Fixed
<select>fallback styling by removing the outdated background and updating the dropdown arrow. (161104364)
Forms
- Fixed native text inputs so that their background colors update when autofilled. (159014135)
- Fixed checkboxes and radio buttons missing borders in the filled state when “Increased Contrast” is enabled on macOS. (159379948)
- Fixed VoiceOver not recognizing the password form in encrypted documents. (159240531)
Rendering
- Fixed a bottom gap appearing on layouts with viewport-sized fixed containers on iOS. (158055568)
- Fixed an issue on iOS where Safari extension popups and some websites could scroll or flicker unexpectedly. (160216319)
- Fixed list markers overlapping text in certain situations. (160892820)
- Fixed an issue that caused cropped flexbox elements to render incorrectly. (161218029)
- Fixed string search freezing when subject has large number (>1000). (161421015)
SVG
- Fixed absolutely positioned SVGs so that their size correctly accounts for the padding of the containing block when the SVG root is out-of-flow. (160727702)
Security
- Fixed Safari ignoring the
style-src-elemContent Security Policy directive ensuring it is checked before falling back tostyle-src, in line with CSP3 specifications. (157298407)
Web API
- Fixed an issue on iOS 26 where pressing the B button on a gamepad could make a page appear to lose
gamepadfocus by bypassing the system’s automatic navigation behavior. (159125095)
Web Inspector
- Fixed issue where searching on certain text fails to find matches. (159897282)
WebGPU
- Fixed an issue where
GPUQueue.copyExternalImageToTexturecould 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)
WebKit API
- Fixed a crash when an app uses
WKWebView::loadRequestAPI on background threads. (162225842)
WebRTC
- Fixed
getUserMedia()on iOS incorrectly firingdevicechangeevents when there was no actual change to available microphones or default devices. (157693528)
Feedback
We love hearing from you. To share your thoughts, find our web evangelists online: Jen Simmons on Bluesky / Mastodon, Saron Yitbarek on Bluesky / Mastodon, and Jon Davis on Bluesky / Mastodon. You can follow WebKit on LinkedIn. If you run into any issues, we welcome your feedback on Safari UI (learn more about filing Feedback), or your WebKit bug report about web technologies or Web Inspector. If you run into a website that isn’t working as expected, please file a report at webcompat.com. Filing issues really does make a difference.
You can also find this information in the Safari release notes.