アクセシビリティ約4分

HTMLの表に見出しを付ける:行と列の意味をscopeで示す

表の数字は読めても、何の値か分からない状態を見直します。架空の工作室の時間割を使い、表の名前、行見出し、列見出しをHTMLで表し、数値との対応を確認する練習です。

この記事の目次
  1. 一つの値を、行名と列名で説明する
  2. thとscopeで、見出しの向きを指定する
  3. 表の名前と、ページの見出しを分ける
  4. 時刻を一つ選び、部屋名と曜日を答える

時間割の数字だけを太字にしても、その数字がどの部屋の何曜日を示すかは伝わりません。HTMLの表に見出しを付けるときは、見た目と一緒に、見出しが担当する行や列を指定します。

今回は架空の工作室の利用開始時刻を、部屋と曜日で比べる表にします。セルを結合しない、小さな表に限定します。画面を配置するための枠組みではなく、対応するデータを読むための表です。

一つの値を、行名と列名で説明する

「木工室の土曜日は10時開始」という文を考えます。10時が値、木工室が行の名前、土曜日が列の名前です。この三つがそろって、一つの情報になります。

原稿を表へ移す前に、別の値でも同じ言い方ができるか確認します。行ごとに意味が変わるなら、表を分けた方が読みやすいかもしれません。空欄を使う場合も、休みなのか未確定なのかを原稿で決め、読者の推測に任せないようにします。

この練習では全セルに開始時刻を入れ、例外や複雑な注記は増やしません。まず一段の見出しとデータの関係を完成させましょう。

thとscopeで、見出しの向きを指定する

thは表の見出しセル、tdはデータのセルです。scopeにcolを指定すると列の見出し、rowなら行の見出しを示します。W3C WAIの行と列に見出しがある表の解説で、その対応を確認できます。

次はbody内へ置ける表の断片です。単独のHTML文書に必要なheadなどは省略しています。captionは、この表が何を表すかを示す名前です。

<table>
  <caption>工作室の利用開始時刻(練習用)</caption>
  <thead>
    <tr>
      <th scope="col">部屋</th>
      <th scope="col">土曜日</th>
      <th scope="col">日曜日</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">木工室</th>
      <td>10時</td>
      <td>11時</td>
    </tr>
    <tr>
      <th scope="row">紙工作室</th>
      <td>13時</td>
      <td>10時</td>
    </tr>
  </tbody>
</table>

すべてをtdで作り、最初の行だけ太字にするのが見落としやすい例です。修正では、曜日と部屋名をthにし、それぞれの向きを指定します。太字かどうかではなく、データを説明する役割で選びます。

表の名前と、ページの見出しを分ける

captionが「表1」だけだと、何の表かを知るには周囲を読み直す必要があります。「工作室の利用開始時刻」のように内容を示しましょう。ページの見出しは節を分けるもの、captionはこの表を識別するものとして使います。

ページ全体の見出し構造は、h2とh3を内容の親子で選ぶ記事で扱っています。表に見出しを付けても、ページの節の構造が自動で整うわけではありません。

狭い画面では、文字が欠けずに読めるかも確認します。表を画像に置き換えるだけでは、行と列の関係をHTMLで持たせた今回の目的から離れます。この小さな例で収まらない場合は、まず不要な固定幅や大きすぎる余白がないか調べてください。

時刻を一つ選び、部屋名と曜日を答える

各データセルについて「どの部屋の何曜日か」を紙に書き、対応するthとscopeを確認します。次に行の順番を入れ替え、時刻と部屋の組が崩れていないかを見てください。

読み上げ環境が使える場合は、表内を移動し、データと見出しの関係が伝わるかを確かめます。使えなければ、その確認は未実施と残します。無料レッスンでHTMLの役割を復習しながら、今回は表の名前と二方向の見出しを完成条件にしてください。

記事についてのお問い合わせ

記載内容へのご質問や訂正のご連絡は、hello@junkbranding.comまでお願いします。

← 記事一覧に戻る