HTML Does Not Describe Page Layout

When you’re working with a word processor or page layout program, styles are not just named elements of a page; they also include formatting information such as the font size and style, indentation, underlining, and so on. So, when you write some text that’s sup- posed to be a heading, you can apply the Heading style to it, and the program automatically formats that paragraph for you in the correct style.

HTML doesn’t go this far. For the most part, the HTML specification doesn’t say anything about how a page looks when it’s viewed. HTML tags just indicate that an element is a heading or a list; they say nothing about how that heading or list is to be formatted. The only thing you have to worry about is marking which section is supposed to be a heading, not how that heading should look.

Web browsers, in addition to providing the networking functions to retrieve pages from the Web, double as HTML formatters. When you read an HTML page into a browser such as Firefox, Chrome, or Internet Explorer, the browser interprets, or parses, the HTML tags and formats the text and images on the screen. The browser has mappings between the names of page elements and actual styles on the screen; for example, headings might appear in a larger font than the text on the rest of the page. The browser also wraps all the text so that it fits into the current width of the window.

Different browsers running on diverse platforms style elements differently. For the most part, browsers have standardized on the styles associated with the various HTML tags, but there are some cases where they differ. Some non-smartphones display web pages very differently than desktop and smartphone browsers; for example, they might not provide support for multiple fonts or even italics on a web page. More importantly, browsers intended to be accessible to the disabled, like screen readers for the visually impaired, use a radically different set of “styles” to enable users to access web pages. In these cases, the idea that HTML describes the structure of a document rather than its appearance is crucially important.