2009-06-07 3 views
5

HTMLテーブルがあり、<th>セルが複数の列にまたがっているとします。HTML <th>テーブルセルに使用する正しいスコープ値は何カラムですか?

<table> 
    <tr> 
     <th colspan="3" scope="?">Scores</th> 
     <!-- ...more headings here... --> 
    </tr> 
    <tr> 
     <th scope="col">English</th> 
     <th scope="col">Maths</th> 
     <th scope="col">Science</th> 
     <!-- ...more sub-headings here... --> 
    </tr> 
    <tr> 
     <td>12</td> 
     <td>16</td> 
     <td>20</td> 
     <!-- ...more cells here... --> 
    </tr> 
</table> 

スパニング・ヘッダー・セルの有効範囲の値は何ですか? colはいくつかの見出しが間違っているようですが、実際にはcolgroupというタグがないと、colgroupは正しく見えません。

答えて

6

WebAIM(心の中でウェブアクセシビリティ)グループはcreating accessible data tablesに大きな記事があります。全体的に、スクリーンリーダーはマークアップを確実に解釈できないため、スパンされた行や列を避けることをお勧めします。

スパンした列を避けるのにはまったく足りませんが、scope属性と組み合わせてid/headers属性を使用して本当にうまくいっています。マークアップはより冗長ですが、これはJAWSのものを単純化するように思われ、結果としてデータの解釈に問題が少なくなります。

これはあなたの例では、ID /ヘッダをどのように見えるかです:

<table> 
    <tr> 
     <th id="scores" colspan="3">Scores</th> 
    </tr> 
    <tr> 
     <th id="english" scope="col">English</th> 
     <th id="maths" scope="col">Maths</th> 
     <th id="science" scope="col">Science</th> 
    </tr> 
    <tr> 
     <td headers="scores english">12</td> 
     <td headers="scores maths">16</td> 
     <td headers="scores science">20</td> 
    </tr> 
</table> 
+0

素晴らしいもの、ありがとう。私は、誰もが自分のクォークにコーディングするのではなく、スペックをサポートしているスクリーンリーダーの側に傾いていますが、そのクォークを文書化するのは素晴らしいことです。 –

1

おそらく、キャプション機能を使用するためのより良い適しているかもしれないが...

<table> 
    <caption>Scores</caption> 
    <thead> 
    <tr> 
     <th scope="col">English</th> 
     <th scope="col">Maths</th> 
     <th scope="col">Science</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td>12</td> 
     <td>16</td> 
     <td>20</td> 
    </tr> 
    </tbody> 
</table> 

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption

+0

ああ - はい、かなり可能性があります。私が念頭に置いていた実際の使用例は、私の例のHTMLよりも多くの列を持つ表でした。そのため、いくつかの列にまたがる見出しは実際には表全体に及んでいませんでした。それに応じて例を修正します。 –

+1

Gotcha。 IDの使用におけるDaveの反応は、まさにあなたが探していたものと思われます。あなたは、4年前に知っている:) – MetalAdam

関連する問題