A blog about web development, HTML, CSS, JavaScript, and web accessibility.

details/summary inconsistencies

Scott O'Hara wrote a fantastic blog post about the details and summary elements last year. He explains that there are a lot of oddities and inconsistencies, and he backs his statements with detailed testing.

Invalid at computed-value time

I rewatched Lea Verous’s talk about custom properties recently and learned something I missed the first time I watched it.

It's very likely that…

I repeatedly see certain bad practices in HTML that ironically contain clues for implementing them properly in their class names or in the way they're built. In this evergreen post, I collect them.

50.1% empty links

The new WebAim 1 Million report was recently published, and the results are sobering. Compared to the previous year, 0.5% fewer websites contained automatically detectable accessibility issues, but the total number of erroneous websites is still 96.3%.

My CSS wish list

I know I’m late to the party, but there are a few things on my CSS wish list I haven’t seen on others, so I thought I’d share.

Day 100: it's over, or is it!?

OMG, I did it, day 100! 4 months and 16 days ago I published the first post and then I wrote another post every workday for 138 days straight without missing a single day. In this final post, I want to do a quick recap and give an outlook for what's coming next.

Why I'm not the biggest fan of Single Page Applications

Sometimes it seems like accessibility experts and other web professionals hate JavaScript. This might be true for some, but most understand that JavaScript can be useful for improving UX and even accessibility. JavaScript solutions are often more accessible than their pure HTML or CSS counterparts.

Day 99: native nesting

Nesting in CSS is coming soon! For me personally not the killer feature, at least compared to cascade layers or container queries, but still exciting. Let’s see how it works.

Day 98: oklab() and oklch()

oklab() and oklch() are okay versions of lab() and lch() because lab() and lch() are not okay.

Day 97: animating grids

It’s possible to animate gap, grid-template-columns, and grid-template-rows.