# Safari 27 Ships With Customizable Dropdowns and Async WebAssembly

Page: https://hirantha.me/blog/safari-27-ships-with-customizable-dropdowns-and-async-webassembly
Published: 2026-09-15
Written by: hirantha.me Newsroom (AI-generated). An AI model wrote this from the sources listed below; how it is made: https://hirantha.me/about/newsroom
Topics: safari, webkit, css, webassembly, browser compatibility

> Safari 27 lets developers restyle native dropdown menus and gives WebAssembly code a way to call asynchronous JavaScript.

## A release built for the code you already have

Apple shipped Safari 27 on September 14, 2026, alongside its fall operating system updates, and the WebKit team was unusually blunt about what kind of release it is. By their own count, it carries 58 new features, 525 bug fixes and 4 deprecations, and the WebKit blog frames the emphasis squarely on the fixes: existing features behaving more correctly, handling more edge cases, and interoperating with other browsers the way developers already expect them to. That framing matters more than it sounds. A browser release stuffed with new APIs is exciting to read about; one stuffed with fixes is the one that stops your site breaking in ways you never filed a bug for.

Still, three changes in Safari 27 are worth a developer's attention on their own merits.

## Native dropdowns you can finally restyle

For as long as the web has had a `<select>` element, styling it has meant one of two bad options: leave it looking like an unstyled system control, or throw it away and rebuild the whole dropdown in JavaScript, at which point you also inherit the job of re-implementing keyboard navigation and screen-reader support that the native element gave you for free.

Safari 27 adds `appearance: base-select`, which lets a `<select>` be restyled to match a site's design while keeping its native keyboard and accessibility behavior intact underneath. It's a small property with an outsized practical effect: it removes one of the more common reasons teams reach for a JavaScript dropdown library in the first place.

## WebAssembly gets a way to wait on a Promise

WebAssembly JavaScript Promise Integration (JSPI) is the more technical addition, and it solves a specific porting headache. Code compiled to WebAssembly from languages like C, C++ or Rust is frequently written in a synchronous, blocking style, call a function, get a result back immediately. JavaScript's async APIs, like `fetch`, don't work that way; they hand back a Promise that resolves later. Previously, bridging the two meant rewriting the WebAssembly side around callbacks. JSPI lets synchronous WebAssembly code suspend itself and wait on a JavaScript Promise directly, which means existing C, C++ and Rust codebases can be compiled to run in the browser without being restructured first.

## Smaller but real: scroll anchoring and layout fixes

Safari 27 also turns on scroll anchoring by default, via `overflow-anchor: auto`. When content finishes loading above whatever you're currently looking at, an image, an ad, a comment thread, the browser now holds your scroll position on what you were reading rather than letting the page jump. It can be switched off per-element with `overflow-anchor: none` for the rare case where you want the old jumpy behavior back.

CSS anchor positioning, used for things like tooltips and popovers pinned to a trigger element, now correctly tracks an anchor that has a CSS transform applied to it, closing a gap that previously made transformed anchors behave unpredictably. A handful of smaller CSS additions round out the release: a `:heading` pseudo-class that matches any of `<h1>` through `<h6>` in one selector, a `revert-rule` keyword that rolls a property back to its value before the current rule applied, and a `stretch` sizing keyword that fills available space while correctly accounting for margins. Apple also extended the `<model>` element, previously aimed mostly at visionOS, to iOS, iPadOS and macOS, alongside new spatial and panorama controls on `<img>`.

## What it means in practice

None of this requires an immediate rewrite. The dropdown styling and scroll anchoring changes are opt-in improvements you can adopt incrementally, restyle a form here, stop fighting a scroll jump there, without touching the rest of a site. JSPI matters mainly if you're maintaining or considering a WebAssembly build of an existing native codebase; for most web developers it's a capability other tools will quietly start relying on rather than something to reach for directly. The more durable value of this release is the 525 fixes nobody will individually notice: if a layout quirk or Safari-specific inconsistency has been on your team's backlog for a while, it's worth checking whether Safari 27 already made it someone else's problem to have fixed. Commentator John Gruber described this release as WebKit's own "Snow Leopard year," a nod to the 2009 Mac OS X release that shipped almost no new features and instead spent its entire cycle on stability and speed, and the comparison holds: the win here is fewer surprises, not more surface area to learn.

## Questions

**What is new in Safari 27?**
Safari 27, released September 14, 2026, adds 58 features and 525 fixes, most notably customizable native select dropdowns, WebAssembly JavaScript Promise Integration, and default scroll anchoring.

**How do I style a native select element in Safari 27?**
Use the new appearance: base-select CSS property, which restyles the dropdown while keeping its native keyboard and screen-reader behavior.

**What does WebAssembly JSPI actually do?**
JavaScript Promise Integration lets synchronous WebAssembly code, such as code compiled from C, C++ or Rust, suspend and wait on a JavaScript Promise, so it can call async JavaScript APIs like fetch without being rewritten around callbacks.

**Is Safari 27 available on all Apple devices now?**
It shipped September 14, 2026 alongside Apple's fall operating system updates for iOS, iPadOS and macOS.

## Sources

- [News from WWDC26: WebKit in Safari 27 beta](https://webkit.org/blog/17967/news-from-wwdc26-webkit-in-safari-27-beta/), WebKit
- [Safari 27 Release Notes](https://developer.apple.com/documentation/safari-release-notes/safari-27-release-notes), Apple Developer Documentation
- [WebKit in Safari 27 Beta](https://daringfireball.net/linked/2026/06/24/webkit-safari-27), Daring Fireball
