Tables are an HTML structure designed to present information in tabular format. Table markup has several components and attributes that can be used to identify the elements in a standard data table: column headings, row headings, caption, and content summary. When these elements are used properly, a data table can be understood by both visual and nonvisual users.
However, tables are often pressed into service for other purposes, including page layout, alignment, and spacing. Invisible tables (
<table border="0">) are commonly used to create multicolumn layouts that display consistently across browsers. When table markup is misused in this way, documents become less machine-readable. Software cannot read a document accurately when its semantic meaning has been diluted with meaningless tables.
On the other hand, when table markup is used appropriately and correctly, software can read table structure. For example, screen reader software offers a table navigation option that allows users to move to a cell and hear its contents read aloud along with its column and row headings. Without correctly coded structure, however, the user will hear only the contents of the cell without the context provided by the headings.
Given the limitations of the medium—low resolution, limited and variable display—simple tables fare better on the Web. The primary concern with data tables is that users can easily become disoriented. Visual users may find it difficult to decode data when column headings are offscreen. Nonvisual users access each table element individually and do not have the means to orient themselves visually.