All The Meanings of “head” in HTML

The word “head” takes on various meanings in HTML. For example, as the head of a document, the head of a table, or the heading of a section. There are other uses.

Inside an HTML Tag

Within a tag, head appears—or is implied—in <head>, <header>, <thead>, <th>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, and <hgroup>, which appeared in HTML5 and is deprecated in HTML5.1.

The <head> Element

At the top of your HTML’s source code, as the first descendant of the <html> element, is the <head> element. This is defined as the head section of your source code.

<!DOCTYPE html>
<html>
   <head>
      <!-- The head section of the source document -->
   </head>
   <body>
   </body>
</html>

The <header> Element

Placed at the top of a section, or, more typically, at the top of the <body> element, the <header> element defines a header of a section, which typically contains a heading.

For example:

<section>
   <header>
      <h1>Heading of Section</h1>
      <nav>
         <ul>
            <li>Thing one</li>
         </ul>
      </nav>
   </header>
</section>
<header>
   <nav>
      <ul>
         <li>Home</li>
         <li>About</li>
      </ul>
   </nav>
</header>
<main>
</main>
<footer>
</footer>

The <thead> Element

Short for table heading group, the <thead> element encompasses a block of rows that defines a table’s headings or labels. As such, it’s referred to as the table’s heading. In the following example, First Name and Last Name are in the table’s heading.

<table>
   <thead>
      <tr>
         <th>First Name</th><th>Last Name</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <td>Arvo</td><td>Pärt</td>
      </tr>
   </tbody>
</table>

Note: Placing a table immediately after a heading doesn’t make the heading the table’s heading. Consider the following:

<h1>Composers</h1>
<table>
   <thead>
      <tr>
         <th>First Name</th><th>Last Name</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <td>Arvo</td><td>Pärt</td>
      </tr>
   </tbody>
</table>

Composers is the section’s heading, not the table’s heading. As mentioned before, First Name and Last Name are in the table’s heading.

The <th> Element

Short for table header cell, the <th> element represents a heading cell, often within a table’s heading section (<thead>), that defines the heading of a column or a row. Thus, this element represents a column heading or a row heading.

Reconsider the previous example:

<table>
   <thead>
      <tr>
         <th>First Name</th><th>Last Name</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <td>Arvo</td><td>Pärt</td>
      </tr>
   </tbody>
</table>

First Name is a column heading, as is Last Name. Now, consider the following example, where the table is defined vertically, not horizontally:

<table>
   <tbody>
      <tr>
         <th>First Name</th><td>Arvo</td>
      </tr>
      <tr>
         <th>Last Name</th><td>Pärt</td>
      </tr>
   </tbody>
</table>

First Name and Last Name are now row headings.

As an Attribute

The keyword “head” also appears within the attribute headers. See the second and third rows below. (headers is useful when marking up accessible tables read by screen readers.) Here’s an example:

<table>
   <thead>
      <tr>
         <th colspan="3" id="apples">Apples</th>
         <th colspan="3" id="pears">Pears</th>
      </tr>
      <tr>
         <th headers="apples" id="braeburn">Braeburn</th>
         <th headers="apples" id="gala" >Gala</th>
         <th headers="apples" id="fuji">Fuji</th>
         <th headers="pears" id="bosc">Bosc</th>
         <th headers="pears" id="starkrimson">Starkrimson</th>
         <th headers="pears" id="forelle">Forelle</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <td headers="apples braeburn">$4.00</td>
         <td headers="apples gala">$3.00</td>
         <td headers="apples fuji">$2.00</td>
         <td headers="pears bosc">$1.00</td>
         <td headers="pears starkrimson">$4.00</td>
         <td headers="pears forelle">$3.00</td>
      </tr>
   </tbody>
</table>

The Outlining Algorithm

In each of the six tags ending in a number (<h1>...<h6>), the “h” stands for “heading,” with each incrementally larger number representing a deeper element in the outlining algorithm, or outlining structure. An example:

<h1>New York City Neighborhoods</h1>
<h2>Queens</h2>
<h3>Forest Hills</h3>
<h2>Brooklyn</h2>
<h3>Red Hook</h3>
<h2>The Bronx</h2>
<h3>Parkchester</h3>
<h2>Manhattan</h2>
<h2>East Village</h2>
<h2>Staten Island</h2>
<h3>St George</h3>

In closing, here’s a full document combining each of the previous examples.

<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <title>HTML5 Template</title>
   </head>
   <body>
      <!-- A header section -->
      <header>
         <!-- A DEPRECATED heading group -->
         <hgroup>
            <!-- A level one heading -->
            <h1>Headings</h1>
            <!-- A level two heading acting as a sub header -->
            <h2>All About Them</h2>
         </hgroup>
      </header>
      <table>
         <!-- A table heading group -->
         <thead>
            <tr>
               <!-- A table heading cell-->
               <th colspan="3" id="apples">Apples</th>
               <th colspan="3" id="pears">Pears</th>
            </tr>
            <tr>
               <!-- The headers attributes that map to IDs above -->
               <th headers="apples" id="braeburn">Braeburn</th>
               <th headers="apples" id="gala" >Gala</th>
               <th headers="apples" id="fuji">Fuji</th>
               <th headers="pears" id="bosc">Bosc</th>
               <th headers="pears" id="starkrimson">Starkrimson</th>
               <th headers="pears" id="forelle">Forelle</th>
            </tr>
         </thead>
         <tbody>
            <tr>
               <td headers="apples braeburn">$4.00</td>
               <td headers="apples gala">$3.00</td>
               <td headers="apples fuji">$2.00</td>
               <td headers="pears bosc">$1.00</td>
               <td headers="pears starkrimson">$4.00</td>
               <td headers="pears forelle">$3.00</td>
            </tr>
         </tbody>
      </table>=
      <section>
         <!-- A section header -->
         <header>
            <h1>Heading of Section</h1>
            <nav>
               <ul>
                  <li>Thing one</li>
                  <li>Thing two</li>
               </ul>
            </nav>
         </header>
      </section>
   </body>
</html>

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.