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

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.

Day 96: the margin-trim property

The margin-trim property allows a container element to trim the margins of its children where they adjoin the container’s edges.

Day 95: the color-mix() function

The color-mix() function takes two colors and returns the result of mixing them, in a given color space, by a specified amount.