This document will delve into a controversial topic: whether or not to write email in HTML, the language web pages are written in. Email is traditionally written in flat text, without any sort of markup; however, this tradition limits the usefulness and power of email, and hence, limits the power of people to communicate effectively.
The Bad Rap
HTML email gets a bad wrap. When most people think of HTML email, they associate it with spam, ugly messages, and security vulnerabilities. However, properly done, this is now what HTML provides; it provides a rich set of abilities to mark text with meaning and structure.
What HTML provides
HTML is the language of the web; it is the source behind most every webpage. HTML is at its heart a semantic markup language. That is, it is a language that gives meaning to other text. For example, it can give emphasis to part of a statement:
Semantic markup is <em>such</em> a good thing.
Which your user-agent (web-browser, most likely, in your case) renders as:
Semantic markup is such a good thing.
HTML provides the means for a wide variety of markup, including, but not limited to, lists of information, emphasis of different levels, tabular information, referencing, and quoting.
What HTML does not do
Contrary to popular belief, pure HTML says “what stuff is” (providing semantic meaning), not how to display it. The thinking behind this is that the end user should decide how something should be displayed; each of us should be capable of interpreting information given to us.
As an obvious example of what I mean, consider this. A blind person takes in information given to him/her in a different manner than those of us who have the ability to see. A blind person does not see italics, bolded text, or other visual markups. A blind person, though, is still capable of distinguishing emphasized text, if it is marked as such; a text-to-speech system would audibly emphasize a part of text.
The failings of Flat Text
Flat text is what you normally see in life. Flat text is that without meaning; it has no depth or real structure.
People often try to put meaning into flat text by employing textual “tricks” indicating emphasis as such: “The Simpsons is a *really* good show.” This is a meager attempt at semantic markup; however, it does not abide by any standard, and only after seeing it a few times might one understand what meaning one is trying to get across.
Flat text also does not provide structure. Without structure, it is hard to deal with things in an automated fashion. And where might automation be useful? Take for instance email signatures: many people have little quotes that they append to each email they send. With the proper automation, one, if one chose so, could tell one’s email client to not display these signatures. Without structure, however, this proves very difficult.
Flat text and HTML are very different on how they decide who in the end decides how information is displayed.
Flat text, being entirely visual, relies entirely on the author to say how something will look. This is the equivalent of someone saying “Everything I write must be shown in green text.” Clearly, this is absurd; the reader should decide how something given to him/her is displayed.
HTML, on the other hand, takes a different approach, giving the power of how to display information to the reader. Using Cascading Style Sheets (CSS), the reader can choose how much paragraphs will be indented, which font to choose, the size of the font, and whether or not to use italics.
Many people think that HTML is about deciding how things will look or act. Many email clients that handle HTML messages glady accept this posture, and deal with HTML in the worst way, letting the originating author mandate how something will look, leaving the power out of the hands of the user.
Properly done, however, a good email client would only recognize a subset of HTML that is appropriate for email messages. An example of such a subset is XHTML-Basic, which is essentially a subset of HTML designed for portable, small devices (e.g., hand-held devices). XHTML-Basic concentrates on providing a rich set of semantic meaning, but takes out lot of things that are inappropriate to expect a hand-held device to deal with. These things it takes out of HTML are often the things one doesn’t expect in something as simple as a nested tables.
What I’m asking
It’s too late to ask the entire world to switch over to using an HTML-style of email; the current flat text system is too ingrained. Maybe if we come up with a new new long-message system like email in the future we should think about having it handle semantically marked-up text. The one key thing I’m trying to get across however is that people should realize HTML should be blaming the clients, not the author of messages in HTML. The clients (and the users, in the end) are the one that decide how to handle HTML. The author (hopefully), is simply trying to get across his information in the most structured, semantic way.
(2002-09-13) I should note that for the past 8 months I’ve been blocking HTML-only messages coming through my mailserver. These are 99% spam; this measure is by far my best anti-spam technique. However, I haven’t yet decided how I resolve what I’ve written in this essay with my actions.