TS-39: HTML

HTML was simple once. In its early days, the language consisted of a few dozen tags and a handful of attributes, and offered little interactivity or multimedia. Since then, the web has grown from a network of interconnected text documents into an application runtime, and HTML has grown with it. It is now just one of several core languages that make up the web platform, alongside CSS, JavaScript, and data interchange formats such as XML and JSON, plus adjacent formats and protocols (SVG, WebM, WebP, WOFF, RSS, Atom, and more). These are specified across hundreds of documents produced by multiple standards bodies, including the World Wide Web Consortium (W3C), the Web Hypertext Application Technology Working Group (WHATWG), the Internet Engineering Task Force (IETF), and the International Organization for Standardization (ISO).

Not all of modern HTML is useful, and not all of it is safe to use. Some elements and attributes are rarely used and add little value. Some are redundant with other standards. For example, the <nav> element from HTML5, the role="navigation" attribute from WAI-ARIA, and typeof="SiteNavigationElement" from the RDFa implementation of Schema.org, all serve the same purpose. And some things are not supported consistently across target browsers and platforms, so cannot be relied upon in production.

This technical standard defines a working standard for HTML. Think of it as a practical subset of the full language, filtered down to the markup that is useful, non-redundant, and reliably supported, for use in production code.