2012-05-04 10 views
0

508準拠のコードを作成する必要があり、ヘッダーを持たないテーブルで問題が発生しています。各行には、左の列にカテゴリ名が、右の列に値が含まれています。だから私の最初の質問は - これはデータテーブルですか?リストのように代わりに別の方法で表現する必要がありますか?それが有効なデータテーブルの場合は、各列のヘッダー名を作成する必要がありますか?この情報は、一度もカラムヘッダーを持っていない特定のフォーマットになっているので、クライアントがこれらの情報を必要としているかどうかもわかりませんが、厳密に508に準拠させるためには、 ?最後に、たとえば、スクリーンリーダーを使用している人はこれらのヘッダーにアクセスできるようにする方法がありますが、通常の視聴者には見えません。508ヘッダーのない準拠のデータテーブル?

+0

「テーブル」のように聞こえますが、「ヘッダー」は実際には左の列ですが、ヘッダー付きのテーブルの標準マークアップでそのビジュアルを取得する方法がわかりません。 私はあなたが定義リストを試してみるかもしれないと思っていましたが、それはあなたが何を記述しているのかについてはまったく正しいと感じません。 –

+0

@Brian、ああ、私はどちらも考えなかった。いいえ、それは本当に定義リストではありませんが、最初の列だけにヘッダーをスタイルすることができれば解決します。しかし、私はそれが行われていることは聞いたことがありませんが、それはオプションでなければならないようです... –

+1

おそらくスクリーンリーダーを盗聴し、いくつかのDOMの交換を行うためにいくつかの目立たないJavaScriptを使用して考えたことがありますか?視覚障害のあるユーザーにとっては、既存のテーブルを削除して、それを左の列の値でヘッダーを持つテーブルに置き換えることが理にかなっています。豪華ではありませんが、スクリーンリーダーにとっては意味的に正しいですが、他のユーザーには視覚的に正しいです。 –

答えて

2

はい、それは非常に単純な構造のデータテーブルですが、それでもです。 dlとして表現することは可能ですが、さまざまな書式設定の問題が発生し、アクセスしにくくなる可能性があります(ブラウジングツールはHTMLテーブルを特別にサポートしているため、ほとんどdl)。

508 rulesの項(g)には、「行と列のヘッダーはデータテーブルのために識別されます。」厳密に解釈すると、すべての行と各列にヘッダーが必要です。あなたの場合は、最初の列のセルは論理的に行ヘッダーになっているので、行には問題ありません。そのためには<td scope=row>を使用してください。しかし、列ヘッダーの行を追加する必要があります。

これがコンプライアンスに必要かどうかは明確ではありません。ルールには「すべて」という言葉がなく、説明文には「各表の最初の行には列見出しが含まれています」と表示されるため、「should」または「must」ではなく「should」が使用されます。

ルールで列見出しが必要な場合、その列ヘッダーはクライアント側のスクリプトで追加することはできません(スクリプトが無効な場合は存在しないため)。いくつかのブラウジング・モードでのみそれらを使用することは許容できません。ルールは一般的です(ヘッダーは「通常」をブラウズしていても実際に役立ちます)。

表示されていない人に朗読したときのページの動作を考えます。テーブルの内容が警告または説明なしで始まる場合、混乱する可能性があります。グラフィックブラウジングにおいてさえ、認知困難に部分的に悩まされるかもしれない。表の前のテキスト(見出しまたはテキスト段落内)の説明、表のキャプション、列ヘッダーの行などがすべてここで役立ちます。列ヘッダーの内容は、これの一部として計画する必要があります。状況が他のテキストで明らかにされていれば、それらはむしろ簡潔であるかもしれない。

関連する問題