Techniques for writing summaries for data-tables

The HTML specifications state: "Authors should provide a summary of a table's content and structure so that people using non-visual user agents may better understand it. ... CAPTION element provides a short description of the table's purpose. A longer description may also be provided (via the summary attribute) for the benefit of people using speech or Braille-based user agents.". It goes on to add:

Visual user agents allow sighted people to quickly grasp the structure of the table from the headings as well as the caption. A consequence of this is that captions will often be inadequate as a summary of the purpose and structure of the table from the perspective of people relying on non-visual user agents. Authors should therefore take care to provide additional information summarizing the purpose and structure of the table using the summary attribute of the TABLE element. This is especially important for tables without captions.


The above suggests that the summary should serve two purposes for the benefit of non visual user agents rendering speech or Braille. Note the value of the summary attribute is not visible in the browser.

In reality many user groups- not just vision impaired users, would be interested in a summary or highlights of the content in a data table. So putting this in the summary attribute is probably not the best option. Often the major highlights from a table are summarized in the main body of the document which references the data-table. This information is available to all users. Other options of allowing the author to describe the table contents without including it in the main document need to be explored.

Therefore, in my opinion, the main purpose of the summary attribute is to describe the layout or structure of the table. By adjusting the verbosity settings of some screen readers / self voicing browsers, it is possible to have the adaptive software announce the dimension of the table and attributes of a cell like column and row spanning and header association. But it takes a long time to run through a table to determine its structure and relationships between header cells and data cells. A simple table does not pose a problem if it is correctly marked up but layered and irregular tables do.

Tips for writing table summaries

The table summary should

  1. point out which column(s) or row(s) span how many columns or rows by using terms like: "is a common header for columns or rows" or "hassub-columns" or the like.
  2. not merely refer to the column# or row# that uses spanning but describe the columns, like: "Column #3 labeled Branch Locations states three sites in sub-columns under it"
  3. pointt out rows that are used for groupheaders and footers or at least mention that they exist. Sometimes there is no data against a row that contains a group header and this can be stated. Likewise, indicate the columns that contain sub-totals or totals or key data like averages, etc.
use words for two columns


Example 1. Summary for Traffic cop table(layered) at

summary="Every guideline listed in column 1 has multiple success criteria against it in column #2. Column #3 lists techniques against every criteria. It might help to exit table navigation mode to review the contents in column #3 in detail."

Example 2: from a irregular table from a site that offers prices from multiple airlines

Summary="This table contains nn rows and mm columns. Each set of rows contains one itinerary. The first cell has the price and a link to select that itinerary. Subsequent cells in the first row of the pair describe the outbound flight; the second row describes the return flight. One-way itineraries will only contain a single row. Multi-destination itineraries will include a row for each flight."

Example 3. For an irregular table: Travel Expenses Report under 11.4.2at

Proposed caption=Summary of travel expenses for August trips to Seattle and San Jose

Proposed summary=Three heads of expenses: meals, hotel and transport are in columns 2 to 4. The first column contains names of cities visited along with the dates of visit under each city. The total expenses incurred in a city is in a row following the dates of visit to the city. The last (fifth) column contains the total expenses for every city. The total for all cities is in the last row of the table.

Example 4:Layered Table using rowspan

Zoning of counties and commencement dates of repair work
Zone County Commencement date
Green Allegheney June 2, 2004
Somerset June 7, 2004
Yellow Washington May 25, 2004
Wellington June 17, 2004
Laurel May 20, 2004