Wednesday, January 8, 2025

HTML is actually a programming language. Fight with me

Share

To learn any programming language, you need to learn how to debug it. However, a poorly formed Python command usually returns an error message that prevents the code from executing, rather than something that fails brilliantly yet horribly beyond its creators’ intentions. Thanks to HTML, we are all Doctor Frankenstein.

One of my all-time favorite websites is the Embroidery Troubleshooting Guide. Currently only available via the Internet Archiveunless (like me) you have a local copy. At the top, it looks like a typical, if somewhat old-fashioned, diminutive business website. But when you look down, you immediately notice something strange. The text, centered in alternating red and blue Arial, gradually becomes larger and larger, with phrases forced to wrap lines or reach the edge mid-word, filling the screen like Alice trying to squeeze through an increasingly smaller door in Wonderland.

By reviewing the source code (have other programs made viewing the source as straightforward as a website?), you’ll quickly discover what went wrong. Each line of centered text begins with

Or

header tags that never close. Each header tag – which specifies only relative size, not absolute size, part of the semantic richness of the web’s malleable grammar – builds on the last one, creating increasingly larger nesting dolls. The tag intended to define text hierarchy goes berserk, creating chaos. The fact that the words themselves speak to how and why the threads can break is what makes it poetic.

An embroidery troubleshooting guide would be a clever enough piece of found conceptual art on its own. However, by browsing the source, downloading the file, and replacing the instructions for solving common sewing problems with free text, you can create your own graphics. I like to put my favorite poetry in them, decontextualize it and force myself to read it with recent eyes.

“Broken” sites like these turn the great achievement of semantic HTML upside down. As semantic HTML developed, it increasingly separated structure from presentation: Instead we exploit tags that strictly specify that the text is to be written in italics tags identifying emphasis (or book or movie title tags, etc.). These elements can then be presented on a computer screen in italics, but a screen reader may read them with a different intonation. The embroidery troubleshooting guide takes a semantic tag and makes it represent something unexpected. The same elements that make it possible for a single website to display responsively on a diminutive phone or a huge TV screen can make a website virtually impossible to display. This is great.

I appreciate the usefulness of content management systems and intricate sites that dynamically generate HTML, but creating sites from uncomplicated HTML files that can be edited by hand is fun. I still edit my own website this way, organizing it so I can see every tag, section, and paragraph break. I even love editing my own e-books, turning PDF files into nicely formatted HTML EPUB files that are never published to anyone: my private library of freelance websites. During the height of the pandemic, manually editing these files and their stylesheets was a balm.

Ultimately, even if HTML has become the domain of professionals, it cannot be protected. This is what makes so many developers so anxious about the web, and sometimes pathetically desperate to maintain the all-too-real walls they have built between software engineers and web developers. But people who write HTML know that hierarchies are designed to be blown up. All you need is a tag that doesn’t close where you’d expect it to.

What other developers might say dismissively is something HTML lovers will appreciate: Anyone can do it. Whether we exploit intricate frameworks or very uncomplicated tools, HTML promises that we can build, create, code and Down whatever we want.

Latest Posts

More News