The Brief #26.26 · TypeScript 7.0 goes native, Firefox 152, scroll-triggered CSS

Want more of these in your Google results?
A quiet week for headlines, a loud one for the platform underneath your work.
TypeScript 7.0 hits RC with the Go-native compiler
The rewrite people have been tracking for a year is now a release candidate. TypeScript 7.0 ships a compiler written in Go instead of TypeScript, and the speed numbers are not marketing fluff: the VS Code codebase (about 1.5 million lines) went from 77.8 seconds to 7.5 seconds, roughly 10x faster overall. You can try it today with npm install -D typescript@rc, and it installs alongside your existing version without conflicts. Stable is expected within the month. If you maintain a large codebase, this is the upgrade to start rehearsing in CI now. Full details in the official TypeScript 7.0 RC announcement.
Firefox 152 ships field-sizing and more
Firefox 152 went stable on June 16, and the standout for layout work is the field-sizing CSS property, which lets a form control grow to fit its content (field-sizing: content) instead of staying a fixed box. Auto-growing textareas without a resize observer or a hidden mirror element, finally in another engine. The release also adds SVGTextPathElement.side, the AnimationEvent.animation and TransitionEvent.animation ergonomic properties, notification action buttons, and JPEG XL support behind a Labs flag.
Scroll-triggered animations land in Chrome
Last week we saw scroll-DRIVEN animations reaching Baseline. This is the other one, and it’s genuinely different. Scroll-triggered animations play for a fixed duration once you cross a scroll threshold, the way you’d reach for IntersectionObserver, except now it’s declarative CSS through the new animation-trigger and timeline-trigger properties. Chrome is the first browser to ship it. Adam Argyle’s framing aside, the clearest walkthrough of how triggers differ from scrubbed timelines is the CSS-Tricks first look.
ariaNotify() arrives in the ARIA spec
There’s a new method, ariaNotify(), for queueing a string straight to a screen reader without the old hidden aria-live region dance. It’s defined in the WAI-ARIA 1.3 ARIANotifyMixin, takes an optional priority of normal or high (mapping to polite and assertive), and is already documented on MDN. Chromium-based browsers and Firefox (150 and up) support it; Safari hasn’t shipped it, so it’s not Baseline yet. The CSS-Tricks piece makes the case for restraint: this is alert() for assistive tech, and it’s easy to make things worse by announcing what semantic HTML already conveys.
Mozilla proposes PACT for privacy-preserving rate limiting
Mozilla, with Cloudflare and Chrome, published the technical design for PACT, a system that lets sites rate-limit bots without forcing users to hand over an email or a federated login. The idea uses unlinkable tokens from “anchors” (a subscription, a verified phone number) that a site can spend against a rate limit without tracking who you are. It’s early, with draft specs planned at the IETF and W3C, but it’s worth watching if you care about the bot-versus-privacy squeeze. Read the proposal on Mozilla Hacks.
Safari Technology Preview 246
For the WebKit watchers, STP 246 brings a handful of CSS niceties: <image> values inside light-dark(), the alpha() relative color function, color-mix() with more than two colors, and the font-variant-emoji property. It also adds popover close-watcher integration and fixes a VoiceOver focus bug. Nothing earth-shaking on its own, but these are the building blocks landing one preview at a time.
Want more of these in your Google results?