Ollie Williams
@ollie-williams.bsky.social
📤 193
📥 284
📝 180
Mostly posting about web standards.
reposted by
Ollie Williams
Alex Russell
7 days ago
New year, new web performance mystery (and it's a huge one):
calendar.perfplanet.com/2025/the-cur...
3
23
9
reposted by
Ollie Williams
Luke
13 days ago
My Christmas wish is for someone to just add the necessary internal test API to check if it's worked. Then I can get it working 😅.
0
4
1
My Christmas wish is for Safari to fix showPicker
olliewilliams.xyz/blog/showpic...
loading . . .
The showPicker() method is still unusable
There's still no reliable way to show a picker for any input other than <input type="file">.
https://olliewilliams.xyz/blog/showpicker-is-still-unusable/
13 days ago
1
6
0
olliewilliams.xyz/blog/the-nav...
loading . . .
The navigate event
Using the Navigation API for same-document navigations
https://olliewilliams.xyz/blog/the-navigate-event/
16 days ago
0
6
0
reposted by
Ollie Williams
Stefan Judis
16 days ago
Man, I love that view transitions make things like this possible with only a few lines of code. 🥰
loading . . .
1
62
4
Streams are now iterable in Safari Technology Preview
developer.apple.com/documentatio...
web.dev/articles/str...
loading . . .
Streams—The definitive guide | Articles | web.dev
The Streams API allows JavaScript to programmatically access streams of data received over the network and process them as desired.
https://web.dev/articles/streams#asynchronous_iteration
18 days ago
0
5
1
@nomster.bsky.social
I noticed in the Navigation readme it says: "The desired semantics of navigation API state is that it be carried over on fragment navigations." As far as I can tell that doesn't happen in Canary. Is there a plan to add that functionality?
24 days ago
1
0
0
reposted by
Ollie Williams
Jen Simmons
26 days ago
Safari 26.2 is here with 65 features + 165 bug fixes — including field-sizing, Navigation API, Largest Contentful Paint, command & commandfor, CHIPS opt-in partitioned cookies, scrollend event, random(), WebGPU in WebXR, scrollbar-color, hidden=until-found and much more!
webkit.org/blog/17640/w...
loading . . .
WebKit Features for Safari 26.2
Safari 26.2 is a big release.
https://webkit.org/blog/17640/webkit-features-for-safari-26-2/
11
198
54
reposted by
Ollie Williams
Bramus
26 days ago
`overflow: clip` is my default. In
www.bram.us/2024/02/14/s...
I wrote: “I see no reason to use `overflow: hidden` your site, unless you have a good reason to. Using `overflow: clip` has exactly the same outcome, doesn’t interfere with Scroll-Driven Animations, and has great browser support.”
loading . . .
Scroll-Driven Animations: You want overflow: clip, not overflow: hidden
If you create a scroll-driven animation and find that scroll(nearest) is not working, check for overflow: hidden elements up the DOM tree and change them to overflow: clip.
https://www.bram.us/2024/02/14/scroll-driven-animations-you-want-overflow-clip-not-overflow-hidden/
2
15
3
reposted by
Ollie Williams
Rick Viscomi
27 days ago
Do you know about the developer-signals repo? If you want to see a feature supported across browsers, now you can go and upvote it, anytime
github.com/web-platform...
loading . . .
web-platform-dx/developer-signals
Tracking web developer signals for features. Contribute to web-platform-dx/developer-signals development by creating an account on GitHub.
https://github.com/web-platform-dx/developer-signals/issues?q=is%3Aissue%20state%3Aopen%20sort%3Areactions-%2B1-desc
1
9
7
Alpha-channel support in AV2?!
blog.mozilla.org/en/mozilla/a...
about 1 month ago
0
3
0
sibling-index() currently works in Chrome/Edge and Safari Technology Preview Hat tip to
@jamessw.com
add a skeleton here at some point
about 1 month ago
0
3
1
How do people feel about hash-based routing? Described by MDN in the past tense and as a "legacy technique". Bad for pages... but storing the state of a page in the hash still seems legit?
developer.mozilla.org/en-US/docs/G...
loading . . .
Hash routing - Glossary | MDN
Hash routing is a client-side technique used in single-page applications (SPAs) to manage navigation and state changes without reloading the entire page.
https://developer.mozilla.org/en-US/docs/Glossary/Hash_routing
about 1 month ago
2
0
0
Temporal 😍
add a skeleton here at some point
about 1 month ago
0
7
0
reposted by
Ollie Williams
Jake Archibald
about 1 month ago
I'm playing around with JPEG XL's "JPEG repackaging" feature. It repackaged a 147kb JPEG down to 126kb, but on my Pixel 10, the new file takes 78ms to decode, vs 10ms for the JPEG. At 3g+ speeds… that feels like a performance loss.
random-stuff.jakearchibald.com/apps/img-dec...
loading . . .
Image decoder benchmark
https://random-stuff.jakearchibald.com/apps/img-decode-bench/
8
40
4
reposted by
Ollie Williams
Bramus
about 1 month ago
Chrome 144 features a small change to
#CSS
overscroll-behavior: it now also works on non-scrollable scroll containers. While this change might seem trivial, it fixes an issue people have been dealing with for ages: prevent a page from scrolling while a <dialog> is open.
www.bram.us/2025/11/25/u...
loading . . .
Use overscroll-behavior: contain to prevent a page from scrolling while a <dialog> is open
Chrome 144 features a small change to overscroll-behavior: it now also works on non-scrollable scrollers. While this change might seem trivial, it fixes an issue developers have dealing with for ages:...
https://www.bram.us/2025/11/25/use-overscroll-behavior-contain-to-prevent-a-page-from-scrolling-while-a-dialog-is-open/
4
125
17
reposted by
Ollie Williams
Bramus
about 2 months ago
JPEG XL in Chromium update: “[...] we would welcome contributions to integrate a performant and memory-safe JPEG XL decoder in Chromium. In order to enable it by default in Chromium we would need a commitment to long-term maintenance.”
groups.google.com/a/chromium.o...
2
79
14
reposted by
Ollie Williams
Barry Pollard
about 2 months ago
We've been working on a few proposals we'd like to bring to the web platform to make it easier to have more seamless navigations between pages.
@nomster.bsky.social
@foolip.org
and
@dbaron.org
presented these at W3C TPAC annual meeting last week More details here:
github.com/WICG/declara...
1/6 🧵
loading . . .
GitHub - WICG/declarative-partial-updates
Contribute to WICG/declarative-partial-updates development by creating an account on GitHub.
https://github.com/WICG/declarative-partial-updates
1
16
8
I wish this was a thing. Customising the UX behaviour of a datalist is so limited.
github.com/whatwg/html/...
loading . . .
datalist 'nofilter' attribute · Issue #4882 · whatwg/html
Reviving this issue from the W3C repo: w3c/html#888 Another (personal) example of why it is useful: Using a search engine for autocomplete, and populating the datalist options with the results (htt...
https://github.com/whatwg/html/issues/4882
about 2 months ago
0
0
0
I wonder if, as part of all the spec work on styling forms, there’s any standardisation happening around what gets displayed in a HTML datalist, because this Firefox bug is 12 years old…
bugzilla.mozilla.org/show_bug.cgi...
loading . . .
869690 - Always show the @value for datalist options even when they have a label (show both the label and the value)
ASSIGNED (austinjckson) in Toolkit - Autocomplete. Last updated 2024-12-18.
https://bugzilla.mozilla.org/show_bug.cgi?id=869690
about 2 months ago
0
0
0
reposted by
Ollie Williams
IntentToShip
about 2 months ago
Blink: Intent to Prototype: Media element pseudo-classes
loading . . .
Blink: Intent to Prototype: Media element pseudo-classes
Blink: Intent to Prototype: Media element pseudo-classes
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/691af1b8.050a0220.b6611.0871.GAE%40google.com
1
7
3
reposted by
Ollie Williams
Firefox for Web Developers
about 2 months ago
The W3C Security Web Application Guidelines Community Group wants to understand how developers are using specific web platform security features, and what the barriers are to the adoption. Take their survey here:
https://bit.ly/3JR6JML
loading . . .
Web security survey
Thanks for taking our survey about the usage of web platform security features. We're the W3C Security Web Application Guidelines Community Group (SWAG CG), and our mission is to develop guidelines f...
https://docs.google.com/forms/d/1-8DvgiB3AqrFU7tqe0GCoQsh6lfdOHHnUldOzMrtmeQ/viewform?pli=1&pli=1&pli=1&pli=1&edit_requested=true
1
9
11
reposted by
Ollie Williams
IntentToShip
about 2 months ago
Gecko: Intent to ship: CSS Module Scripts
loading . . .
Gecko: Intent to ship: CSS Module Scripts
Gecko: Intent to ship: CSS Module Scripts
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/CAC_Rxa6QoSWx1itbo0EnUri6r6GOhMD8hN6Mm00CTno%2BRvDQGA%40mail.gmail.com
1
22
9
reposted by
Ollie Williams
Marvin Hagemeister
about 2 months ago
I want to explore making frameworks less "framework-y". I'm curious how far you could go in that direction. I want simpler things and less to worry about.
8
13
1
reposted by
Ollie Williams
Justin Fagnani
about 2 months ago
Yesterday at TPAC I publicized my draft proposal for adding a declarative templating API to the DOM.
github.com/justinfagnan...
The repo has: 📖 Explainers for the templating API and DOM scheduler API 🏗️ Full prototype implementations ⚗️ a JSX transform ⚛️ a mini React-like framework
loading . . .
https://github.com/justinfagnani/dom-templating-api-proposal/blob/main/EXPLAINER.md
6
86
29
Reading this article from 2020 and realised all of the accessibility issues have been resolved long ago. Are there any good reasons today to still dislike <input type="number">?
technology.blog.gov.uk/2020/02/24/w...
Also read
stackoverflow.blog/2022/12/26/w...
but most of the points are invalid
loading . . .
Why the GOV.UK Design System team changed the input type for numbers
We take a look at why the GOV.UK Design System changed the element it uses for inputting numbers, making it more accessible and easier to use
https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/
about 2 months ago
1
1
0
reposted by
Ollie Williams
IntentToShip
2 months ago
Gecko: Intent to prototype and ship: Navigation API
loading . . .
Gecko: Intent to prototype and ship: Navigation API
Gecko: Intent to prototype and ship: Navigation API
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/CACvK8HJw-Li6K2BgkfHJB6NFTW2%2Bnu18TC-%2BwtPVKJRij0LBbQ%40mail.gmail.com
0
29
9
reposted by
Ollie Williams
Keith Cirkel
2 months ago
Calling all web developers! Browsers are all meeting up next week (
www.w3.org/events/tpac/...
). I want your voice to be heard! Tell me your biggest problems, and tell me what you want to see from the platform. What problems are tough to solve, but could be easier?
loading . . .
TPAC 2025 - Hybrid meeting
Our major event of the year gathers our community for thought-provoking discussions and coordinated work.
https://www.w3.org/events/tpac/2025/tpac-2025/
28
61
29
reposted by
Ollie Williams
NullVoxPopuli
2 months ago
Ember Data is now WarpDrive. This data framework can be used in any JS framework.
1
7
2
My main takeaways from the HTMX 4.0 announcement post: - Surprise that, until 4.0, it had used XMLHttpRequest instead of fetch. - Surprise that some features rely on eval().
htmx.org/essays/the-f...
2 months ago
0
7
0
Updated my CSS vendor prefixes article. Safari 26.2 supports text-decoration as a shorthand, without a prefix.
olliewilliams.xyz/blog/prefix/
2 months ago
2
4
2
🚨🔔 If you maintain a client-side router, now is the time to begin a rewrite/refactor: Navigation API lands in Safari 26.2
developer.apple.com/documentatio...
loading . . .
Safari 26.2 Beta Release Notes | Apple Developer Documentation
Released November 4, 2025 — 26.2 beta (20623.1.12)
https://developer.apple.com/documentation/safari-release-notes/safari-26_2-release-notes#Web-API
2 months ago
0
15
4
reposted by
Ollie Williams
Stefan Judis
2 months ago
This is quite a banger feature for web perf engineers. In Chrome Canary, you can now turn on an experimental feature to throttle single requests! chrome://flags/#devtools-individual-request-throttling This is golden to check the performance impact of a delayed resource. 👏
loading . . .
3
75
14
Is there an easier way to set the contents of an iframe to be the result of Document.parseHTML()?
2 months ago
0
1
0
reposted by
Ollie Williams
Louis Chenais
2 months ago
That's it, that's the day. After years of open collaboration, the Design Tokens Community Group delivers a production-ready, interoperable format for design systems. Goodbye disjointed workflows. Hello open standards. →
tr.designtokens.org/format
loading . . .
Design Tokens Format Module 2025.10
This document describes the technical specification for a file format to exchange design tokens between different tools.
https://tr.designtokens.org/format
0
12
4
They’re trying to put HTMX in the browser
dl.acm.org/doi/10.1145/...
loading . . .
The Missing Mechanic: Behavioral Affordances as the Limiting Factor in Generalizing HTML Controls | Proceedings of the 36th ACM Conference on Hypertext and Social Media
https://dl.acm.org/doi/10.1145/3720553.3746684
2 months ago
0
2
0
Hi
@bkardell.com
I enjoyed your Blessing of the Strings article but had a question. I've set a Content-Security-Policy: require-trusted-types-for 'script' header If I use setHTMLUnsafe() with a string, it will cause a TypeError. The whole reason to use setHTMLUnsafe is to set unsafe HTML.
2 months ago
1
1
0
reposted by
Ollie Williams
Luke
3 months ago
With Firefox enabling sanitizer API in nightly, I'm pretty excited to see if frameworks will pick this feature up sooner rather than later and offer an alternative to "dangerouslySetInnerHtml". I can see a setHTML and setHTMLUnsafe directive pair letting users pass in options to those functions.
1
11
2
reposted by
Ollie Williams
Jason Morehead
3 months ago
If you’ve been using third-party UI libraries to build your websites, then you might be pleasantly surprised by what’s possible with plain ol’
#HTML
these days. While those libraries can be useful for some projects and scenarios, they’re probably a lot less necessary than you might think.
#webdev
loading . . .
Keep Simplifying Web Development with Modern HTML - Opus
Third-party UI libraries can be useful, but you might be pleasantly surprised at what’s possible with plain ol’ HTML these days.
https://opus.ing/posts/keep-simplifying-web-development-modern-html
1
8
1
Sanitizer API is now enabled by default in Firefox Nightly.
bugzilla.mozilla.org/show_bug.cgi...
developer.mozilla.org/en-US/docs/W...
Still behind a flag in Chrome Canary...
loading . . .
HTML Sanitizer API - Web APIs | MDN
The HTML Sanitizer API allows developers to take strings of HTML and filter out unwanted elements, attributes, and other HTML entities when they are inserted into the DOM or a shadow DOM.
https://developer.mozilla.org/en-US/docs/Web/API/HTML_Sanitizer_API
3 months ago
2
35
12
reposted by
Ollie Williams
NullVoxPopuli
3 months ago
The gjs component format enables: 🩺 block-scope semantics 🫙 native JS state containers 🧬 native JS lifetime management 📦 multiple components in one file ⚡ template-based optimizations 🧪 test code has same ergo as app code
1
3
2
reposted by
Ollie Williams
Techmeme
3 months ago
Google is phasing out its Privacy Sandbox technologies; the initiative was launched in 2019 to develop privacy-protecting tech to replace third-party cookies (Kendra Barnett/Adweek)
Main Link
|
Techmeme Permalink
2
5
4
reposted by
Ollie Williams
IntentToShip
3 months ago
Gecko: Intent to prototype: Sanitizer API
loading . . .
Gecko: Intent to prototype: Sanitizer API
Gecko: Intent to prototype: Sanitizer API
https://groups.google.com/a/mozilla.org/d/msgid/dev-platform/CA%2BCWiYiR8WbJD6iyFvdZx5pXS9EfsTv6WNaLqbKZWrqS5yFORg%40mail.gmail.com
0
14
6
reposted by
Ollie Williams
Brian Kardell
3 months ago
Who do you want to hear from, or what topics would you like to hear about on Igalia chats?
4
6
6
Shopify deprecated their Polaris React components and went all-in on web components.
www.shopify.com/partners/blo...
github.com/Shopify/pola...
loading . . .
Polaris Goes Stable - The Future of Shopify App Development is Here (2025) - Shopify
Polaris is now GA. Today marks a milestone moment for Shopify developers: Polaris is now stable and the default library for building experiences across the entire Shopify ecosystem.
https://www.shopify.com/partners/blog/polaris-goes-stable-the-future-of-shopify-app-development-is-here
3 months ago
1
26
7
Firefox now supports view transitions, the command and commandfor HTML attributes, and the moveBefore() method.
www.firefox.com/en-US/firefo...
loading . . .
Firefox 144.0, See All New Features, Updates and Fixes
https://www.firefox.com/en-US/firefox/144.0/releasenotes/
3 months ago
3
135
37
reposted by
Ollie Williams
Passle
3 months ago
Pretty huge, Lit is no longer tied to Google
#freelit
lit.dev/blog/2025-10...
loading . . .
Lit is Joining the OpenJS Foundation!
Lit is officially joining the OpenJS Foundation as an Impact Project!
https://lit.dev/blog/2025-10-14-openjs/
1
74
19
I voted
interop-rank.jakearchibald.com
3 months ago
1
2
0
reposted by
Ollie Williams
Alex Russell
3 months ago
Every huge codebase (50+ engineers) I've worked with that have done upgrades in recent years have hit major issues with the introduction of scheduling. Adds variance to lab and RUM perf metrics, as well as <Suspense> randomising timings and introducing visual artifacts (flashing, delays, etc.)
1
5
1
reposted by
Ollie Williams
Luke
3 months ago
Emphasis on the "prototype" here, this is still a long ways off. Got to start somewhere though!
add a skeleton here at some point
0
9
3
Load more
feeds!
log in