<!--
{
  "documentType" : "article",
  "framework" : "Safari Technology Preview Release Notes",
  "identifier" : "/documentation/Safari-Technology-Preview-Release-Notes/stp-release-28",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Safari Technology Preview 28 Release Notes"
}
-->

# Safari Technology Preview 28 Release Notes

Preview the latest web technology updates including: Power and Performance, CSS, JavaScript, Web API, Web Inspector, WebDriver, Accessibility, Media, Rendering, WebCrypto, Security, and AppleScript.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 28 is now [available for download](https://webkit.org/downloads/) for macOS Sierra. If you already have Safari Technology Preview installed, you can update from the Mac App Store’s Updates tab. This release covers WebKit revisions [214535-215271](https://trac.webkit.org/log?stop_rev=214535&rev=215271&limit=280).

### Power and Performance

- Changed to pause silent WebAudio rendering in background tabs ([r214721](https://trac.webkit.org/changeset/214721))
- Changed to pause animated SVG images on pages loaded in the background ([r214561](https://trac.webkit.org/changeset/214561))
- Changed to make inaudible background tabs become eligible for memory kill after 8 minutes ([r215077](https://trac.webkit.org/changeset/215077))
- Changed to kill any WebContent process using over 16 GB of memory ([r215055](https://trac.webkit.org/changeset/215055))
- Throttled DOM Timers to 30fps in cross-origin `iframes` that the user did not interact with ([r215116](https://trac.webkit.org/changeset/215116))
- Throttled `requestAnimationFrame` callbacks to 30fps in cross-origin `iframes` the user did not interact with ([r215070](https://trac.webkit.org/changeset/215070), [r215153](http://trac.webkit.org/r215153))

### CSS

- Adapted `content-alignment` properties to the new baseline syntax ([r214624](https://trac.webkit.org/changeset/214624))
- Adapted `place-content` alignment shorthand to the new baseline syntax ([r214852](https://trac.webkit.org/changeset/214852))
- Adapted `self-alignment` properties to the new baseline syntax ([r214564](https://trac.webkit.org/changeset/214564))
- Fixed scroll offset jumps after a programmatic scroll in an overflow container with scroll snapping ([r215075](https://trac.webkit.org/changeset/215075))
- Implemented the `place-items` shorthand ([r214966](https://trac.webkit.org/changeset/214966))
- Implemented `stroke-color` CSS property ([r215261](https://trac.webkit.org/changeset/215261))
- Implemented `stroke-miterlimit` CSS property ([r214787](https://trac.webkit.org/changeset/214787))
- Unprefixed CSS cursor values `grab` and `grabbing` ([r215146](https://trac.webkit.org/changeset/215146))

### JavaScript

- Fixed objects with gaps between numerical keys getting filled by `NaN` values ([r214714](https://trac.webkit.org/changeset/214714))
- Fixed `Object.seal()` and `Object.freeze()` on global `this` ([r215072](https://trac.webkit.org/changeset/215072))
- Fixed `String.prototype.replace` to correctly apply special replacement parameters when passed a function ([r214662](https://trac.webkit.org/changeset/214662))

### Web API

- Changed `_blank`, `_self`, `_parent`, and `_top` browsing context names to be case-insensitive ([r214944](https://trac.webkit.org/changeset/214944))
- Cleaned up touch event handler registration when moving nodes between documents ([r214819](https://trac.webkit.org/changeset/214819))
- Fixed `<input type="range">` to prevent breaking all mouse events when changing to disabled while active  ([r214955](https://trac.webkit.org/changeset/214955))
- Prevented double downloads of preloaded content from <link preload> when the content is in MemoryCache ([r215229](https://trac.webkit.org/changeset/215229))
- Fixed WebSocket.send ([r215102](https://trac.webkit.org/changeset/215102/webkit))

### Web Inspector

- Added a preference for Auto Showing Scope Chain sidebar on pause ([r214847](https://trac.webkit.org/changeset/214847))
- Changed the order of Debugger tab sidebar panels: Scope Chain, Resource, Probes ([r215047](https://trac.webkit.org/changeset/215047))
- Changed XHR breakpoints to be global ([r214956](https://trac.webkit.org/changeset/214956))
- Changed hierarchical path component labels to guess directionality based on content for RTL layout ([r214862](https://trac.webkit.org/changeset/214862))
- Fixed RTL alignment of close button shown while docked ([r214902](https://trac.webkit.org/changeset/214902))
- Fixed RTL layout issues in call frame tree elements and async call stacks ([r214846](https://trac.webkit.org/changeset/214846))
- Fixed RTL layout issues in the debugger dashboard putting arrows on the wrong side ([r214899](https://trac.webkit.org/changeset/214899))
- Fixed RTL layout issues in Type Profiler popovers ([r214906](https://trac.webkit.org/changeset/214906))
- Fixed misplaced highlights in Search results of the Search navigation sidebar for RTL layout ([r214864](https://trac.webkit.org/changeset/214864))
- Fixed disappearing section when clicking on the body of a CSS rule after editing ([r214863](https://trac.webkit.org/changeset/214863))
- Fixed showing indicators for hidden DOM element breakpoints in the Elements tab ([r214844](https://trac.webkit.org/changeset/214844))
- Fixed blank Network tab content view after reload ([r214551](https://trac.webkit.org/changeset/214551))
- Made “Enter Class Name” text field wider so the placeholder text doesn’t clip ([r215192](https://trac.webkit.org/changeset/215192))
- Fixed probe values not showing in the Debugger tab sidebar ([r214967](https://trac.webkit.org/changeset/214967))
- Fixed focusing the Find banner immediately after showing it ([r214856](https://trac.webkit.org/changeset/214856))
- Fixed showing Source Map Resources in the Debugger Sources list ([r215082](https://trac.webkit.org/changeset/215082))
- Fixed Styles sidebar warning icon appearing inside property value text ([r214617](https://trac.webkit.org/changeset/214617))
- Fixed broken tabbing in Styles sidebar when additional “:” and “;” are in the property value ([r215170](https://trac.webkit.org/changeset/215170))
- Fixed clipped data in WebSockets data grid ([r215206](https://trac.webkit.org/changeset/215206))
- Fixed staying scrolled to the bottom as new WebSocket log messages get added ([r214587](https://trac.webkit.org/changeset/214587))
- Included additional pause reason details for DOM “subtree modified” breakpoint ([r214861](https://trac.webkit.org/changeset/214861))
- Included more Network information in Resource Details Sidebar ([r214903](https://trac.webkit.org/changeset/214903))
- Included all headers in the Request Headers section of the Resource details sidebar ([r215062](https://trac.webkit.org/changeset/215062))

### WebDriver

- Fixed an issue that prevented non-popup windows from being maximized or resized
- Fixed an issue that caused previously opened tabs to reopen when Safari was launched in order to run a WebDriver test

### Accessibility

- Exposed a new AXSubrole for the explicit ARIA “group” role ([r214623](https://trac.webkit.org/changeset/214623))
- Fixed VoiceOver web article navigation with an article rotor for sites like Facebook and Twitter ([r215236](https://trac.webkit.org/changeset/215236))

### Media

- Fixed seeks to `currentTime=0` if `currentTime` is already `0` ([r214959](https://trac.webkit.org/changeset/214959))

### Rendering

- Fixed clipping across page breaks when including `<caption>`, `<thead>` or `<tbody>` in a  `<table>` ([r214712](https://trac.webkit.org/changeset/214712))
- Fixed Japanese fonts in vertical text to support synthesized italics ([r214848](https://trac.webkit.org/changeset/214848))
- Fixed long Arabic text in `ContentEditable` with CSS `white-space=pre` to prevent hangs ([r214726](https://trac.webkit.org/changeset/214726))
- Fixed overly heavy fonts on facebook.com by attempting to normalize variation ranges ([r214585](https://trac.webkit.org/changeset/214585), [r214572](https://trac.webkit.org/changeset/214572))

### WebCrypto

- Added support for AES-CTR ([r215051](https://trac.webkit.org/changeset/215051))

### Security

- Changed private browsing sessions to not look in keychain for client certificates ([r215125](https://trac.webkit.org/changeset/215125))

### AppleScript

- Fixed an issue where Safari would throw an exception when evaluating JavaScript ending with an implied return value, where the final statement doesn’t include the `return` keyword

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)