HTML Is Actually a Programming Language. Fight Me

Spread the love

Learning any programming language requires debugging. But a malformed command in Python usually returns an error message that prevents the code from running, not something that exceeds its creators’ intent and fails spectacularly yet horribly. With HTML, we’re all Dr. Frankenstein.

One of my all-time favorite websites is the Embroidery Troubleshooting Guide. It is only available today via Internet ArchiveUnless (like me) you have a local copy. At the top, it looks like a typical, if somewhat outdated, small-business website. But when you look down, you immediately notice something strange about it. The text, alternately center-aligned in red and blue Arial, gradually grows larger and larger, sentences are forced to wrap lines or reach mid-words at the edges, filling the screen like Alice trying to squeeze through smaller and smaller doors in Wonderland.

When you look at the source code (does any other program make it as easy to view the source as a website?), you’ll quickly find out what went wrong. Begins with each line of centered text

or

Header tags that never close. Each header tag—which establishes only a relative size, not a complete, part of the semantic richness of the Web’s flexible grammar—builds on the end, creating progressively larger nesting dolls. The tag designed to define the text sequence creates confusion. How and why the thread can break is what makes words poetry.

By itself, the Embroidery Troubleshooting Guide would be a clever enough piece of conceptual art to be found. But you can make the artwork your own by viewing the source, downloading the file, and replacing the instructions with any text you like to solve common sewing problems. I want to put in my favorite poem, tear it apart and force myself to read it with new eyes.

“Broken” sites like this highlight the great achievement of semantic HTML. As it evolved, semantic HTML increasingly separated structure from representation: instead tag, which strictly specifies that a text should be rendered in italics, we use tag to identify emphasis (or tags for book or movie titles etc.). These elements may be represented as italics on a computer screen but read with a different tone by a screen reader. Embroidery Troubleshooting Guide Hijacks a semantic tag and makes it represent something unexpected. The same building blocks that allow a website to display responsively on a small phone or large television screen can make a website fundamentally unviewable. This is delightful.

I appreciate the utility of content management systems and complex sites that dynamically generate HTML, but there is a joy in building sites from simple HTML files that you can edit by hand. I still edit my own website this way, keeping it tidy so I can see every tag, section and paragraph break. I even like to edit my own ebooks, turning PDFs into beautifully formatted HTML-based EPUB files that are never published to anyone: my own personal library of self-contained websites. During the height of the pandemic, editing these files and their style sheets by hand was a pain in the ass.

Ultimately, even as HTML becomes the province of professionals, it cannot be gatekeepers. This is what makes many programmers so anxious about the web and sometimes pathetically desperate to maintain the all-too-real walls that have been built between software engineers and web developers. But anyone who writes HTML knows that hierarchies were created to be blown up. It takes a tag that doesn’t stop where you expect it to.

What other programmers might say dismissively is something that 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 to do what we want

Leave a Reply

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