Sign in

Philip Walton

@philipwalton.com
1.6K followers 221 following 50 posts

DevRel lead @ Google working on Chrome and the Web. I occasionally blog at: philipwalton.com

PostsRepliesMedia
Reposted by Philip Walton
Rick Viscomi @rviscomi.dev · 29/09/2026
v0.0.191 of Modern Web Guidance is out and it's a big one! *16* new guides covering: web components by @castastrophe.bsky.social Cross-Origin Storage by @tomayac.com security by @rowan.fyi UI and PWA by @jamessw.com and @sturobson.com Wasm by @sbc100.bsky.social github.com/GoogleChrome...
accessible-web-components: Make custom elements accessible by default, setting roles and ARIA state via the ElementInternals ARIA mixin, managing focus with delegatesFocus, and keeping ARIA relationships within a single shadow root.
custom-elements: Define, register, and manage the lifecycle of autonomous custom elements, covering constructor rules, lifecycle callbacks, upgrade timing, attribute/property reflection, and naming conventions.
form-associated-custom-elements: Make a custom control participate natively in forms with formAssociated and ElementInternals, submitting its own value, integrating with constraint validation, and reacting to reset, disable, and state-restore.
prerendering-custom-elements: Server-render a custom element, then hydrate it in place without re-rendering or a flash of unstyled content.
shadow-dom: Encapsulate a component's DOM and styles with Shadow DOM, construct the tree efficiently with HTML templates, and project consumer content with slots.
styling-web-components: Style across the shadow boundary with :host selectors, inherited and custom properties for theming, ::slotted and ::part, and cascade layers and container queries inside components.
web-components: Orientation and cross-cutting principles for authoring and using Web Components, covering Custom Elements, Shadow DOM, templates and slots, Declarative Shadow DOM, styling across the shadow boundary, Form-Associated Custom Elements, and accessibility requirements. Use this guide when building reusable UI components, design systems, or server-rendered custom elements.
avoid-redundant-large-asset-downloads: Avoid re-downloading and re-storing large shared assets, such as AI models, Wasm modules, or fully-bundled JavaScript libraries, that a visitor's browser may already hold from an unrelated site.
load-shared-resources-declaratively: Serve popular, unmodified scripts, stylesheets, and JavaScript modules from a shared cross-origin cache using markup or import syntax alone, witho…New Guides
migrate-web-app-origin: Transfer an installed web app to a new origin while preserving user configuration and OS-level shortcuts.
local-network-access: Access resources on a user's local network or loopback interface from a public web application.
trusted-types: Help prevent DOM-based XSS attacks by ensuring all untrusted content is sanitized before being inserted into the page.
responsive-table: Build a data table that presents tabular data with proper header semantics, and remains readable and navigable on small screens and with assistive technologies.
spatial-navigation: Implement accessible spatial navigation using arrow keys that works correctly in different layout modes (grid etc)
cpp-on-the-web: Compile C/C++ to WebAssembly using Emscripten

Updated the animated-select-picker guide to advise using standard value attributes on <option> elements to ensure standard form submission behavior.
Updated the branded-select-styling guide to emphasize retaining standard value attributes on <option> elements to preserve default form submission behaviors.
Updated the custom-select-picker-layouts guide with guidance on using :open::picker(select) selectors, customizing the ::checkmark pseudo-element, wrapping <selectedcontent> in a <button>, and managing keyboard navigation and accessibility constraints for grid layouts.
Updated the rich-media-picker guide to clarify that standard value attributes should be maintained on <option> elements to preserve form submission functionality.
Updated the out-of-order-html-streaming guide to document the full suite of static and streaming DOM insertion methods, detailing built-in sanitizer behaviors, WritableStream integration, and processing instruction marker practices.
Updated the sanitize-untrusted-html guide to detail node manipulation patterns using Document.parseHTML() to avoid mutation XSS, explain child preservation rules via replaceWithChildrenElements, and provide aligned DOMPurify fallback configurations.
Updated…Removed the prevent-text-wrapping guide.

