HTML5 の テーブル関連要素の仕様 は HTML 4.01 から変更されている部分がけっこうあるようなので、変更点を簡単にまとめてみました。なお本稿での HTML5 の仕様は 2010 年 10 月 19 日付 W3C 草案 を参照しています。
table要素 はテーブルの内容を説明するためのsummary属性 を持てるが、代替手段 を用いることが推奨される。たとえば表の前にテキストを配置したり、caption要素やfigcaption要素を用いたりなど。caption要素 の内容モデルは Flow content なので、ほとんどの要素を含むことができる。たとえばpとかulとか。ただしtable要素を子孫に含んではダメ。col要素 はspan属性を持たないcolgroup要素 の子要素でなければならない。つまりtableの直下に置いてはダメで、必ずcolgroupの中に置く必要がある。tbody要素 は省略できる。XHTML 1.0 といっしょ。tfoot要素 はtbody要素またはtr要素のうしろに出現してもよい。つまり、HTML 4.01 ではthead→tfoot→tbodyの順でなければいけなかったのが、thead→tbody→tfootもアリ。ただし、同じtable要素内に複数あってはダメ。td要素 はscope属性 を持てない。同属性を持てるのはth要素 だけ。td要素とth要素のabbr属性 とaxis属性 は廃止。仕様では 代替手段 が提案されており、abbr属性は「セルの内容を明白かつ簡潔にすべし、より詳細なテキストを含めるにはtitle属性を使え」、axis属性は「対応するth要素のscope属性を使え」としている。
以前に書いた dl 要素 もそうですが、今までおなじみの要素でも HTML5 で仕様が再定義されていることがあります。新しい要素とか廃止されたフィーチャーとかの大きな変更は HTML5 differences from HTML4 (邦訳: HTML5 における HTML4 からの変更点) などにまとめられているのでわかりやすいですが、たとえば本稿で取り上げた col/colgroup 要素みたいに地味な変更は仕様書を読んでいても気づきにくいので注意が必要ですね。