Skip to main content
WCAGrules
Quick navigation

Do not format tables with white space characters

F34 is F33's sibling, a documented failure under the same two rules, and it is the table-shaped version. Rows and columns drawn with spaces have no cells. Three things go together, and the third gets forgotten. There is no way to say which cell is a header, no way to tie a header to the data underneath it, and no way to jump to a particular cell. That last loss is what breaks table reading, because moving through a table cell by cell is how a screen reader user reads one at all. The same reflow problem applies as on F33, so the layout falls apart visually too as soon as the font changes. Two repairs are allowed. Use real table markup, or present the information linearly, which for a short two-column list is often the better answer and is rarely offered.

How we find it in an audit

Look for anything that reads as a table, then check whether the alignment comes from spaces. That is the published test and it needs no software at all. We read it aloud as well, because the interleaving is more persuasive heard than described. Automated tools can flag blocks with repeated space runs and column-like alignment, which narrows things down and cannot tell a table from a poem.

How affected users experience it

Real table markup gives a reader commands. Move right one cell. Move down one column. Ask what column this is, ask what row. A table made of spaces gives them a paragraph instead. "Item Qty Price Widget 2 10.00 Gadget 1 24.50" is what arrives, and the reader has to hold the header row in their head and count positions to learn that 24.50 belongs to Gadget. Three columns is possible with effort. Seven is not.

Passes vs. fails

Passes: headings exist in the code. Fails: one flat wall of text.

Passes

<table>
  <tr><th scope="col">Item</th><th scope="col">Qty</th><th scope="col">Price</th></tr>
  <tr><td>Widget</td><td>2</td><td>10.00</td></tr>
  <tr><td>Gadget</td><td>1</td><td>24.50</td></tr>
</table>

Fails

Item      Qty   Price
Widget     2    10.00
Gadget     1    24.50

How this gets tested

The W3C publishes test rules that define what a checker looks for here.

The other techniques filed under this rule

52 guides on this site are filed under 1.3.1 Info and Relationships. W3C documents this one as a failure of that rule, so it describes a way the rule gets broken rather than a way to pass it.

This guide is our interpretation of W3C technique F34: Failure of Success Criterion 1.3.1 and 1.3.2 due to using white space characters to format tables in plain text content. W3C publishes its techniques as guidance rather than as the standard, and says so on every one of them. The success criterion is what conformance is measured against, and a technique is one documented way to meet it.

Go somewhere useful

Find tools, resources and your workspace.

29 destinations