レイアウト用テーブルは落とし穴
レイアウトにテーブルを使うとスクリーンリーダーが混乱する理由を学びます。
「レイアウト用テーブルは落とし穴」はCoddyKit上の無料Web Accessibility Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはWeb Accessibility Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Web Accessibility Academyコースには全4レッスンが含まれています。
かつてテーブルはレイアウトに使われていました
以前、開発者はtable要素を使ってページのレイアウトを構築していました。その習慣は古いコードに残っており、現在でもアクセシビリティに実害を及ぼしています。
レイアウト用テーブルが問題になる理由
スクリーンリーダーは、すべてのテーブルをデータとして扱います。レイアウトに対しても行、列、セル数を読み上げるため、意味のない構造でユーザーを圧倒してしまいます。
読み上げ順序が崩れる
レイアウト用テーブルでは、コンテンツが分かりにくい順序でセルに分散されることがよくあります。表示順序と読み上げ順序がずれてしまい、ユーザーは混乱します。
レイアウトには CSS を使う
現代のレイアウトは CSS で行います。ページを配置するにはflexboxや grid を使い、table 要素は本当の表形式データにだけ使用してください。
.cards { display: grid; grid-template-columns: 1fr 1fr; }1 次元には Flexbox
項目を行または列に並べる場合、flexboxが自然な選択です。テーブルの意味論に妨げられることなく、コンテンツに合わせてレイアウトを調整できます。
.row { display: flex; gap: 1rem; }2 次元には Grid
行と列を組み合わせる場合は、CSS のgridによって本格的なレイアウトシステムを利用できます。ページの見た目と、マークアップが表す意味を分離できます。
意味論を正しく保つ
CSS でレイアウトすれば、HTML で header、nav、main などの実際のランドマークを使用できます。スクリーンリーダーのユーザーには、セル数ではなく意味のあるページ構造が伝わります。
最後の手段:role=presentation
どうしても古いレイアウト用テーブルを削除できない場合は、role=presentationを追加してください。テーブルの意味論が取り除かれ、支援技術はそのグリッドを無視します。
<table role="presentation"> ... </table>presentation は計画ではなく応急処置
role=presentationは一時的な応急処置として扱ってください。本当の解決策は CSS へ移行することです。問題を隠すのではなく、取り除くことができます。
レイアウト用テーブルの見分け方
caption がなく、th もなく、セルに値ではなくセクション全体が入っている場合は要注意です。このパターンは、ほぼ確実にリファクタリングすべきレイアウト用テーブルを示しています。
1 つのテーブルに 1 つの目的
どのテーブルにも、簡単な問いを投げかけてください。関連する値を行と列で構成されたデータとして示していますか。そうでなければ、それはレイアウト用テーブルなので、CSS に置き換えるべきです。
クイックチェック
ページを引き継いだところ、コンテンツの列を配置するためだけにテーブルが使われていました。
振り返り:データにはテーブル、レイアウトには CSS
tableでページをレイアウトしてはいけません。flexbox または grid を使い、table は実際のデータのために確保してください。role=presentation は古いコードに対する一時的な回避策としてのみ扱います。
AI チューターと学ぶ HTML — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「レイアウト用テーブルは落とし穴」レッスンは無料ですか?
はい。「レイアウト用テーブルは落とし穴」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Web Accessibility Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Web Accessibility Academyコースには全4レッスンが含まれています。
「レイアウト用テーブルは落とし穴」で何を学びますか?
レイアウトにテーブルを使うとスクリーンリーダーが混乱する理由を学びます。 ブラウザで直接実行するハンズオンコードでWeb Accessibility Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Web Accessibility Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのWeb Accessibility Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「レイアウト用テーブルは落とし穴」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このWeb Accessibility Academyレッスンでコードを書いて実行できますか?
はい。すべてのWeb Accessibility Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- th、scope、caption要素
- 行見出しと列見出しを正しく設定する
- 複雑なテーブル:headersとidの組み合わせ
- レイアウト用テーブルは落とし穴