Tables are a powerful way to organize and present data. But when they’re not created with accessibility in mind, they can become confusing or even unusable for people who rely on assistive technologies like screen readers. Accessible tables ensure that everyone—regardless of how they interact with digital content—can understand and navigate the information being presented.
Impact
For someone using a screen reader, a table without proper structure is like a spreadsheet with no labels. Imagine hearing a list of numbers with no context—no idea what each number represents or how it relates to the others. That’s what happens when tables lack headers or are used for layout instead of data.
Accessible tables provide clear relationships between data points by using headers and captions. This allows screen readers to announce the context of each cell, helping users understand the structure and meaning of the data.
Accessible tables also benefit sighted users. For example, when a table is well-structured, it’s easier to scan visually, especially on mobile devices or when using zoom features.
How to provide accessible tables
Creating accessible tables is mostly about structure and clarity. These principles help ensure that tables communicate information effectively and inclusively.
1. Use tables for data, not layout
Tables should only be used to present tabular data—not to control the layout of a page. Using tables for layout can confuse screen readers and make content harder to navigate. If the table doesn’t present structured information, consider using headings, lists or other layout tools instead.
2. Include header rows and columns
Headers provide essential context for understanding the data in a table. They help users—especially those using screen readers—understand what each row and column represents.
- Identify which rows and/or columns serve as headers, and ensure they clearly describe the data they relate to.
- In most cases, the first row contains column headers.
- Sometimes, the first column contains row headers. This is especially helpful for larger tables, with many columns of data.
- Use the appropriate HTML tags (<th>) or table tools in Word, Excel or other editors to mark these cells as headers.
- Avoid using merged cells for headers. Each header should be unique and clearly associated with its row or column. This helps screen readers accurately convey the structure of the table.
3. Add a title or caption
A caption gives users a quick summary of what the table is about. It helps screen reader users decide whether to explore the table in detail.
Example:
| Failure Type | % of home pages |
|---|---|
| Low contrast text | 79.1% |
| Missing alternative text for images | 55.5% |
| Missing form input labels | 48.2% |
| Empty links | 45.4% |
| Empty buttons | 29.6% |
| Missing document language | 15.8% |
Table credit: The WebAim Million 2025 website accessibility report.
4. Keep tables simple
Keep tables as simple as possible. Avoid complex structures like merged cells, nested tables or blank cells as these can make tables difficult to interpret with assistive technology.
- If a table becomes too complex, consider breaking it into smaller tables or providing a summary of the key information nearby.
- Avoid leaving cells blank. Use placeholders like “N/A” or “0” to indicate intentional absence of data.
When tables get complex
Some tables contain large amounts of data or multiple levels of headers. In these cases:
- Use summary text before or after the table to explain key takeaways. Avoid placing important information only in alt text or hidden descriptions—context should be available to all users.
- Consider breaking the table into smaller, simpler tables.
- Provide a downloadable version (e.g., Excel or CSV) for users who may need to manipulate the data.