HTML 4.01及びXHTML 1.x
これは、次の達成基準に関連する実装方法である:
この実装方法の目的は、テーブルにどのようにデータがまとめられているかという短い概略や、テーブルをどのように読み進めるかという短い説明を提供することである。table
要素にsummary
属性を指定しておくことで、スクリーンリーダーのユーザーがこのような情報を入手できるが、視覚的には表示されない。
summary
属性は、テーブルの構造が複雑な場合(たとえば、行ヘッダーや列ヘッダーが複数組み合わせてある場合や、行グループや列グループが複数ある場合)に有用である。また、summary
属性は、構造は単純でもたくさんの行や列を含んでいるデータテーブルでも役に立つ。
summary
属性は、そのテーブルにcaption
要素があるかどうかに関わらず指定できる。両方を用いる場合には、summary
属性の内容が単にcaption
要素の繰り返しであってはならない。
WCAG 2.0はレイアウトレテーブルの使用を禁止していないが、CSSベースのレイアウトを推奨している。HTMLのtable
要素に与えられたセマンティックな意義を守り、コンテンツから表現を分離するというコーディング実務に従うためである。レイアウトテーブルを用いる場合には、summary
属性は使用しないか、値を空にする。レイアウトテーブルの目的は、コンテンツの配置を制御することのみであって、テーブルそのものはユーザーから見て「透明(不可視)」であるべきである。summary
属性がテーブルの存在を示してしまうと、この透明性を「壊して」しまう。なお、レイアウトテーブルに空のsummary
属性(summary=""
)を指定することは許容範囲である。
summary
属性はあるが、caption
要素はないデータテーブル
この事例は、バスの時刻表を表している。summary
属性には、運行系統と目的地、時刻表の利用方法が記述されている。
コード例:
<table summary="7系統、市街地行きの時刻表です。朝4時に運行開始、
深夜に終了します。経由地は先頭の行に示してあります。
出発地や目的地に最も近い経由地を見つけ、その列を下のほうに読み進めて、
バスの出発時刻を見つけてください。">
<tr>
<th scope="col">一番街</th>
<th scope="col">六番街</th>
<th scope="col">十五番街</th>
<th scope="col">十五番街モリソン通り</th>
</tr>
<tr>
<td>4:00</td>
<td>4:05</td>
<td>4:11</td>
<td>4:19</td>
</tr>
…
</table>
summary
属性とcaption
要素の両方があるデータテーブル
この事例では、summary
属性とcaption
要素の両方を用いている。caption
要素ではバスの運行系統を特定している。summary
属性には、全盲のユーザーが時刻表の利用方法を理解するのに役立つ内容を記述している。スクリーンリーダーは、まずcaption
要素を、続いてsummary
属性を読み上げる。
コード例:
<table summary="経由地は1行目に示してあります。
出発地や目的地に最も近い経由地を見つけ、その列を下のほうに読み進めて、
バスの出発時刻を見つけてください。
朝4時に運行開始、深夜に終了します。">
<caption>7系統、市街地行き(平日)</caption>
…
</table>
この参考リソースは、あくまでも情報提供のみが目的であり、推薦などを意味するものではない。
HTML 4.01 summary attribute
レイアウトテーブルかどうかの確認:セルのコンテンツが同じ行や列に含まれる他のセルのコンテンツと関係があるかどうか判断する。
関係がない場合、そのテーブルはレイアウトテーブルである。
関係がある場合、そのテーブルはデータテーブルである。
そのテーブルがレイアウトテーブルである場合、summary
属性を指定していないか、値が空である。
そのテーブルがデータテーブルである場合、summary
属性を指定している場合は、そのsummary
属性によってテーブルの構成や利用方法を説明している。
データテーブルにsummary
属性とcaption
要素の両方を指定している場合、summary
属性の内容が単にcaption
要素の繰り返しになっていない。
レイアウトテーブルについては、チェックポイント2.を満たしている。
データテーブルについては、チェックポイント3.及び4.を満たしている。
注意: この実装方法が「達成基準を満たすことのできる実装方法」の一つである場合、このチェックポイントや判定基準を満たしていなければ、それはこの実装方法が正しく用いられていないことを意味するが、必ずしも達成基準を満たしていないことにはならない。場合によっては、別の実装方法によってその達成基準が満たされていることもありうる。
日本語訳における注記:
この文書の正式版は、W3Cサイトで公開されている英語の文書であり、この日本語訳には誤訳が含まれていることもありえます。なお、文中にある「日本語訳における注記」は、W3Cの原文にはないものであり、日本語訳監修者が追記したものです。