THE SHORT ANSWER

Use the simplest table structure that preserves the reader question. Keep row/column meaning in every layout and verify the actual markup, reading associations and controls.

Primary sources + editorial analysisSources & scope →
A wide data table retaining aligned rows and columns on a mobile-sized base.

A useful data table preserves the relationship between each value and its row or column heading. On a phone, it must also let people reach and understand the information without tiny text, missing labels or clipped controls. A table that looks tidy on desktop has not yet passed either test.

This guide explains table structure, responsive choices and practical keyboard and assistive-technology checks. It uses official sources checked on 13 October 2026. The examples are fictional; no particular website, theme or plugin is certified accessible by this article.

Choose a table when the relationships need one

The WAI tables tutorial explains the purpose of accessible data-table markup: people need to identify how cells relate. A schedule, feature matrix or measurement series can depend on row and column relationships. An ordinary paragraph or group of independent cards may not.

Use a layout component for arranging a page, rather than a table used merely as invisible columns. Conversely, do not replace genuinely tabular comparisons with unlabelled text boxes just because cards look better at a small width.

For a fictional editorial review schedule, the question is “which page has which owner and status?” Decide those fields before choosing a display. Remove redundant columns, use clear units and explain abbreviations. Good content design can reduce complexity without discarding meaningful information.

Give the table a clear purpose and context

The WAI caption and summary guidance describes captions that identify a table, with additional explanation where structure needs it. A useful caption says what the data concerns; a separate note can state the period, units, fictional nature or important interpretation limits.

Do not make readers infer the subject from a distant heading. For the review schedule, “Fictional page-review assignments” identifies the example. If a table compares prices, its context needs the currency, billing period and applicable conditions rather than an unexplained number.

Keep a caption and an explanatory summary from needlessly repeating each other. Prefer a straightforward structure; a long instruction on how to navigate a tangled table can be a sign that separate, simpler tables would serve readers better.

Mark actual headers instead of styling ordinary cells

WAI’s one-header tutorial uses header cells to establish simple row or column relationships. A bold data cell is still a data cell. Use th for headings and td for values, with scope identifying a header’s applicable row or column where appropriate.

The two-header tutorial covers both directions together. This illustrative, non-executable HTML example uses column and row headers. The assignments and statuses are invented solely to demonstrate structure.

<table>
  <caption>Fictional page-review assignments</caption>
  <thead>
    <tr>
      <th scope="col">Page</th>
      <th scope="col">Owner</th>
      <th scope="col">Status</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">About</th>
      <td>Editor A</td>
      <td>Review needed</td>
    </tr>
    <tr>
      <th scope="row">Contact</th>
      <td>Editor B</td>
      <td>Checked</td>
    </tr>
  </tbody>
</table>

When checking the rendered result, choose a data cell and ask which page and field it belongs to. That association should remain available without seeing the whole screen at once. Do not assume colour, alignment or a striped background supplies it.

Simplify grouped and multi-level headings

Some tables have grouped columns or headers that span several rows. WAI’s irregular-header tutorial explains grouping and appropriate scope relationships. Its multi-level tutorial uses explicit header identifiers and cell associations when the relationships require them.

Do not copy a complex headers/id pattern onto a simple table merely to add more attributes. Equally, one header row may be inadequate when a value depends on several grouped headings. Inspect the actual structure and use unique identifiers wherever explicit associations are required.

Before building a large matrix, try separating independent subjects into their own tables, each with a clear caption. For the fictional schedule, current review assignments and historical revision counts could be separate tasks. Separation is useful when it clarifies meaning, rather than hiding inconvenient comparison details.

Preserve meaning in the mobile presentation

The WAI table tips emphasize keeping structural relationships available when responsive tables change format. A mobile card that shows “Checked” without “Status” or its page name has lost useful context, even if the desktop table was clear.

Choose the presentation by the reader’s job. A compact comparison may work as a table within a scrollable area. A set of independent records may work as labelled cards if the relationships and reading order survive. Do not assume a plugin’s Responsive option preserves every association.

  • Keep field names attached to values when stacking records.
  • Retain necessary qualifications and units, not only the headline value.
  • Check the first and last columns, long names and empty values.
  • Ensure a blank cell has an understandable meaning, such as not applicable versus unknown.
  • Verify that duplicate desktop/mobile markup does not produce confusing repeated information.

Contain necessary scrolling without shrinking everything

WAI’s Reflow explanation recognizes an exception for content, such as data tables, whose meaning requires two-dimensional layout. It also shows placing a table in its own scrollable container so surrounding text can reflow at a narrow viewport.

The exception does not cover every heading, paragraph, search field or pagination control near the table. Check ordinary content at a width equivalent to 320 CSS pixels, such as a 1280-pixel desktop viewport at 400% zoom. These are CSS layout dimensions, not a requirement to use a particular phone model.

A horizontal swipe can be appropriate for the table, but it needs to be discoverable and operable. Do not clip the last column, suppress all overflow or reduce the text until the complete table happens to fit. Long cell content should still wrap sensibly where its meaning permits.

Mozilla’s overflow reference documents that scroll-container keyboard focusability varies. If the container cannot be reached and scrolled in supported browsers, the maintainer may need to make it focusable and give it an appropriate accessible name and context. Test that behaviour instead of adding tab stops to every cell.

Keep interactions as real, labelled controls

The ARIA table pattern distinguishes a static table from an interactive grid. Ordinary tables can contain links and buttons without turning every cell into a widget. Prefer native HTML table semantics where they fit.

For sorting, the WAI sortable-table example places buttons in sortable headers and exposes the active sort through aria-sort. A painted arrow alone does not tell all users what can be activated or which order is applied.

