【timeタグ】マシンリーダブル形式で日付や時間を示してみよう!「HTML・解説・初心者向け」- ノブレコ
★<time>タグの特徴
・タグのカテゴリ ―― インライン要素。
・コンテンツモデル ―― フローコンテンツ・フレージングコンテンツ・パルパブルコンテンツ。
・タグの省略 ―― 不可。(開始タグと終了タグが必要)
・使用可能な親要素 ―― フレージングコンテンツを許容するすべての親要素。
・グローバル属性を持つ。
・ARIAロール ―― 標準でのARIAロールはなし。
<time>の説明
<time>タグとは
タイムタグは、その名の通り、時間や日付を示すためのタグです。
時間や日付をテキストとして記述し、マシンリーダブルなデータとして、ユーザーにというよりは、CPUなどの機械に対して時間や日付を認識させる目的のほうが強い要素になります。
検索結果などにも影響を与える要素になります。
■使用目的
この<time>要素で機械可読な時刻などを記述しておくと、SEO対策の向上させたい場合や、リマインダーなどの時間管理ソフトウェアの機能で使えたりするということが挙げられます。
一般的に、datetime属性と併用して使用されることが多いです。
しかし下記リストにありますように、<time>要素にdatetime属性を付けるか付けないかで、扱える内容が変わるので少し注意が必要です。
datatime属性の有る無し
- datetime属性あり
datetime属性が付いている場合は、内容モデルがフレージングコンテンツに属して、他のフレージングコンテンツを子要素にすることができるようになります。
またテキスト内容を含むこともできるようになります。
- datetime属性なし
datetime属性が付いていない場合は、内容モデルがフレージングコンテンツにならないため、日時形式が定められたフォーマットなテキストしか入れることができません。(他の子要素を持つことはできない)
また、日時のテキストをマシンリーダブル(CPUである機械がwebページ内で記述されている内容を認識、または理解、解釈すること)なデータであることを表します。
補足1
detetime属性の有る無しでの大きな違いは、内容モデルのフレージングコンテンツに属するか属さないかというところです。
これによって他のフレージングコンテンツを持つ要素を子要素にできるかできないかという扱いに変化するのが大きなポイントとなります。
補足2
datetime属性が無い場合にマシンリーダブルなデータになると前述していますが、datetime属性が有る状態でもマシンリーダブルなデータで表すことが可能です、ですから<time>要素を使用する場合は、セットでdetetime属性を付けて使用するほうが他の要素を扱う幅も広がりますし、利便性の向上に繋がりますのでオススメです。
■日時データのフォーマット表
下記の表に記載されているのが、日時を記述するフォーマットな形式となっています。
年・月・日 | 2022-09-18 |
年・月 | 2022-09 |
月・日 | 09-18 |
年 | 2022 |
年・週 | 2022-W36 |
時刻 | 23:00 23:00:59 |
タイムゾーンオフセット | (+、-)0900 (+、-)09:00 |
日付と時刻(オフセットなし) | 2022-09-18T23:00 2022-09-18T23:00:59 2022-09-18 23:00 2022-09-18 23:00:59 |
日付と時刻(オフセットあり) | 2022-09-18T23:00+0900 2022-09-18T23:00+09:00 2022-09-18 23:00-0900 2022-09-18 23:00-09:00 |
※ 時間や日付を要素内に記述する場合は、上記の形式に従って記述します。
もし誤った日時形式で記述した場合、コンピュータが正確に読み取れずにエラーとなります。
使用上の注意点
① 日時形式が適切でない場合はエラーになる。
例えば西暦を記述するとして、西暦の年数を123と記述すると機械は可読してくれません。
このようなケースでは、年数を0123というように適切な形式で記述する必要があります。
② 現在の暦法であるグレゴリオ暦からの機械可読が可能。
現在の西暦(キリスト暦)・グレゴリオ暦(太陽暦)以前の時間を記述するのには適さない。
例えば、古生時代や三畳紀、ジュラ紀、白亜紀などの中世時代など紀元前となるものを示すのには向いていない。
③ ユーザーに時間や日付を示したい場合は、<time>要素は使わくてもよい。
先述しましたが、この要素はあくまでも、コンピュータである機械に対して、時間や日付を認識させるための要素です。
内容モデル
<time>要素の内容モデルは、datetime属性の有無で変わってきます。
datetime属性が有る場合は、「phrasing」になり、フレージングコンテンツを持つ他の要素を子要素にすることができます。
また時間や日付のフォーマット以外に、テキスト内容を後述することもできます。
無しの場合は、内容モデルはなくなり、その他の要素を子要素にすることはできません。
したがって、無しの場合は<time>要素内に仕様で定められた日時形式のテキスト(時間や日付)だけを記述することができます。
アクセシビリティでの注意点
<time>要素には、標準でのARIAロールはありません。
スクリーンリーダーなどでは特別な読み上げなどをされることはないでしょう。
近い将来WAI-ARIA1.2で新たに<time>要素にtimeロールが導入されるかもしれません。
<time>の記述例
■基本的な使い方の例
★HTML
★実行結果
※ <time>要素やdatetimeの値に記述する時間や日付は、前述したフォーマット表から選んで自分に合った内容を使ってみてください。
※ 時間や日付以外のデータを機械可読にしたい場合は、<data>要素を使用します。
まとめ
この記事では、<time>タグについての解説をいたしました。
このタグは、ユーザーに時刻などを認識させるもではなく、CPUなどの機械に読み込ませて情報を認識させるためのタグになります。
ただ単にユーザーに認識してもらいたい場合などには、<span>要素内などに時間や日付を記述するといった方法でもOKです。
<time>要素はを普段使うことはあまりないかもしれませんが、この要素を使うことで、検索エンジンの結果などにも影響があるので、記述する機会があればHTML文書内に使ってもいいタグではないかと思います。
この記事が少しでも皆さんのお役に立てれば幸いです。
最後まで読んでいただき、ありがとうございました。またなん(^///^)