HTML processing instructions: Added Chrome 150 and Edge 150 support in out-of-order-html-streaming.

A four-column table titled "Benchmark Evaluations" comparing unguided versus guided pass rates across 132 tasks and 1,124 assertions.

Row 1: codex_cli (gpt-5.6-sol) achieved a 59% unguided pass rate and an 81% guided pass rate, an uplift of +22 percentage points.

Row 2: claude_code (claude-sonnet-5) achieved a 54% unguided pass rate and an 87% guided pass rate, an uplift of +33 percentage points.

Row 3: antigravity (gemini-3.8-flash-medium) achieved a 65% unguided pass rate and a 91% guided pass rate, an uplift of +26 percentage points.
12210
Reposted by Philip Walton
Ben Schwarz @benschwarz.bsky.social · 16/09/2026
Google started shipping ad metrics in CrUX overnight, so I’ve added them to Calibre's free Core Web Vitals tool. First look at the Independent: ads take up 20% of the screen, 7.25s of CPU and 5.1MB of data per page. 88% of their readers are on phones. calibreapp.com/tools/core-w...
Calibre's Core Web Vitals report for independent.co.uk showing new advertising metrics from Chrome User Experience Report. Total network usage by ads is 5.10 MB and total CPU usage by ads is 7.25 seconds at the 75th percentile, with the CPU figure trending upward over the last three months.
1104
Reposted by Philip Walton
Barry Pollard @tunetheweb.com · 15/09/2026
We just launched experimental ad metrics in the Chrome User Experience Report (CrUX): - Ad Count - Ad Density - Ad Weight: Network - Ad Weight: CPU These metrics are a set of ad-related measurements that provide transparency into sites' ad experiences. developer.chrome.com/blog/crux-ad... 1/8 🧵
developer.chrome.com
New ad metrics in Chrome User Experience Report  |  Blog  |  Chrome for Developers
Learn about the new ad metrics now available in the Chrome User Experience Report (CrUX)
23014
Philip Walton @philipwalton.com · 15/09/2026
If you've ever tried using a new web API in TypeScript, you've probably hit this problem: An API exists. It works in your browser. But TypeScript has no types for it. The reason is a limitation that TS unfortunately applies to its built-in libs. BUT, I've created a relatively simple fix 👇
3419
Reposted by Philip Walton
Barry Pollard @tunetheweb.com · 21/07/2026
I've just release v6.0.0 of the web-vitals library. It includes support for measuring Web Vitals per soft navigation (like those used in SPAs) for supporting browsers (Chrome 151+) to give more accurate performance metrics for those sites. github.com/GoogleChrome...
github.com
2216
Reposted by Philip Walton
Joey Arhar @josepharhar.bsky.social · 14/07/2026
Hi! I'm working on a new HTML feature: filterable select There are two proposed API shapes so far: 1. Nesting <input> in <select> 2. Sibling <input> for listbox <select> w/id ref Option 1 is more ergonomic, but would break selects in older browsers Thoughts? (Both currently in Canary w/flag)
2211623
Reposted by Philip Walton
Lea Verou, PhD @lea.verou.me · 13/07/2026
🔥 New blog post: In defense of polyfills A highly influential spec editor expressed the opinion that polyfilling is harmful. I beg to differ. lea.verou.me/blog/2026/po...
lea.verou.me
In defense of polyfills • Lea Verou
An influential spec editor thinks polyfilling is harmful. I think blaming polyfills for compat accidents is like blaming car crashes on the ambulances that show up — and the alternative is a stagnant ...
77024
Reposted by Philip Walton
Bramus @bram.us · 14/07/2026
Yeah, www.bram.us/2025/05/04/c... is the article Jakob's referring to. The post lists the difficulties (basically reiterating what @philipwalton.com said a decade ago), identifies the needs, and also explores a potential solution. I really wish we had something like it, for the better of the web.
bram.us
Polyfilling CSS with CSS Parser Extensions
In April I attended #BlinkOn, the conference for web platform contributors in the Chromium open source project. At the conference I gave a presentation about “CSS Parser Extensions”, a wild idea I hav...
051
Reposted by Philip Walton
rem / Remy Sharp @remysharp.com · 07/07/2026
Along with the laundry list of CSS features I didn't know had been knocking around for the last few years, I've just found that private JS properties are "widely available" baseline…since 2021. Apparently I just get older and slower 🐌
211
Reposted by Philip Walton
Chrome for Developers @developer.chrome.com · 12/06/2026
Solved: AI coding tools that hallucinate legacy web practices. Modern Web Guidance codifies decades of Chrome's platform expertise into your agents. Level up with guides for web best practices and new platform features, using Baseline data for cross-browser reliability → goo.gle/4on8BMS
082
Reposted by Philip Walton
Paul Kinlan @paul.kinlan.me · 26/05/2026
My Google IO demo of HTML in Canvas and Web MCP github.com/PaulKinlan/3...
1266
Reposted by Philip Walton
Paweł Grzybek @pawelgrzybek.com · 26/05/2026
I really don't like to admit that, but agents are no longer bad at CSS. I'm playing around with these skills bundled by Googlers into the Modern Web Guidance, and they are impressive. Really good presentation @philipwalton.com 👏 developer.chrome.com/docs/modern-... #css
developer.chrome.com
Modern Web Guidance  |  Chrome for Developers
Guidance on how to build for the modern web.
0122
Reposted by Philip Walton
Philip Walton @philipwalton.com · 22/05/2026
My talk on Modern Web Guidance is up! youtu.be/bo3i0FzDUYo This talk is a deep dive into how Modern Web Guidance works and why it's useful. 👉 Make sure you watch until the end, where I show some live demos that really highlight this tool's capabilities!
youtu.be
Unlock modern web capabilities in your AI coding workflows
YouTube video by Chrome for Developers
51911
Reposted by Philip Walton
Marvin Hagemeister @marvinh.dev · 24/05/2026
HTML might be getting out of order streaming natively in the future. I really like this: developer.chrome.com/blog/declara...
developer.chrome.com
Declarative partial updates  |  Blog  |  Chrome for Developers
Learn about new out-of-order streaming capabilities and the renewed HTML insertion and streaming methods available for testing from Chrome 148
05713
Reposted by Philip Walton
Bramus @bram.us · 22/05/2026
Here's the recording of this year's “What's new in Web UI” talk @una.im and I gave at Google I/O earlier this week. youtu.be/uT7MVcCQ4rw Very happy with how it went, and I think you might find it useful, so give it a watch 😊 #ChromeDevRel #GoogleIO
youtu.be
What's new in Web UI
YouTube video by Chrome for Developers
15113
Reposted by Philip Walton
Una Kravets @una.im · 22/05/2026
What's new in Web UI: 2026 Edition ✨ @bram.us and I go over 35+ new CSS, HTML, and JS features to help you build beautiful web experiences Video just went live: www.youtube.com/watch?v=uT7M...
youtube.com
What's new in Web UI
YouTube video by Chrome for Developers
1234
Philip Walton @philipwalton.com · 22/05/2026
My talk on Modern Web Guidance is up! youtu.be/bo3i0FzDUYo This talk is a deep dive into how Modern Web Guidance works and why it's useful. 👉 Make sure you watch until the end, where I show some live demos that really highlight this tool's capabilities!
youtu.be
Unlock modern web capabilities in your AI coding workflows
YouTube video by Chrome for Developers
51911
Reposted by Philip Walton
Nicholas C. Zakas @humanwhocodes.com · 20/05/2026
Pretty excited about the Modern Web Guidance skills from Google. I had already created my own "semantic HTML" skill, but these are much better. developer.chrome...
0112
Reposted by Philip Walton
Patrick Brosset @patrickbrosset.com · 20/05/2026
✨ A challenge in today's web dev is telling AI agents to write modern code. Skills can help avoid legacy patterns and bloated JS. 🎉 We're teaming up with Chrome to bring you Modern Web Guidance: skills for web platform expertise, best practices, and modern API patterns!
github.com
GitHub - GoogleChrome/modern-web-guidance
Contribute to GoogleChrome/modern-web-guidance development by creating an account on GitHub.
2202
Reposted by Philip Walton
Rick Viscomi @rviscomi.dev · 20/05/2026
We've been COOKING Modern Web Guidance is a skill pack that helps your coding agent write better, faster, more accessible and secure code Get it at goo.gle/mwg We'd love to know what you think!
goo.gle
Modern Web Guidance  |  Chrome for Developers
Guidance on how to build for the modern web.
0216
Reposted by Philip Walton
Lea Verou, PhD @lea.verou.me · 19/05/2026
@philipwalton.com to discuss it in more detail in 30 mins! io.google/2026/explore...
io.google
Google I/O 2026: Unlock modern web capabilities in your AI coding workflows
Don’t miss Google I/O, featuring product launches, innovations, and insights. Tune in for the live keynotes and sessions.
062
Reposted by Philip Walton
Lea Verou, PhD @lea.verou.me · 19/05/2026
Thrilled this is out, keeping quiet has been SO HARD! 🤐 I’ve had the opportunity to contribute as a domain expert consultant over the past few months, and saw firsthand the level of thoughtfulness and care that went into it. Proud to have played a small part, and excited to see what folks build! ❤️
66010
Reposted by Philip Walton
Sarah Drasner @sarahedo.bsky.social · 19/05/2026
💥 Game changer for Web Development announced at GoogleIO- Modern Web Guidance! It’s expert-vetted skills for web development based on best practices of latest specs and APIs. It ensures your agent/coding harness doesn’t default to older and out of date patterns to build sites.
612016
Philip Walton @philipwalton.com · 19/05/2026
I'm going to be giving a talk that deep dives into Modern Web Guidance in 2 hours: bsky.app/profile/deve... You can find the talk details here: io.google/2026/explore...
231
Reposted by Philip Walton
Lea Verou, PhD @lea.verou.me · 13/05/2026
🚨 What are some modern web platform (CSS, HTML, JS) features that you wish your AI agent utilized, but doesn't (or gets them wrong)? I’ll go first: - CSS: lh unit, trig functions, nesting - HTML: inert attribute - JS: Regex lookbehind, regex named groups, RegExp.escape(), Object.groupBy()
3164
Reposted by Philip Walton
Rob Palmer @robpalmer.bsky.social · 31/01/2026
TypeScript excitement 😉 Congrats to @jakebailey.dev on updating upstream tsc to default to an unpinned *latest* yearly edition of ES20xx. Heading for TS 6.0 🎉 This mean less transpilation of new JS features & more use of native language features provided by JS engines 👍 github.com/microsoft/Ty...
github.com
Default `target` to "latest standard", deprecate ES5 by jakebailey · Pull Request #63067 · microsoft/TypeScript
target now defaults to ScriptTarget.LatestStandard, which is an alias to the most recent standardized ES version, currently ES2024 (until we add ES2025). target=ES5 is now deprecated. #63066 got mo...
28212
Reposted by Philip Walton
Una Kravets @una.im · 16/01/2026
You know that annoying experience on mobile websites where you need to find the little close button and can't swipe a menu closed? The solution is simpler than you think. With basic CSS scroll APIs, you can get built-in interruptible swipe gestures 🥳
927038
Reposted by Philip Walton
Rick Byers @rbyers.net · 09/01/2026
The Chrome Identity and Payments team in Waterloo Canada is hiring several early/mid-career developers. I'm on the lookout for exceptional candidates with a passion for browsers and/or the identity/payments space! www.linkedin.com/posts/rick-b...
0104
Reposted by Philip Walton
ændra. @aendra.com · 20/11/2025
Being an old-school web dev is always like "Oh wait, I *can* use container queries now"
1836
Reposted by Philip Walton
Stacy Kvernmo @stacykvernmo.com · 14/11/2025
There are many goodies that are newly and widely available in Baseline. backdrop-filter is so much fun to work with and I am obsessed with AVIF images and the ability to animate from display: none with @starting-style. And how easy is it to lazy load images now? web.dev/articles/bas...
web.dev
How to implement an image gallery using Baseline features  |  Articles  |  web.dev
Image galleries are a common user interface pattern on the web. Learn how to create one using Baseline features.
1179
Reposted by Philip Walton
Addy Osmani @addyosmani.bsky.social · 23/10/2025
View Transitions are now in all browsers! They also landed in React! developer.chrome.com/blog/view-tr...
516226
Reposted by Philip Walton
Eiji Kitamura / えーじ @agektmr.com · 10/10/2025
Chrome for Android can now help users adopt passkeys more seamlessly. If a user signs in with a saved password , your website can request that an associated password manager (in many cases on Chrome is Google Password Manager) creates a passkey automatically. developer.chrome.com/blog/automat...
developer.chrome.com
Automatic passkey creation in Chrome for Android  |  Blog  |  Chrome for Developers
Chrome for Android can now automatically create passkeys after password sign-in, helping users transition to passkeys with less friction.
045
Reposted by Philip Walton
Bramus @bram.us · 08/10/2025
A lot has happened since Chrome shipped Same-Document View Transitions in 2023. In 2024 we shipped Cross-Document VTs, added refinements such as `view-transition-class` and VT Types, and also welcomed Safari in adding VT support. And this year … well, I wrote a post summing it all up.
developer.chrome.com
What's new in view transitions (2025 update)  |  Blog  |  Chrome for Developers
An overview of what changed for View Transitions in 2025
0247
Reposted by Philip Walton
Paul Kinlan @paul.kinlan.me · 29/09/2025
If we started Chrome Dev Summit again, would you be interested in it? (huh - apparently can't do polls here...), Please reply, Yes or No, or any other answer in between.
8175
Reposted by Philip Walton
Google for Developers @developers.google.com · 25/09/2025
✅ Baseline now has full feature coverage, making it easier to know which web platform features are ready to use. Build the next wave of Baseline-powered tools and compete for $10,000 in prizes → goo.gle/424SBWc
295
Reposted by Philip Walton
Chrome for Developers @developer.chrome.com · 23/09/2025
Announcing our public preview of Chrome DevTools MCP! Experience the full power of DevTools in your AI coding agent→ goo.gle/4pDE6Tk With Chrome DevTools MCP, your AI agent can run performance traces, inspect the DOM, & perform real-time debugging of your web pages.
04022
Reposted by Philip Walton
Rick Viscomi @rviscomi.dev · 16/09/2025
Before, you needed a plugin to use Baseline semantics in your Browserslist queries. Now you don't! Just give it a target like `baseline widely available` and it'll work out of the box Available in browserslist@4.26.0 and later web.dev/blog/browser...
web.dev
Browserslist now supports Baseline  |  Blog  |  web.dev
Browserslist has added support for Baseline queries. Find out what that could mean for your developer workflow.
1106
Reposted by Philip Walton
Rick Viscomi @rviscomi.dev · 02/09/2025
Show us your best tooling ideas to help developers adopt more modern web features! Join the hackathon for your shot at $10,000 in cash prizes 🔥🔥 web.dev/blog/baselin...
web.dev
The Baseline Tooling Hackathon starts now!  |  Blog  |  web.dev
Want to make the web better for a chance to win cash prizes? Join the Baseline Tooling Hackathon!
0106
Reposted by Philip Walton
Penny @digitaltransient.bsky.social · 15/08/2025
Scoped View Transitions are ready for testing in Chrome! SVTs expose el.startViewTransition() on HTML elements. The element creates a scope for the transition, ∴ the transition pseudo-elements are affected by ancestor clips and transforms. Multiple SVTs on separate elements can run *concurrently*.
github.com
43710
Reposted by Philip Walton
Mia [data-css=poetic] @miriam.codes · 13/08/2025
🎉 Happy 30-month anniversary to Container Queries – in every browser since Feb, 2023. It was supposed to be impossible, but here we are! Why 2.5 years? Nothing will change tomorrow, but Baseline uses this milestone to signal confidence a feature has gained "wide" support. youtu.be/bhHV0rQ3-CQ
59917
Philip Walton @philipwalton.com · 13/08/2025
I know some people in the web community are concerned that Baseline will discourage devs from using new features—or anything not "Widely Available". Personally, I'm not worried about that at all. If anything, I think Baseline will speed up new feature adoption! Here's why 🧵
2197
Reposted by Philip Walton
Chrome for Developers @developer.chrome.com · 08/08/2025
What new web features are your users actually ready for? Stop guessing. 🔮 Baseline helps you make data-driven decisions so you can ship the right features at the right time. Learn more and find your target with #WhatsMyBaseline → goo.gle/whats-my-baseline
1138
Reposted by Philip Walton
Barry Pollard @tunetheweb.com · 27/06/2025
Firefox shipping scheduler.postTask() and scheduler.yield() for all your long task-avoiding scheduling needs!!
05020
Reposted by Philip Walton
Rachel Andrew @rachelandrew.co.uk · 22/05/2025
Here's my talk from I/O along with the companion blog post that rounds up all of the links mentioned. It's been a very exciting year for the web, and all the new Baseline tooling we've just announced can help you understand when to adopt these new features. web.dev/blog/whats-n...
web.dev
What's new in web  |  Blog  |  web.dev
A roundup of everything mentioned in the What&#39;s New in Web talk at Google I/O.
1349
Reposted by Philip Walton
Barry Pollard @tunetheweb.com · 07/05/2025
We've just published v5.0.0 of the web-vitals JavaScript library for measuring Core Web Vitals. github.com/GoogleChrome... As a major release, this includes a number of breaking changes as detailed in the upgrading doc: github.com/GoogleChrome... Please read carefully before upgrading. 1/5 🧵
github.com
GitHub - GoogleChrome/web-vitals: Essential metrics for a healthy site.
Essential metrics for a healthy site. Contribute to GoogleChrome/web-vitals development by creating an account on GitHub.
14712
Reposted by Philip Walton
Noam Rosenthal @nomster.bsky.social · 11/04/2025
So sad... One of the happiest things about building new CSS features was having Adam build cool stuff with them.
0291
Reposted by Philip Walton
Una Kravets @una.im · 11/04/2025
After 6 years of working closely alongside @nerdy.dev I am just rocked by this news. Still not ready to accept it TBH but I stand behind Adam as one of the most genuine, talented, effervescent devs I've ever worked with. If you're hiring snatch him up before I figure out a way to get him back 👀
318718
Reposted by Philip Walton
Bramus @bram.us · 11/04/2025
Adam is the brightest, most authentic, inspiring, truly creative, high performing, deeply passionate, and nice person I have ever worked with. And then my employer decided to terminate his role. I am gutted and sick to my stomach. I will miss you, my friend 💔
414611
Reposted by Philip Walton
Dion Almaer @almaer.com · 11/04/2025
It’s a sin that this happened to Adam. A true world class frontend engineer and a world class human. I remember being so excited when we first spoke about him joining Chrome and then talking VisBug. And he’s gone from strength to strength. What an epic own goal.
1251
Reposted by Philip Walton
Jake Archibald @jakearchibald.com · 11/04/2025
Someone hire this guy. He's one of the best. Hire him before someone else does.
729948