カレンダー:テーブルまたはリスト?

背景



タイトルに示されているトピックを検索するために、レポートシステム用のカレンダーを作成するタスクを促されました。 注目に値するのは、私の行動が私が見つけて翻訳した記事の著者の行動をほぼ正確に繰り返したことです(カットの下)。

カレンダーを作成するタスクに到達したので、私は「反表形式で」と考えました。そして、熟考した後、リストからカレンダーを打ちました。 しかし、仕事の日とすべての試練の終わりまでに、私も記事の著者として家に帰る道に押し込まれました-しかし、曜日はどうですか?

途中で、この質問を熟考し、Googleのクエリ-カレンダーテーブルまたはリストを作成しました。 最初のリンクは私を魅了し、カレンダーがまだ表ではなくリストであるという事実に関する私の考慮事項を確認しました。

もちろん、私が独創的であるふりをすることはありません。おそらくこのトピックはすでに取り上げられていますが、この文脈ではまだ出会っていません。 インターネットのロシア語の部分で、私はニュートリノのカレンダーの経験に関する記事を何とか読んでみましたが、提案された解決策にはまだ驚きましたが、残念ながら、セマンティクスについてはあまり考えませんでした)

将来の誤解を防ぐために、私は見つけた記事を翻訳することにしました。それは非常に説得力があり、かなり完全にカバーされたトピックを明らかにするからです。 私の意見では、翻訳ではすべてが順調に進んでいないので、翻訳に対するあなたの批判も期待しています)





多くの場合、開発者が最初にマークアップとレイアウトの目的でHTMLとCSSを使用するとき、彼または彼女はテーブルを放棄し、すべてのコストでそれらを使用することを避ける傾向があります。 開発者はこの方法でCSSの新たな力を利用するための多くの創造的なアプローチを見つけることができると彼らは信じているので。 これは深刻な不便を引き起こす可能性があります。



このデータは表形式ですか?





開発者にとっての次のステップは、マークされたコンテンツの意味について考え始め、最も意味的な解決策を選択することです。 データが本質的に表形式である場合は、恐れずにマークアップしてください! テーブルは悪ではなく、長年にわたって悪用されてきたのは彼らのせいではありません。 CSSを初めて使い始めたとき、私はその機能に満足し、可能な限りそれらを使用したいと考えました。 単純な問題に対するいくつかの解決策を思いつきました。他の開発者も同じことを言うことができると確信しています。



カレンダーはテーブルだと言います





事実、これは本質的に表形式のデータであり、それに応じてマークアップする必要があります。 私が話したい一例は、月間カレンダーです。 CSSを学習した後、カレンダーを作成するように求められたとき、最初に使用したいのは順序付きリスト(OL)でした。 私は「反表」と考え、順序付けられたリストに基づいて非常に見栄えの良いカレンダーを思いつくのに数時間費やしました。 唯一の迷惑はセマンティクスでした。



その後、すべてが正しく見えた。 カレンダーは実際には、最初から最後までの、希望する月の単なる日のリストでしたが、どうしてそれをテーブルにできますか? 私が考慮しなかったのは、曜日を作成するための上部のオプションリストの項目です。 また、カレンダーがテキストブラウザでどのように見えるかについても考えませんでした。 私はCSSの狂信者であり、これらのテーブルを二度と見たくありませんでした。



カレンダーがテーブルなのはなぜですか?





私の意見では、カレンダーは確かに表形式のデータと見なされる必要があります。 日付は、曜日に基づいてグリッド内の特定の場所に配置されます。 グリッド上の特定の位置に1日だけ、それらは重複しません。 月と曜日の名前は、テーブルの見出しに含めることができます。これは、見出しであるためです。 これらは以下のデータに意味を与え、どの曜日が日付に対応するかの説明を提供します。



いくつかの可用性ノート





表形式のカレンダーは、リストとは対照的に、テキストブラウザでも見た目が良くなります。 「リスト上」に作成されたカレンダーがテキストブラウザで表示されると、特定の日に関連付けられた任意のコンテンツを伴う日のリストが表示されます。 これは問題ありませんが、この日付または曜日が対応する曜日がわからないため、利便性が失われます(曜日のリストはリストで作成され、一番上になりました)。 テキストブラウザでの「表」カレンダーの表示は、CSSで動作する最新のブラウザと同じです。 表の見出しはコンテンツの理解を容易にし、情報は必要に応じて編成されます。



音声ブラウザにアクセスできないため、「表形式」のカレンダーが視覚障害のある人に適しているかどうかはわかりません。 ただし、 Fangsを使用すると、優れた分析を行うことができます。 まず、情報はテーブルに直接提供されます。 説明(概要)、行数、列数、およびテーブルヘッダー。 それからあなたは数日間進みます。 残念ながら、この日付またはその日付が週のどの曜日にあるかを知る利点を失っています。



何を言おうとしています





一般的に、カレンダーの機能はテーブルが提供するものとうまくいくと思います。 私の意見では、カレンダーは意味的にはテーブルであるため、それに応じてマークする必要があります。 リストベースのカレンダーは、曜日を作成するために追加のアイテムを含める必要があるため、効果的ではありません。 この理由は、たとえば、パネル上にスペースがほとんどないため、曜日が不要なためです。 個人的には、これは良い言い訳だとは思いません。 曜日のヘッダーが不要な場合は、theadにdisplay:noneを設定します。 常にセマンティクスを念頭に置いてください;最終的には大きな助けになるでしょう。



All Articles