Kilian Valkhof
banner
kilianvalkhof.com
Kilian Valkhof
@kilianvalkhof.com
I build tools for devs and designers: @Polypane.app, FixA11y, Superposition | Electron governance member | He/him
Reposted by Kilian Valkhof
From our archives. Forced color mode explained

1 in 25 site visitors using windows have a (high) contrast mode enabled, overwriting all your sites colors.

Here's how to design, debug and test for it, even if you don't own a Windows device.

polypane.app/blog/forced-...
Forced colors explained: A practical guide | Polypane
Forced colors is a CSS media query that when active radically changes the way your site looks, without any of your input. In this article we'll explore where it…
polypane.app
January 26, 2026 at 3:29 PM
This is great because now Microsoft can block ICC judges from accessing their email but it's local so it's better!
Dutch government: campaign to reduce power usage during peak hours to relieve the power grid. Everyone do their bit!

Also Dutch government: allows MS to build a massive data center because they used trickery to bypass existing rules.

tweakers.net/nieuws/24401...
Microsoft omzeilt verbod met truc en mag grote datacenters bouwen in Amsterdam
Microsoft mag in Amsterdam drie datacenters gaan bouwen, ook al mogen complexen van die grootte in Nederland alleen nog in de Wieringermeer en de Groningse Eemshaven. Microsoft heeft dat voor elkaar g...
tweakers.net
January 26, 2026 at 3:10 PM
I have a blog! That I didn't use for the last 6 months!

So I decided to use it.

...to point you to something I wrote elsewhere.

kilianvalkhof.com/2026/css-htm...
Programming principles for front-end developers | Kilian Valkhof
Like many front-end developers, I don’t have a formal computer science background. I rolled into this discipline as a designer wanting more control over the end product. Because of that, a lot of comp...
kilianvalkhof.com
January 26, 2026 at 2:52 PM
Reposted by Kilian Valkhof
Just a polite reminder that there's only one week left of the @piccalil.li 15% winter discount event!

- @wil.to's JavaScript for Everyone course
- @scott.is’ Mindful Design course
- My Complete CSS course

piccalil.li/courses/
January 26, 2026 at 11:45 AM
Reposted by Kilian Valkhof
Don't be disappointed only 20 In-Person tickets left for #SotB26

2026.stateofthebrowser.com/tickets/
Tickets | State of the Browser
More information and buying options for tickets.
2026.stateofthebrowser.com
January 23, 2026 at 7:07 PM
Thrilled with the responses to this beast of an article that I've gotten so far.

Just wanna throw it out there that it's based on a conference talk and that I would love to give at more conferences (or meetups!). If you're looking for speakers on this topic, please reach out :)
Understanding the fundamentals of CSS layout

When devs say that CSS is hard, they're usually talking about CSS layout. What often gets omitted is that developers are assumed to understand and effectively use CSS without being taught how it works in the first place.

polypane.app/blog/underst...
Understanding the fundamentals of CSS Layout | Polypane
When developers say that CSS is hard, they're usually talking about CSS layout. What often gets omitted though is that developers are assumed to understand and…
polypane.app
January 23, 2026 at 2:15 PM
Turns out, i'm also using it wrong? I guess?

I have a package that has an automated update. I though creating a 2fa bypassing granular token for only my devices IP would allow that to remain working.

But it doesn't. Every npm publish I need to enter my 2fa through web. Am I holding it wrong?
god the new granular token generation form on @npmjs.bsky.social is so extremely broken

- i can't add ipv6 CIDR
- I can't *remove it* either
January 23, 2026 at 2:13 PM
Got a few* minutes to upgrade your fundamental understanding of a core web technology?

* okay 26 minutes
Understanding the fundamentals of CSS layout

When devs say that CSS is hard, they're usually talking about CSS layout. What often gets omitted is that developers are assumed to understand and effectively use CSS without being taught how it works in the first place.

