Semantic HTML is the use of HTML markup to reinforce the semantics, or meaning, of the information in webpages rather than merely to define its presentation or look. Semantic HTML is processed by regular web browsers as well as by many other user agents. CSS is used to suggest its presentation to human users.
As an example, recent HTML standards discourage use of the tag
<i> (italic, a typeface) in preference of more accurate tags such as
<em> (emphasis); the CSS stylesheet should then specify whether emphasis is denoted by an italic font, a bold font, underlining, slower or louder audible speech etc. This is because italics are used for purposes other than emphasis, such as citing a source; for this, HTML 4 provides the tag
<cite>. Another use for italics is foreign phrases or loanwords; web designers may use built-in XHTML language attributes or specify their own semantic markup by choosing appropriate names for the
class attribute values of HTML elements (e.g.
class="loanword"). Marking emphasis, citations and loanwords in different ways makes it easier for web agents such as search engines and other software to ascertain the significance of the text.
HTML has included semantic markup since its inception. In an HTML document, the author may, among other things, "start with a title; add headings and paragraphs; add emphasis to [the] text; add images; add links to other pages; [and] use various kinds of lists".
At one time, HTML also included presentational markup such as
<center> tags. There are also the semantically neutral span and div tags. Since the late 1990s when Cascading Style Sheets were beginning to work in most browsers, web authors have been encouraged to avoid the use of presentational HTML markup with a view to the separation of presentation and content.
In 2001 Tim Berners-Lee participated in a discussion of the Semantic Web, where it was presented that intelligent software 'agents' might one day automatically trawl the Web and find, filter and correlate previously unrelated, published facts for the benefit of end users. Such agents are not commonplace even now, but some of the ideas of Web 2.0, mashups and price comparison websites may be coming close. The main difference between these web application hybrids and Berners-Lee's semantic agents lies in the fact that the current aggregation and hybridisation of information is usually designed in by web developers, who already know the web locations and the API semantics of the specific data they wish to mash, compare and combine.
An important type of web agent that does crawl and read web pages automatically, without prior knowledge of what it might find, is the Web crawler or search-engine spider. These software agents are dependent on the semantic clarity of web pages they find as they use various techniques and algorithms to read and index millions of web pages a day and provide web users with search facilities.
In order for search-engine spiders to be able to rate the significance of pieces of text they find in HTML documents, and also for those creating mashups and other hybrids, as well as for more automated agents as they are developed, the semantic structures that exist in HTML need to be widely and uniformly applied to bring out the meaning of published text.
While the true semantic web may depend on complex RDF ontologies and metadata, every HTML document makes its contribution to the meaningfulness of the Web by the correct use of headings, lists, titles and other semantic markup wherever possible. This "plain" use of HTML has been called "Plain Old Semantic HTML" or POSH. The correct use of Web 2.0 'tagging' creates folksonomies that may be equally or even more meaningful to many. HTML 5 introduced new semantic tags such as
Presentational markup tags are not deprecated in current HTML (4.01) and XHTML recommendations, but were recommended against. In HTML 5 some of those elements, such as
b are still specified as their meaning has been clearly defined "as to be stylistically offset from the normal prose without conveying any extra importance".
In cases where a document requires more precise semantics than those expressed in HTML alone, fragments of the document may be enclosed within
div elements with meaningful class names such as
<span class="author"> and
<div class="invoice">. Where these class names are also a fragment identifier within a schema or ontology, they may link to a more defined meaning. Microformats formalise this approach to semantics in HTML.
One important restriction of this approach is that such markup based on element inclusion must meet the well-formedness conditions. As these documents are broadly tree-structured, this means that only balanced fragments from a sub-tree can be marked up in this way. A means of marking-up any arbitrary section of HTML would require a mechanism independent of the markup structure itself, such as XPointer.
Good semantic HTML also improves the accessibility of web documents (see also Web Content Accessibility Guidelines). For example, when a screen reader or audio browser can correctly ascertain the structure of a document, it will not waste the visually impaired user's time by reading out repeated or irrelevant information when it has been marked up correctly.
Google 'rich snippets'
In 2010, Google specified three forms of structured metadata that their systems will use to find structured semantic content within webpages. Such information, when related to reviews, people profiles, business listings, and events will be used by Google to enhance the 'snippet', or short piece of quoted text that is shown when the page appears in search listings. Google specifies that that data may be given using microdata, microformats or RDFa. Microdata is specified inside
itemprop attributes added to existing HTML elements; microformat keywords are added inside
class attributes as discussed above; and RDFa relies on
property attributes added to existing elements.
- "Alignment, font styles, and horizontal rules in HTML documents". W3C. 2000, revised 2002.
- "HTML 4.01 Specification: Phrase elements: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ABBR, and ACRONYM". W3C. 1999. Retrieved 2009-10-18.
- "XHTML 1.0 The Extensible HyperText Markup Language (Second Edition): The lang and xml:lang Attributes". W3C. 2000, revised 2002. Retrieved 2009-10-18.
- Berners-Lee, Tim; Fischetti, Mark (2000). Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web by Its Inventor. San Francisco: Harper. ISBN 978-0062515872.
- Raggett, Dave (24 April 2005). "Getting started with HTML". World Wide Web Consortium. Retrieved 8 December 2010.
- Raggett, Dave (8 April 2002). "Adding a touch of style". World Wide Web Consortium. Retrieved 8 December 2010. This article notes that presentational HTML markup may be useful when targeting browsers "before Netscape 4.0 and Internet Explorer 4.0" which were both released in 1997.
- Berners-Lee, Tim; Hendler, James; Lassila, Ora (2001). "The Semantic Web". Scientific American. Retrieved 2009-10-02.
- Shadbolt, Nigel; Berners-Lee, Tim; Hall, Wendy (May/June 2006). "The Semantic Web Revisited" (PDF). IEEE Intelligent Systems. Retrieved 8 December 2010.
- "Plain Old Semantic HTML (POSH)". Microformats Wiki. microformats community. April 20, 2007. Retrieved May 4, 2013.
- "HTML5". World Wide Web Consortium. Section: 4.6.17 The i element.
- "HTML5". World Wide Web Consortium. Section: 4.6.18 The b element.
- These class names are at best suggestive rather than formally meaningful, unless they are previously shared between both creator and consumer of the content.
- "Well-Formed XML Documents". Extensible Markup Language (XML) 1.1. W3C.
- "Rich snippets". Webmaster Central. Google. Retrieved 26 May 2010.
- "Businesses and organizations - About organization information". Webmaster Central. Google. Retrieved 26 May 2010.