I find it odd that no-one mentioned the necessity of row headers (i.e. th
s to describe rows not columns). For some reason all the current Markdown flavours which support tables only support column headers. But it is really important for accessibility to support both!
Just consider the following table of pizzas and their cost:
Small Large
Salami 8.99 10.99
Hawaii 9.49 11.49
Margherita 7.99 9.99
For screen reader users to understand, e.g. the cell with “11.49”, they would need to have read out the pizza (row header = Hawaii) and the size (column header = Large). Just the one or the other is not enough to understand what the content of a cell means.
Most simple text markup languages allow a header cell anywhere in a table with a quite simple syntax, e.g.
- Creole:
|=
- txt2tags:
||
- DokuWiki:
^
- Textile:
|_.
- I personally like:
|#
(because users already associate#
with a heading in Markdown)
Colspans and rowspans are also important for accessibility. Wrongly empty cells can confuse screen readers. But unless they happen in header cells, they are not a big barrier.
Depending on length and complexity, not having header cells marked up correctly can make a table very difficult or impossible to understand for screen reader users.