Lea Verou, PhD
@lea.verou.me
I make things for making things.
@[email protected] on Mastodon, @leaverou elsewhere
https://lea.verou.me
@[email protected] on Mastodon, @leaverou elsewhere
https://lea.verou.me
Pinned
Lea Verou, PhD
@lea.verou.me
· 25d
Honored to be awarded “Pathfinder for Standards” by @openjsf.org at #jsconf 💛
Blurb made me blush ☺️:
“Lea is a rare person who has strong academic credentials, has helped create rigorous industry standards, but always focuses on the needs of real world users […]”
Rest at openjsf.org/blog/javascr...
Blurb made me blush ☺️:
“Lea is a rare person who has strong academic credentials, has helped create rigorous industry standards, but always focuses on the needs of real world users […]”
Rest at openjsf.org/blog/javascr...
Reposted by Lea Verou, PhD
Have you ever avoided using an a11y feature because of issues involved with IDREFs being global, or encountered bugs due to this?
Please let us know! We have a meeting to discuss this next Wednesday (at TPAC) and would love to hear your stories, especially if they impacted users.
cc @lea.verou.me
Please let us know! We have a meeting to discuss this next Wednesday (at TPAC) and would love to hear your stories, especially if they impacted users.
cc @lea.verou.me
November 7, 2025 at 12:20 PM
Have you ever avoided using an a11y feature because of issues involved with IDREFs being global, or encountered bugs due to this?
Please let us know! We have a meeting to discuss this next Wednesday (at TPAC) and would love to hear your stories, especially if they impacted users.
cc @lea.verou.me
Please let us know! We have a meeting to discuss this next Wednesday (at TPAC) and would love to hear your stories, especially if they impacted users.
cc @lea.verou.me
If it were possible to make elements focusable and give them ARIA roles via CSS, what would you use it for?
November 5, 2025 at 3:59 PM
If it were possible to make elements focusable and give them ARIA roles via CSS, what would you use it for?
🔥 Hot take:
I wonder if the Web’s Separation of Concerns should be about the Web platform *supporting* authors in being able to separate concerns in whatever way works for them, rather than forcing a specific type of separation dreamed up in the late 90s. 🤔
(*ducks to avoid objects thrown* 😅)
I wonder if the Web’s Separation of Concerns should be about the Web platform *supporting* authors in being able to separate concerns in whatever way works for them, rather than forcing a specific type of separation dreamed up in the late 90s. 🤔
(*ducks to avoid objects thrown* 😅)
November 4, 2025 at 9:42 PM
🔥 Hot take:
I wonder if the Web’s Separation of Concerns should be about the Web platform *supporting* authors in being able to separate concerns in whatever way works for them, rather than forcing a specific type of separation dreamed up in the late 90s. 🤔
(*ducks to avoid objects thrown* 😅)
I wonder if the Web’s Separation of Concerns should be about the Web platform *supporting* authors in being able to separate concerns in whatever way works for them, rather than forcing a specific type of separation dreamed up in the late 90s. 🤔
(*ducks to avoid objects thrown* 😅)
TIL: Apparently, a web component’s lifecycle hooks are picked up by customElements.define() when it’s registered, and overwriting them after makes no difference whatsoever.
Demo: codepen.io/leaverou/pen...
Demo: codepen.io/leaverou/pen...
Overwriting connectedCallback
...
codepen.io
November 3, 2025 at 8:44 PM
TIL: Apparently, a web component’s lifecycle hooks are picked up by customElements.define() when it’s registered, and overwriting them after makes no difference whatsoever.
Demo: codepen.io/leaverou/pen...
Demo: codepen.io/leaverou/pen...
An underrated perk of AI autocomplete is that it offers a fascinating aggregated glimpse into real-world developer habits.
Sometimes it’s “oh, that’s clever! Better than what I was going to do!”
Other times “Why would anyone do that? And often enough for the model to learn it?!” (e.g. return await)
Sometimes it’s “oh, that’s clever! Better than what I was going to do!”
Other times “Why would anyone do that? And often enough for the model to learn it?!” (e.g. return await)
October 30, 2025 at 2:37 AM
An underrated perk of AI autocomplete is that it offers a fascinating aggregated glimpse into real-world developer habits.
Sometimes it’s “oh, that’s clever! Better than what I was going to do!”
Other times “Why would anyone do that? And often enough for the model to learn it?!” (e.g. return await)
Sometimes it’s “oh, that’s clever! Better than what I was going to do!”
Other times “Why would anyone do that? And often enough for the model to learn it?!” (e.g. return await)
In today’s episode of Useless Info I just learned about #JS:
Turns out you cannot subclass Proxy (because it has no prototype).
Nice try Lea 🥲
Turns out you cannot subclass Proxy (because it has no prototype).
Nice try Lea 🥲
October 29, 2025 at 1:07 AM
In today’s episode of Useless Info I just learned about #JS:
Turns out you cannot subclass Proxy (because it has no prototype).
Nice try Lea 🥲
Turns out you cannot subclass Proxy (because it has no prototype).
Nice try Lea 🥲
Reposted by Lea Verou, PhD
Your ability to eat should not depend on your productivity
Your ability to get healthcare should not depend on your productivity
Your ability to get housing should not depend on your productivity
Saying “be more productive!” To those who are struggling devalues human life.
It aids fascism.
Your ability to get healthcare should not depend on your productivity
Your ability to get housing should not depend on your productivity
Saying “be more productive!” To those who are struggling devalues human life.
It aids fascism.
October 28, 2025 at 4:29 AM
Your ability to eat should not depend on your productivity
Your ability to get healthcare should not depend on your productivity
Your ability to get housing should not depend on your productivity
Saying “be more productive!” To those who are struggling devalues human life.
It aids fascism.
Your ability to get healthcare should not depend on your productivity
Your ability to get housing should not depend on your productivity
Saying “be more productive!” To those who are struggling devalues human life.
It aids fascism.
After years of internalizing that JS proxies are suuuper slow, I was surprised to find that in Chrome, they seem faster for running function side effects than simply wrapping a function: jsbenchmark.com#eyJjYXNlcyI6...
October 27, 2025 at 9:08 PM
After years of internalizing that JS proxies are suuuper slow, I was surprised to find that in Chrome, they seem faster for running function side effects than simply wrapping a function: jsbenchmark.com#eyJjYXNlcyI6...
#JS folks, what have you needed JS class mixins/traits for?
Especially interested in use cases outside of Web Components (I already have plenty around WC)
Especially interested in use cases outside of Web Components (I already have plenty around WC)
October 27, 2025 at 3:05 PM
#JS folks, what have you needed JS class mixins/traits for?
Especially interested in use cases outside of Web Components (I already have plenty around WC)
Especially interested in use cases outside of Web Components (I already have plenty around WC)
Played a bit with the SpeechRecognition API 🤩
Here’s my playground: codepen.io/leaverou/pen...
Safari claims to support it, but I couldn't get it to recognize any non-English language. Can you?
Also, it seems *exceedingly* slow. Like 5-6 seconds from the moment you stop speaking.
Here’s my playground: codepen.io/leaverou/pen...
Safari claims to support it, but I couldn't get it to recognize any non-English language. Can you?
Also, it seems *exceedingly* slow. Like 5-6 seconds from the moment you stop speaking.
SpeechRecognition demo
...
codepen.io
October 24, 2025 at 3:08 PM
Played a bit with the SpeechRecognition API 🤩
Here’s my playground: codepen.io/leaverou/pen...
Safari claims to support it, but I couldn't get it to recognize any non-English language. Can you?
Also, it seems *exceedingly* slow. Like 5-6 seconds from the moment you stop speaking.
Here’s my playground: codepen.io/leaverou/pen...
Safari claims to support it, but I couldn't get it to recognize any non-English language. Can you?
Also, it seems *exceedingly* slow. Like 5-6 seconds from the moment you stop speaking.
Reposted by Lea Verou, PhD
i NEED to know the backstory here
October 23, 2025 at 7:21 AM
i NEED to know the backstory here
Having poured my soul into open source since 2008, I was nodding hard at @cory.laviska.com’s post.
“It's all take and no give. And I've already given more than enough for two lifetimes.”
There’s something especially irritating in watching companies profit off your work without contributing a dime.
“It's all take and no give. And I've already given more than enough for two lifetimes.”
There’s something especially irritating in watching companies profit off your work without contributing a dime.
October 22, 2025 at 3:24 PM
Having poured my soul into open source since 2008, I was nodding hard at @cory.laviska.com’s post.
“It's all take and no give. And I've already given more than enough for two lifetimes.”
There’s something especially irritating in watching companies profit off your work without contributing a dime.
“It's all take and no give. And I've already given more than enough for two lifetimes.”
There’s something especially irritating in watching companies profit off your work without contributing a dime.
🌈 Color.js is growing so much, we had to automate updating the millions of npm downloads counter in its readme. Currently at 84M total / 3M per week. 🤩
Speaking of, v0.6.0-beta.1 is fresh out the oven! github.com/color-js/col...
Aiming for a stable next week if no issues 🤞🏼
Speaking of, v0.6.0-beta.1 is fresh out the oven! github.com/color-js/col...
Aiming for a stable next week if no issues 🤞🏼
Release v0.6.0 Beta 1 · color-js/color.js
We hear you, it’s been a while, and v0.6.0 is long overdue. Assuming any significant issues come up in this beta, we plan to release a stable v0.6.0 in 1-2 weeks or so.
⬇️ 84 million downloads!
Col...
github.com
October 21, 2025 at 4:04 PM
🌈 Color.js is growing so much, we had to automate updating the millions of npm downloads counter in its readme. Currently at 84M total / 3M per week. 🤩
Speaking of, v0.6.0-beta.1 is fresh out the oven! github.com/color-js/col...
Aiming for a stable next week if no issues 🤞🏼
Speaking of, v0.6.0-beta.1 is fresh out the oven! github.com/color-js/col...
Aiming for a stable next week if no issues 🤞🏼
Reposted by Lea Verou, PhD
Hey for those of you who don’t have kids, pls know that until recently, schools had stopped teaching phonics for decades.
The substitute method sold to districts everywhere was, & I’m not kidding: “Just look at the word & take a guess!”
OH WHY CAN’T THE CHILDREN READ? SURELY IT IS THEIR OWN FAULT!
The substitute method sold to districts everywhere was, & I’m not kidding: “Just look at the word & take a guess!”
OH WHY CAN’T THE CHILDREN READ? SURELY IT IS THEIR OWN FAULT!
October 18, 2025 at 1:03 AM
Hey for those of you who don’t have kids, pls know that until recently, schools had stopped teaching phonics for decades.
The substitute method sold to districts everywhere was, & I’m not kidding: “Just look at the word & take a guess!”
OH WHY CAN’T THE CHILDREN READ? SURELY IT IS THEIR OWN FAULT!
The substitute method sold to districts everywhere was, & I’m not kidding: “Just look at the word & take a guess!”
OH WHY CAN’T THE CHILDREN READ? SURELY IT IS THEIR OWN FAULT!
Reposted by Lea Verou, PhD
LLMs are the best for getting to 80% of what you want to achieve, and the absolute worst for getting to 100% of what you want to achieve.
"I have a decent fluency in LLMs, and they have utility, but the absurd degree of over-hype, the way they're being forced on everyone, and the insistence on ignoring the many valid critiques about them make it very difficult to focus on legitimate uses where they might add value."
October 17, 2025 at 9:33 AM
LLMs are the best for getting to 80% of what you want to achieve, and the absolute worst for getting to 100% of what you want to achieve.
Honored to be awarded “Pathfinder for Standards” by @openjsf.org at #jsconf 💛
Blurb made me blush ☺️:
“Lea is a rare person who has strong academic credentials, has helped create rigorous industry standards, but always focuses on the needs of real world users […]”
Rest at openjsf.org/blog/javascr...
Blurb made me blush ☺️:
“Lea is a rare person who has strong academic credentials, has helped create rigorous industry standards, but always focuses on the needs of real world users […]”
Rest at openjsf.org/blog/javascr...
October 16, 2025 at 7:53 PM
Honored to be awarded “Pathfinder for Standards” by @openjsf.org at #jsconf 💛
Blurb made me blush ☺️:
“Lea is a rare person who has strong academic credentials, has helped create rigorous industry standards, but always focuses on the needs of real world users […]”
Rest at openjsf.org/blog/javascr...
Blurb made me blush ☺️:
“Lea is a rare person who has strong academic credentials, has helped create rigorous industry standards, but always focuses on the needs of real world users […]”
Rest at openjsf.org/blog/javascr...
Scary.
I NEED to tell you the story of Tae Heung “William” Kim.
He's a graduate student at Texas A&M where he's working on a vaccine for Lyme disease.
He's a *legal permanent resident* of the United States.
And he's been in ICE detention for 12 days & counting, transferred Tuesday to South Texas.
He's a graduate student at Texas A&M where he's working on a vaccine for Lyme disease.
He's a *legal permanent resident* of the United States.
And he's been in ICE detention for 12 days & counting, transferred Tuesday to South Texas.
October 16, 2025 at 2:00 PM
Scary.
Yay! This was one of my proposals and I think it has a ton of potential to revolutionize how we use design tokens in components and UI libraries today.
Blink: Intent to Prototype: The inherit() CSS function
Blink: Intent to Prototype: The inherit() CSS function
Blink: Intent to Prototype: The inherit() CSS function
groups.google.com
October 15, 2025 at 6:13 AM
Yay! This was one of my proposals and I think it has a ton of potential to revolutionize how we use design tokens in components and UI libraries today.
I’m in love with @sarahedo.bsky.social’s hand-drawn illustrations in her #jsconf slides 😍
Great talk too, I dig the high-level overview of how different platforms do UI, that’s exactly the kind of cross-pollination we need to design better APIs for the Web.
Great talk too, I dig the high-level overview of how different platforms do UI, that’s exactly the kind of cross-pollination we need to design better APIs for the Web.
October 14, 2025 at 2:21 PM
I’m in love with @sarahedo.bsky.social’s hand-drawn illustrations in her #jsconf slides 😍
Great talk too, I dig the high-level overview of how different platforms do UI, that’s exactly the kind of cross-pollination we need to design better APIs for the Web.
Great talk too, I dig the high-level overview of how different platforms do UI, that’s exactly the kind of cross-pollination we need to design better APIs for the Web.
Very annoyed at Slack rn. It quietly decided to stop syncing DAYS AGO for no apparent reason so I missed a ton of messages 😒
Plus, all the messages *I* sent were never sent, and just vanished when I restarted the app. 😒
Silver lining: turns out people weren't suddenly all ghosting me in unison 😅
Plus, all the messages *I* sent were never sent, and just vanished when I restarted the app. 😒
Silver lining: turns out people weren't suddenly all ghosting me in unison 😅
October 14, 2025 at 6:58 AM
Very annoyed at Slack rn. It quietly decided to stop syncing DAYS AGO for no apparent reason so I missed a ton of messages 😒
Plus, all the messages *I* sent were never sent, and just vanished when I restarted the app. 😒
Silver lining: turns out people weren't suddenly all ghosting me in unison 😅
Plus, all the messages *I* sent were never sent, and just vanished when I restarted the app. 😒
Silver lining: turns out people weren't suddenly all ghosting me in unison 😅
Reposted by Lea Verou, PhD
it's kinda weird that all the software i am expected to use for work are all written by distributed teams, go, python, postgres, linux, chrome, k8s etc
and despite being told "the best teams work in an office together" i don't know of any software i use that's actually written that way
and despite being told "the best teams work in an office together" i don't know of any software i use that's actually written that way
October 13, 2025 at 5:00 PM
it's kinda weird that all the software i am expected to use for work are all written by distributed teams, go, python, postgres, linux, chrome, k8s etc
and despite being told "the best teams work in an office together" i don't know of any software i use that's actually written that way
and despite being told "the best teams work in an office together" i don't know of any software i use that's actually written that way
✈️ I was puzzled why so many delays and cancellations so I made the mistake of googling it and now I’m terrified. 😰
October 13, 2025 at 8:36 PM
✈️ I was puzzled why so many delays and cancellations so I made the mistake of googling it and now I’m terrified. 😰