Lesson 1: Creating a Data Table


Tables were introduced to the web with the original purpose of displaying data in rows and columns. In time they came to be used for an additional purpose: page layout. This lesson will focus on their original purpose. Page layout will be explored later in this course.

In this lesson you'll add a simple data table to your portfolio.

Learner Outcomes

At the completion of this exercise:

How to Create an HTML Table

  1. HTML tables begin with <table> and end with </table>.
  2. Inside the table element, you can optionally include a caption element, which contains a brief title or description of the table's content. Most browsers display the caption above the table.
  3. Like HTML documents, tables include a head and body. In tables, these are specified using the <thead> and <tbody> elements respectively. These tags are optional, but they should be included on long tables. If long tables are printed and span multiple pages, browsers will repeat the content of the <thead> element (usually the top row(s) of the table) at the top of every printed page.
  4. Each row in a table begins and ends with table row (tr) elements: <tr></tr>
  5. Each cell in the table begins and ends with either table header (th) elements or table data (td) elements, depending on what type of information the cell contains.
    • If a cell contains headers, it begins and ends with th elements: <th></th>
    • If a cell contains data (not headers), it begins and ends with td elements: <td></td>
  6. Table header elements (th) should also include a scope attribute, which is either scope="row" or scope="col". This instructs screen readers as to which headers apply to which cells. Screen readers read tables row by row from left to right, and without this extra markup blind users would have a difficult time figuring out which headers apply to the cell they're in.

Compare the following table with the code that was used to create it:

School Lunch Menu
  Monday Tuesday Wednesday Thursday Friday
Carnivores Sausage pizza Corn dogs Sloppy Joe Beef taco Chicken and dumplings
Herbivores Veggie pizza Veggie dogs BBQ tempeh Bean burrito Tofu teriyaki
  <caption>School Lunch Menu</caption>
      <td> </td>
      <th scope="col">Monday</th>
      <th scope="col">Tuesday</th>
      <th scope="col">Wednesday</th>
      <th scope="col">Thursday</th>
      <th scope="col">Friday</th>
      <th scope="row">Carnivores</th>
      <td>Sausage pizza</td>
      <td>Corn dogs</td>
      <td>Sloppy Joe</td>
      <td>Beef taco</td>
      <td>Chicken and dumplings</td>
      <th scope="row">Herbivores</th>
      <td>Veggie pizza</td>
      <td>Veggie dogs</td>
      <td>BBQ tempeh</td>
      <td>Bean burrito</td>
      <td>Tofu teriyaki</td>

Not sure how the HTML table markup works? Ask your instructor to walk you through it. Be sure you understand the above markup before proceeding to the activity.


  1. Earlier in this course, in the lesson titled How People with Disabilities Access the Web, you learned how certain web design strategies and techniques can create barriers for people with disabilities and others. In the current lesson, you will use an HTML table to create a web accessibility checklist that you can refer to later as you design websites, to assist you in ensuring that your web content doesn't needlessly exclude anyone.
  2. Open the file accessibility.html that you created earlier in the course. At this point, this file should include nothing but "bare bones" HTML.
  3. Use the following instructions to add a table to the body of your web page. Consult the above example table markup as a model. Note that the School Lunch Menu table has three rows and six columns, whereas the Web Accessibility Checklist will have two columns and seven rows. The table you're creating should look something like this: Image showing a table with two columns and seven rows (including one header row), plus a caption at the top
  4. Save your work, and check it in your web browser to be sure it looks like you expect it to. If it doesn't, that's normal - tables can be tricky! It sometimes takes several trials to get all the tags just right. Don't worry about spacing between and within cells: We'll be addressing that in a future lesson.

Instructions for Creating Your Table

The caption of the table should be "Web Accessibility Checklist"

The table should have two columns, with the following headers:

  1. User characteristic
  2. Accessible design tip

In the first column (the column with header "User characteristic"), list the following user characteristics related to web accessibility, in the order in which they're presented below.

  1. Unable to see
  2. Unable to perceive colors
  3. Unable to use mouse
  4. Unable to hear
  5. Prone to having seizures
  6. Easily distractible

In the second column (the column with header "Accessible design tip"), the following web design issues correspond with the same-numbered user characteristic from the first column.

  1. Code all images with ALT text
  2. Avoid using color alone to convey information
  3. Be sure all website features can be accessed using keyboard
  4. Add captions to multimedia
  5. Avoid content that flashes
  6. Keep the design simple

Resources/Online documents

All done?

Have your instructor view the code for your table and see how it looks in a browser. Then proceed to the next module.