The Development of HTML

HTML is the markup language used to create World Wide Web documents. Although official HTML specifications have been in development for some time, individual Web browsers may recognize proprietary tags that are not included in the specifications. When most people ask for a list of "all the HTML tags" they generally want to know which tags they can include in their pages with reasonable certainty that people viewing those pages will see what the author wants. The Bare Bones Guide to HTML is designed to meet this need. I have attempted to include all of the tags supported by major browsers today, but there are a number of nuances that make this an inherently imprecise process.

The official standards body for HTML is the World Wide Web Consortium (W3C), which is affiliated with the Internet Engineering Task Force (IETF). The W3C has issued several versions of the HTML specification, including HTML 2.0, HTML 3.0, and most recently, HTML 3.2. At the same time, however, browser manufacturers, such as Netscape and Microsoft, have often developed their own "extensions" to HTML outside of the standards process and incorporated them into their browsers. In some cases, such as Netscape's <CENTER> tag, these extensions have become de facto standards adopted by other browser manufacturers.

HTML 2.0, which codified the current state of HTML as of June, 1994, is the baseline standard that all browsers today -- including text-based browsers -- should support. HTML 2.0 reflects the original conception of HTML as a device-independent markup language for displaying the organization of information, rather than specifying exactly how pages should be displayed. If you want to be sure that all users will be able to view everything on your pages, use only HTML 2.0 tags.

The HTML 3.0 draft, issued in 1995, attempted to build upon HTML 2.0 with the addition of features such as tables and greater control of text flow around graphics. Although some HTML 3.0 features were widely adopted by browser developers, many were not. In some cases, alternative approaches implemented by browser developers became more widespread than the "official" tags. The HTML 3.0 draft has now expired, and is therefore no longer an official standard.

In May 1996, W3C released the HTML 3.2 draft, which was designed to reflect and standardize generally-accepted practices. Therefore, HTML 3.2 includes the HTML 3.0 tags that were adopted by browser developers such as Netscape and Microsoft, as well as widely-supported extensions to HTML. In its Position Statement on HTML, W3C recommends that information providers use the HTML 3.2 specification. Therefore, version 3.0 of the Bare Bones Guide to HTML includes all the HTML 3.2 tags. The current versions of major browsers should support all, or virtually all, these tags.

There are also some Netscape and Microsoft extensions to HTML that are not part of the HTML 3.2 draft, either because they are less widely-used, or because they were implemented after the HTML 3.2 specification was written. Because Netscape Navigator was among the first browsers to support certain HTML 3.0 features, and Netscape controls something like 70% of the browser market, many people erroneously believe that all the Netscape extensions (including tags such as <BLINK> and features such as Frames) are part of HTML 3.0 or HTML 3.2.

In deciding whether to use any of the tags listed as Netscape or Microsoft extensions, remember that people using other browsers may not see your pages rendered the way you intend. You should also take into account that there is no guarantee non-standard tags will be supported by future browsers. So it's up to you whether to use the Netscape and Microsoft tags. Many people have strong feelings about whether or not you should use tags that are not part of the official HTML standard. My view is that as long as you understand the difference, you should do whatever works best for you and for your audience. The Bare Bones Guide to HTML reflects this approach. The Guide is not an official specification, but it should give you an idea of which tags are widely implemented and which standard they conform to.



Prologue

The prologue item should go at the very beginning of your file. The prologue is not required for browsers to recognize an HTML document, although this can provide browsers and people reading your HTML source file with an indication of which tags a includes. The exact syntax of the prologue varies depending on which version of the HTML DTD (document type definition) you are using. I've included the prologue to use if your document conforms to HTML 3.2; don't use this if you include Netscape or Microsoft extensions.



<XMP>

The current HTML specification recommends against using the <XMP> tag, because it causes "a number of unfortunate interactions with processing techniques and tends to be used and implemented inconsistently." The <PRE> tag should be used instead.



<BLOCKQUOTE>

The suggested rendering of the <BLOCKQUOTE> tag is to indent the left and right margins, and this tag is frequently used to achieve indenting (which HTML 2.0 does not support directly) rather than for quoted material. Be aware that not all browsers display the tag this way, although more browsers seem to be indenting it as time goes on.



Alignment Tags

The HTML 3.2 draft supports both the alignment attributes for paragraph and header tags, and the <CENTER> tag originally developed by Netscape. These days, the main area in which <CENTER> is necessary is in situations (such as centering a table in Netscape Navigator), where a browser doesn't recognize the alignment attributes.

The biggest problem with <CENTER> is that it implies a paragraph break around the centered material, but browsers that don't recognize the <CENTER> tag will simply ignore it, and thus not render the document the way the author intended it. As more browsers today recognize the alignment tags, using <P ALIGN=CENTER></P> will increasingly be preferable to the nonstandard <CENTER> tag.



The <P> Tag

Most HTML tags are "containers;" they have a beginning and an ending tag, with text in the middle (e.g. <B>This is in boldface</B>). The <P> tag, by contrast, was originally defined as a standalone tag that marked the space between paragraphs. The problem with this approach is that it didn't allow for features such as centering and right-aligned paragraphs, because there was no way to mark the beginning and end of the text to be aligned. Consequently, the HTML 3.0 proposal from its early days has defined <P> as a container tag, so that paragraphs should be represented as <P>Here's some text</P>, and the opening <P> tag can contain alignment and other attributes. The closing </P> tag can often be left off when you are not setting the alignment of a paragraph, although using it may make the boundaries of paragraphs cleaner in your HTML source file.



Color Tags

Color values are entered in the form of a hexadecimal triplet specifying red, green, and blue values. My WWW Help Page has a section of links to utilities that can generate these codes for you.



Table Tags

There is still some debate about the table tags, especially Netscape's method of allowing table and column width to be specified as a percentage in addition to an absolute number of pixels. For the most part, however, the implementation of tables is now consistent across the major browsers.


Copyright © 1995, 1996 Kevin Werbach.
Last updated August 20, 1996.