Nathan Knowler
banner
knowler.dev
Nathan Knowler
@knowler.dev
Building web stuff and design systems. Focused on accessibility, progressive enhancement, and web components. At the intersection of CSS and the Shadow DOM.

he/him
Métis/settler
Treaty 1/wpg

https://knowler.dev
https://sunny.garden/@knowler
Inheritance worries are going to kill this feature.
November 16, 2025 at 12:14 AM
a new reset style appears…

```css
[readonly] {
caret-color: transparent;
}
```
November 14, 2025 at 9:26 PM
conversations with other people 😅
November 14, 2025 at 7:23 PM
Luckily, it doesn't take long, but I imagine I'm gonna set up tmux continuum, so I don't have to keep setting up my sessions constantly.
November 14, 2025 at 4:38 PM
Yes, that’s pretty close. The one bit that I’ve neglected so far is how templating works into this (i.e. the buttons and page markers) and that’s pretty important.
November 13, 2025 at 8:03 PM
I’d have to think more about your specific example, since it’s more complex.
November 13, 2025 at 7:51 PM
So, the new language would set implicit ARIA semantics for elements in the same way that built-in HTML has implicit ARIA semantics. It’d do what we can do with `ElementInternals` today with JS, but with the power of a declarative language like CSS.
November 13, 2025 at 7:51 PM
I think JS need to shift from being “just for interactivity” to being the low-level platform language for the entirety of the web platform. Then we have our three declarative languages for the separate concerns:

HTML: content
CSS: presentation
[new CSS-like lang]: defining semantics/interactivity
November 13, 2025 at 7:33 PM
And while it might seem like, “why not just use CSS?” There’s a lot of historical precedent of why that will never happen (Mozilla tried, iirc). Starting fresh would actually be easier (but not completely fresh since you have an existing syntax that authors/implementors are familiar with).
November 13, 2025 at 7:29 PM
With that said, I don’t think making HTML more capable is the answer, since it’s a dead-end. I think we need a CSS-like language that will serve as a declarative API for defining semantics and behaviour of custom elements and beyond. knowler.dev/blog/declara...
Declarative custom elements should take inspiration from CSS – Nathan Knowler
Why I think it’s worth approaching declarative custom elements the same way CSS solved stylings for HTML.
knowler.dev
November 13, 2025 at 7:25 PM
I’ve been thinking about this exact attribute in recent days. I personally think that while, yes I agree it’s unfortunate the JS is the only way of working with certain ARIA attributes, I do sympathize with the sentiment of separation of concerns.
November 13, 2025 at 7:25 PM
Progressive enhancement means providing equitable experiences and that might mean using a completely different approach to provide content when JavaScript is unavailable for whatever reason. This is where we ought to be using our creativity.
November 13, 2025 at 6:26 PM
Admitting that some components need JS doesn't mean you've given up on progressive enhancement. I actually think there's a lot of laziness in progressive enhancement practice. We want everything to be the same visually, so we cut corners with accessibility creating CSS-only solutions.
November 13, 2025 at 6:26 PM
How do we rebuild credibility? Shed the dogmatism. We don't have to balk at everything and anything that requires JavaScript. Yes, there's a tonne of absurd use of JS that deserve the criticism, but it's a shame when we lose the ability to distinguish between what's absurd and what's justified.
November 13, 2025 at 6:26 PM
yep, I feel like Baseline Newly Available should just be ignored for a year while folks file bug reports.
November 13, 2025 at 3:51 PM
Does Astro have a way of adding something to the `<head>` for all pages? Often people will do the layer setup in a `<style>` tag in there.
November 13, 2025 at 4:47 AM
(there was a lot of complaining)
November 9, 2025 at 12:16 AM