HTML is actually a programming language. Fight me

Rate this post


Learning any programming language means learning how to debug it. But an ill-formed command in Python usually returns an error message that prevents the code from executing, rather than something that fails brilliantly but monstrously, ahead of its creators’ intentions. With HTML, we’re all Dr. Frankenstein.

One of my all time favorite websites is Embroidery Troubleshooting Guide. These days it is 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, small business website. But when you look down, you immediately notice something strange about it. The text, all center-aligned in alternating red and blue Arial, gradually grows larger and larger, with phrases forced to wrap lines or reach the edge mid-word, filling the screen like Alice trying to slip through smaller and smaller doors into Wonderland.

When you review the source code (do any other programs make it as easy to review the source code as a website?), you’ll quickly discover what went wrong. Each line of centered text begins with

or

title tags that never close. Each title tag—which establishes only relative size, not absolute, part of the semantic richness of the web’s flexible grammar—builds on the last, creating progressively larger nesting dolls. A tag meant to define a textual hierarchy runs rampant, creating chaos. The fact that the words themselves are about how and why threads can break makes it poetry.

The Embroidery Troubleshooting Guide would be a clever enough piece of open concept art on its own. But by viewing the source, downloading the file, and replacing the instructions for fixing common sewing problems with text you like, you can make this artwork your own. I like to insert my favorite poetry by decontextualizing it and forcing myself to read it with new eyes.

“Broken” sites like these reverse the great achievement of semantic HTML. As Semantic HTML has evolved, it increasingly separates structure from presentation: Instead we use tags that strictly indicate that the text should be presented in italics accent identification tags (or tags for book or movie titles, etc.). These items can then be presented as italics on a computer screen, but read with a different intonation by a screen reader. The Embroidery Troubleshooting Guide hijacks a semantic tag and makes it perform something unexpected. The same building blocks that allow a website to display responsively on a small phone or a huge TV screen can make a website fundamentally undisplayable. This is delightful.

I appreciate the utility of content management systems and complex sites that generate HTML dynamically, but there is joy in building sites from simple HTML files that you can edit by hand. I still edit my own website this way, laying it out so I can see every tag, tab, and paragraph break. I even like to edit my own e-books, turning PDF files into well-formatted HTML-based EPUB files that are never published to anyone: my personal library of stand-alone websites. During the height of the pandemic, editing these files and their stylesheets by hand was a pain in the ass.

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

What other programmers might say dismissively is something HTML lovers embrace: Anyone can do it. Whether we use complex frameworks or very simple tools, the promise of HTML is that we can create, create, code and do everything we want.

 
Report

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *