質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1082閲覧

テーブルタグでアクセシビリティ的にひっかからないようにするには

reiNaka

総合スコア6

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2020/06/17 11:26

前提・実現したいこと

テーブルタグで表を作成しました。
用途別に窓口とお問い合わせの電話番号をのせたものです。
スマホでも1列表示で見やすくできました。
しかし、アクセシビリティ的に列と項目との関連性がないということで保存の段階でひっかかります。

・実現したいことは、
用途別の窓口、電話番号が見やすく伝えられ、かつアクセシビリティ的に問題のないものにすることです。

該当のソースコード

html

1 <table class="table01"> 2 <caption>お問い合わせ窓口</caption> 3 <thead> 4 <tr> 5 <th></th> 6 <th>お問い合わせ窓口</th> 7 <th>電話番号</th> 8 </tr> 9 </thead> 10 <tbody> 11 <tr> 12 <th>外来診察・検査・予約</th> 13 <td ><p>外来受付</p></td> 14 <td ><p><a href="tel:0000-00-0000">0000-00-0000</a></p></td> 15 </tr> 16 <tr> 17 <th>初診</th> 18 <td><p>○○支援室</p></td> 19 <td><p><a href="tel:0000-00-0000">0000-00-0000</a></p></td> 20 </tr> 21 <tr> 22 <th>リハビリ</th> 23 <td ><p>リバビリテーション部</p></td> 24 <td><p><a href="0000-00-0000">0000-00-0000</a></p></td> 25 26 </tr> 27 <tr> 28 <th>学校・園<br>福祉サービス事業所からの<br>お問い合わせ</th> 29 <td><p>○○支援室</p></td> 30 <td><p><a href="0000-00-0000">0000-00-0000</a></p></td> 31 32 </tr> 33 <tr> 34 <th>上記以外</th> 35 <td><p>事務部<br></p></td> 36 <td ><p><a href="0000-00-0000">0000-00-0000</a></p></td> 37 38 </tr>

該当のソースコード

css

1table.table01 { 2 width:100%; 3 border-right:#3EB1C6 solid 1px; 4 border-collapse: collapse; 5} 6table.table01 thead th { 7 background:#3EB1C6; 8 color:#FFF; 9 padding:5px 10px; 10 border-right:#FFF solid 1px; 11 border-bottom:#FFF solid 1px; 12} 13table.table01 thead th:last-child { 14 border-right:#3EB1C6 solid 1px; 15} 16table.table01 tbody th { 17 background:#3EB1C6; 18 color:#FFF; 19 padding:5px 10px; 20 border-bottom:#FFF solid 1px; 21 vertical-align:top; 22} 23table.table01 tbody tr:last-child th { 24 border-bottom:#3EB1C6 solid 1px; 25} 26table.table01 tbody td { 27 background:#FFF; 28 padding:5px 10px; 29 border-left:#3EB1C6 solid 1px; 30 border-bottom:#3EB1C6 solid 1px; 31 vertical-align:top; 32} 33 34@media screen and (max-width: 640px) { 35table.table01 thead { 36 display:none; 37} 38table.table01 tbody th { 39 display:block; 40} 41table.table01 tbody td { 42 display:block; 43} 44table.table01 tbody td::before { 45 content: attr(label); 46 float: left; 47 clear:both; 48 font-weight:bold; 49} 50table.table01 tbody td p { 51 padding-left:0em; 52} 53}

試したこと

お問い合わせ窓口 と 電話番号という項目をつけたしてみましたが変わりませんでした。

何かいい方法があれば教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

new1ro

2020/06/17 12:16 編集

> しかし、アクセシビリティ的に列と項目との関連性がないということで保存の段階でひっかかります。 この状況を見たことがないのですが、エラーが表示されているツールは何でしょうか? ・8341 (官公庁でよく使用されるCMSとして聞いたことがあります) ・Adobe Dreamweaver ・Atom ・Google Chromeの開発ツール ・WordPressのプラグイン など.. (個人情報などの問題がなく、可能であればキャプチャがあると回答者が増えるかもしれません。)
reiNaka

2020/06/17 12:51

官公庁のCMS です… キャプチャは今ないです。すみません。
reiNaka

2020/06/17 18:40

他のテーブルをさがしてどうなっているか確認してみます。
reiNaka

2020/06/20 23:52

アクセシビリティの問題は、 列のヘッダーにはscope="col"を、行のヘッダーにはscope="row"を入れることで大丈夫になりました!
guest

回答2

0

いくつか原因を想像して回答してみます。


[1] 以下の記述が欠けているのでエラーが出てしまっている、ということはないですか?

HTML

1 </tbody> 2</table>

[2] <thead>内の<th>について、空欄になっているのがあることが、エラーの原因かもしれません。
何か文字を入力してみて、エラーが消えるか試してみてもいいかもしれません。


[3] (私はデザイナーなのですが)デザイン視点でいうと、以下のように思われます。

  • thの中央揃えは見づらい
  • thだけ上下中央揃えではないので違和感がある。tdにそろえて上下中央揃えにしたい

CSS

1/* スマホのときは左右中央揃えでいいと思いますが、PCのときは左揃えが読みやすそうです。 */ 2table.table01 tbody th { 3 background: #3eb1c6; 4 color: #fff; 5 padding: 5px 10px; 6 border-bottom: #fff solid 1px; 7 8 9 /* vertical-align: top; */ 10 vertical-align: middle; /* 上下中央揃えにしたほうがよさそうです。 */ 11 text-align: left; /* 好みの問題かもしれませんが、このシチュエーションで中央揃えは見づらいです。 */ 12}

投稿2020/06/17 12:27

編集2020/06/17 12:28
new1ro

総合スコア4528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reiNaka

2020/06/17 18:39

そうですね。 上記のようにしたらすっきりしました。 </tbody></table>は、質問への記入もれだったようです。
reiNaka

2020/06/20 23:51

### 該当のソースコード ```html <table class="table01"> <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 ><p>外来受付</p></td> <td ><p>☎<a href="tel:0000-00-0000">0000-00-0000</a></p></td> </tr> <tr> <th scope="row">初診</th> <td><p>○○支援室</p></td> <td><p>☎<a href="tel:0000-00-0000">0000-00-0000</a></p></td> </tr> <tr> <th scope="row">リハビリ</th> <td ><p>リバビリテーション部</p></td> <td><p>☎<a href="0000-00-0000">0000-00-0000</a></p></td> </tr> <tr> <th scope="row">学校・園<br>福祉サービス事業所からの<br>お問い合わせ</th> <td><p>○○支援室</p></td> <td><p>☎<a href="0000-00-0000">0000-00-0000</a></p></td> </tr> <tr> <th scope="row">上記以外</th> <td><p>事務部<br></p></td> <td ><p>☎<a href="0000-00-0000">0000-00-0000</a></p></td> </tr> </tbody> </table> ``` ```css table.table01 { width:100%; border-collapse: collapse; } table.table01 thead th { background:#3EB1C6; color:#FFF; padding:10px 15px; border-right:#fff solid 1px; border-bottom:#fff solid 1px; } table.table01 thead th:last-child { border-right:#3EB1C6 solid 1px; } table.table01 tbody th { background: #3eb1c6;    color: #fff;     padding: 5px 10px;     border-bottom: #fff solid 1px; vertical-align: middle; /* 上下中央揃え。 */;   text-align: left; } table.table01 tbody tr:last-child th { border-bottom:#3EB1C6 solid 1px; } table.table01 tbody td {border-bottom:#3EB1C6 solid 1px; border-right:#3EB1C6 solid 1px; } @media screen and (max-width: 640px) { table.table01 thead { display:none; } table.table01 tbody th { display:block; } table.table01 tbody td { display:block; } table.table01 tbody td::before { content: attr(label); float: left; clear:both; font-weight:bold; } table.table01 tbody td p { padding-left:0em; } ``` PCでの表は大変みやすくなりました。 スマホ表示での枠線があるところとないところができてしまいました。 どうすればよくなりますか。 それから当初のアクセシビリティの問題は、 列のヘッダーにはscope="col"を、行のヘッダーにはscope="row"を入れることで大丈夫になりました。
guest

0

自己解決

列のヘッダーにはscope="col"を、行のヘッダーにはscope="row"を入れることで解決しました。

投稿2020/06/21 06:09

reiNaka

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問