Define what happens to focus when sorting, filtering or paginating. Confirm that the visible rows, result count and current order agree, and that empty/error states make sense. An example pattern is a starting point for implementation and testing, not a certificate for an arbitrary plugin.

Check what your WordPress block actually publishes

The WordPress Table block guide documents header sections, captions and alignment controls, with final appearance depending on the theme. Use those supported controls for ordinary data, then inspect the public output.

An editor’s Caption label does not, by itself, establish the table’s accessible name or associations in every template. For example, the current Gutenberg table reference selects figcaption for its caption attribute. Verify your rendered relationship instead of treating a visual caption as proof of native table-caption semantics.

Likewise, confirm that header cells remain headers and that responsive CSS does not hide them or clip their row. If your chosen block cannot express a genuinely necessary complex structure, simplify the table or use a supported implementation that can preserve those relationships.

Use our plugin audit workflow before adding another table tool. A plugin is justified by a reader need and maintainable output, not merely by a longer feature list.

Test the associations and the actual task

WAI’s Info and Relationships explanation concerns information and relationships conveyed programmatically or in text. Combine markup inspection with a practical screen-reader check: locate the table, hear its identity, move through representative data cells and verify the appropriate headers.

Use supported browser/assistive-technology combinations and record which were tested. A single automated checker cannot demonstrate all reading and interaction behaviour. It can flag useful candidates, including missing or empty headings, but a human still needs to interpret the actual output.

The Keyboard explanation supports checking the full task without a pointer. Reach and operate sorting, filtering, links and pagination; scroll any necessary container; confirm visible focus and a way to move onward. Do not create a focus trap in the name of a responsive table.

Keep a repeatable table acceptance checklist

  1. State the table’s reader question, units and any interpretation limits.
  2. Identify the correct row/column headers and keep the simplest meaningful structure.
  3. Verify the rendered caption/name and representative cell associations.
  4. Review narrow, enlarged and ordinary desktop layouts.
  5. Reach every required value and control with keyboard and touch.
  6. Check sorting, filtering, empty results and any mobile transformation.
  7. Record tested combinations and remaining limitations.

Our typography and zoom guide covers broader reading conditions, while accessible form guidance helps with table search/filter inputs. Keep the table’s data relationships, its controls and the surrounding page working as one usable reader journey.

Sources and verification

Editorial review 2026-10-13. Source check dates are recorded separately. Notes describe what each source supports and its limits.

View sources
  • WAI: tables tutorialChecked Data relationships, semantic table purpose and distinction from page-layout use.
    Limits: No whole-site conformance assertion; not every visually arranged set of items needs a data table.
  • WAI: caption and summaryChecked Identify table purpose and explain necessary structural/context detail without needless repeated caption/summary text.
    Limits: Fictional schedule is not real editorial activity; a visual heading alone does not prove accessible table naming.
  • WAI: one-header tablesChecked Actual th/td roles and simple row or column header relationships rather than visual bolding.
    Limits: No assumption that simple markup handles all grouped data structures.
  • WAI: two-header tablesChecked Both row and column headers with scope relationships in a simple table, informing the escaped illustrative HTML example.
    Limits: The example is displayed as literal code, not installed UI or claimed tested output.
  • WAI: irregular table headersChecked Header grouping and appropriate scope for spanning relationships.
    Limits: No arbitrary grouped structure implemented; simplification is considered before adding attributes.
  • WAI: multi-level table headersChecked Explicit unique header identifiers and cell associations when the table requires them.
    Limits: Not a recommendation to add a complex pattern to every simple table; actual relationships require inspection.
  • WAI: table tips and tricksChecked Preserve structural relationships across responsive formats and consider separate tables for distinct subjects.
    Limits: No responsive plugin option certified and no copied CSS/card transform.
  • WAI: Understanding ReflowChecked Two-dimensional data-table exception, scoped scrolling, 320 CSS-pixel-equivalent review and non-excepted surrounding content.
    Limits: Not every element near a table is excepted; no full WCAG audit and no claim that every horizontal page scrollbar fails.
  • Mozilla: CSS overflowChecked Scroll-container keyboard-focus limitations and contextual accessible naming where focusability must be supplied.
    Limits: Browser support varies; no universal tabindex prescription for every cell and no clipped interactive data recommended.
  • WAI APG: table patternChecked Static table versus interactive-grid distinction and links/buttons inside otherwise native tabular structure.
    Limits: No conversion to a grid or custom keyboard model without an actual need.
  • WAI APG: sortable table exampleChecked Buttons in sortable headers and aria-sort on the actively sorted column.
    Limits: Pattern example requires adaptation and assistive-technology testing; not a certified arbitrary plugin.
  • WordPress: Table blockChecked Supported header/caption/alignment controls and theme-dependent final appearance.
    Limits: No assumption that every control label guarantees the required output or complex-header support.
  • WordPress Gutenberg: table referenceChecked Current schema reference uses figcaption for caption content, supporting inspection of actual table naming rather than equating all captions.
    Limits: Trunk reference is not verification of every installed core/theme; no table accessibility defect asserted for the live site.
  • WAI: Understanding Info and RelationshipsChecked Relationships conveyed visually need to remain programmatically determinable or available in text.
    Limits: Focused guide is not WCAG certification and automated flags need interpretation and real reading checks.
  • WAI: Understanding KeyboardChecked Test required table controls/tasks without a pointer and retain usable onward navigation.
    Limits: No actual keyboard/screen-reader audit performed; tested combinations must be documented by the implementing maintainer.