HTML tables consist of rows of cells organized into columns. In these cells, a Web developer may place numerical data, text, graphic images, or even other tables. In tables that present data (such as bus schedules), the cells often appear visually as a grid, though in some cases the designer may choose not to show the grid lines, instead using other techniques to make the items visually distinct.
As mentioned, it is also common for developers to use tables for page layout by placing certain blocks of text, navigation bars, or images in various cells to impart a particular look and feel to a Web page. This widespread practice emerged out of frustration. In the early days of the Web, designers with backgrounds in print media found HTML's almost total lack of support for precise and elegant page layout intolerable; they adapted the <table> element, introduced in HTML 2.0 in 1994, as a layout tool. Subsequently, the W3C developed a separate language, Cascading Style Sheets (CSS), to address designers' need for more precise control of presentation and layout. The checkpoints under WCAG 1.0 Guideline 3 ("Use structural markup and style sheets and do so correctly") are intended to encourage designers to respect the distinction between document content and structure on the one hand and presentation and layout on the other. In particular, a note following Checkpoint 5.3 urges designers to use the positioning features of CSS (instead of tables) to control page layout.
But even data tables are organized for the eye and not the ear, which is the source of some of the difficulties that people who depend on assistive technologies experience when using tabular information.