polypane.app/blog/underst...
Understanding the fundamentals of CSS Layout | Polypane
When developers say that CSS is hard, they're usually talking about CSS layout. What often gets omitted though is that developers are assumed to understand and…
polypane.app
January 22, 2026 at 1:30 PM
The European experience of waking up and finding out what fresh hells the Americans have conjured up while you were asleep.
January 22, 2026 at 9:29 AM
god the new granular token generation form on @npmjs.bsky.social is so extremely broken

- i can't add ipv6 CIDR
- I can't *remove it* either
January 22, 2026 at 9:22 AM
A lot of the problems in the world would be solved if all companies that have an update feed were forced to have the default be a reverse chronological order of only things you explicitly followed or subscribed to.

End the algorithm
January 21, 2026 at 6:50 PM
me: "For 2026 I want to write more but shorter posts so the blog gets more updates!"

Also me:
January 21, 2026 at 3:13 PM
Watching the latest @syntax.fm podcast and just shouting " @polypane.app has tools for this!" at my screen for every item.

Will do a proper thread later.

www.youtube.com/watch?v=Ak3-...
These Things Make Your App Feel Like Crap on Mobile
YouTube video by Syntax
www.youtube.com
January 21, 2026 at 2:12 PM
I don't quite understand why A11y companies that are now suddenly switching to becoming "AI-powered platforms" are not ostracized more.
January 21, 2026 at 11:10 AM
I still haven't updated my iOS or macOS to 26 because it looks like a major downgrade across the board.

I don't need any more reasons but if I did, Safari (and so all ios browsers) once again breaking the datalist attribute on iOS would be a pretty good reason.

adactio.com/journal/22360
The datalist element on iOS 26
Once again, Safari has fucked up its implementation.
adactio.com
January 19, 2026 at 12:43 PM
Reposted by Kilian Valkhof
wrote some things I've been thinking about ai
... and it ended up feeling very personal

roe.dev/blog/the-go...
The golden thread
AI can serve us as a force multiplier, augmenting our own agency and making the most of our own effort, hard work and value. Not by replacing it.
roe.dev
January 14, 2026 at 11:09 PM
There are three devices I use daily.

A macbook on Sequoia. (Maintained, but outdated)
A linux NUC on ubuntu 23.10 (Unmaintained) with a niche WM
A Lenovo on Windows 11 (Fully maintained, up-to-date, top of line machine)

Take a guess which one gives me the most grief.
January 15, 2026 at 8:16 AM
Reposted by Kilian Valkhof
I wrote something because I an angry.
#imagine
letorey.co.uk/leets/imagine/
Imagine | letorey.co.uk
In support of the hunger strikers
letorey.co.uk
January 14, 2026 at 3:37 PM
Filed under "You can just add things".
Someone notified us that our security.txt file was expired, so in the next update Polypane will check the date and give you a warning if it's in the past. ✅
January 14, 2026 at 11:18 AM
Reposted by Kilian Valkhof
This week's Web Weekly is about to hit all the inboxes in just a little bit! As always, it's jam-packed. 🎉

webweekly.email/archive/web-...

If you're into web dev news close to the platform, you should check it out!
January 13, 2026 at 2:28 PM
Make use of this!!
January 13, 2026 at 3:12 PM
Reposted by Kilian Valkhof
I'm doing another Deep Dive On Accessibility Testing workshop with my friends at @smashingconf.com, starting Monday 19th!

smashingconf.com/online-works...

Using this link you'll get a special discount: ti.to/smashingmaga...
Deep Dive On Accessibility Testing — Online Workshops
Manuel Matuzović guides you through the first steps and takes a deep dive into automated and manual accessibility testing.
smashingconf.com
January 13, 2026 at 12:21 PM
Reposted by Kilian Valkhof
Something I did a while back but just noticed I never linked to it from a11y-tools home page: a GitHub repo for PolyPane workspaces geared to accessibility testing:

👉 github.com/lloydi/PolyP...

You might not be aware of these and find them useful 😊

#testing #tools #accessibility #a11y #polypane
January 13, 2026 at 9:35 AM