Ambrose Li

The state of HTML email at the end of 2023

It’s the end of 2023, literally the last day for a piece of equipment I need to be on sale. So I took advantage of the sale (really a “we pay the tax” event) and ordered the thing.

As usual, I got a confirmation email for my purchase. But what did I see?

<% if (RowCount(@setOfProductServiceSkusCount) >= 1) { %>

This came from a major electronics retailer; you’d think they’d be more technically competent. But no, in their email they’ve got leftover directives (these aren’t even proper processing instructions, technically not even proper directives) that’s not been processed by their backend.

Guys, this is an accessibility bug. Email clients are not browsers; even with browsers you aren’t supposed to leave code like this hanging around. And definitely not in emails you send out, or you risk the code being read aloud by a screen reader.