
HTML Is Actually a Programming Language. Fight Me
Learning any programming language is learning how to debug it. But malformed commands in Python often return error messages that cause the code to fail to run, rather than failing brilliantly but horribly beyond the intent of its creator. With HTML, we are all Dr. Frankenstein.
One of my all-time favorite websites is Embroidery Troubleshooting Guide. These days only via Internet Archiveunless (like me) you have a local copy. From the top, it looks like a typical, albeit somewhat old-fashioned, small business website. But when you look down, you immediately notice something strange. The text is all center-aligned, in an alternating red and blue Arial font, and gradually gets larger and larger, with phrases forced to wrap or reach the edges in the middle of words, filling the screen like Alice trying to squeeze through ever smaller spaces in Wonderland The door is the same.
When you look at the source code (is there any other program that can look at the source code as easily as a website?), you’ll quickly see what’s wrong. Each line of centered text begins with
or
Title tag that never closes. Each header tag (which only establishes relative size, not absolute size, is part of the semantic richness of the web’s flexible syntax) builds on the last, creating progressively larger nested dolls. Tags designed to define text hierarchy get out of control and create confusion. The fact that the words themselves are about how and why threads break makes it poetic.
On its own, the Embroidery Troubleshooting Guide would be a clever enough piece of concept art. But by viewing the source code, downloading the file, and replacing the instructions for solving common sewing problems with any text you like, you can make your own artwork. I like to put in my favorite poem, take it out of context, and force myself to read it with new eyes.
“Broken” sites like this undermine the great achievements of semantic HTML. As it evolved, Semantic HTML gradually separated structure from presentation: instead of labels, which strictly specify text in italics, we use tags to identify important points (or Tags for book or movie titles, etc.). These elements can then appear in italics on a computer screen, but read in a different intonation by a screen reader. Embroidery troubleshooting guide hijacks semantic tags and renders them unexpected. The same building blocks that allow a single website to display responsively on a small mobile phone or a giant TV screen may render the website fundamentally undisplayable. It’s really delightful.
I appreciate the usefulness of content management systems and complex websites that dynamically generate HTML, but it’s also fun to build websites from simple HTML files that can be manually edited. I still edit my own sites this way, organizing them so that I can see every tag, section, and paragraph break. I even enjoy editing my own e-books, converting PDFs into well-formatted HTML-based EPUB files that will never be published to anyone: my own private library of independent websites. During the height of the pandemic, manually editing these files and their stylesheets was a comfort.
Ultimately, even though HTML has become the domain of professionals, it cannot be regulated. This is why so many programmers are so anxious about the web, sometimes pathetically desperate to maintain the all-too-real walls they build between software engineers and web developers. But people who write HTML know that hierarchies are designed to be broken. All it takes is a tab not closing the way you expect.
Other programmers might say this dismissively, but HTML enthusiasts embrace it: Anyone can do it. Whether we use complex frameworks or very simple tools, the promise of HTML is that we can build, author, code, and Do Anything we want.
2025-01-06 11:00:00