meta要素は、HTML文書の中に文書全体に共通する情報(メタ情報)を埋め込むための要素である。メタ情報の例として「著者」「最終更新日」「文字コード」などが挙げられる。
meta要素は他の要素と違い、属性値を作成者が自由に定義することが出来る。より正確に言えばmeta要素の記述をどう処理するかは、仕様上で明確に決められていない。そのため一部の検索サイトやWebブラウザなどでは、自身のサービスを充実させるために、meta要素の値を定義し公表している。
一方、内容や処理を明確に決めていない以上、たとえ著者名など情報を埋め込んでいたとしても、それを表示に反映させるアプリケーションソフトもあれば、完全に無視を決め込むものもある。
本仕様は、正当なメタデータのプロパティ集合を定義することはしない。 プロパティ及びその正当な値集合は、プロファイルと呼ばれる参照辞書で定義される必要がある。 例えば、検索エンジンによる文書の索引づけを補助する目的で設計されたプロファイルは、「author (著者)」、「copyright (著作権)」、「keywords (キーワード)」などのプロパティを定義するであろう。
(中略)
ユーザエージェント[1]は、メタデータ機構のサポートは要求されない。メタデータをサポートしようとするユーザエージェントに対して、本仕様はメタデータをどう解釈すべきかを定義しない。
そのためmeta要素は、何が何でも記述しておかなければならないというものではない。あくまでも「無いよりはあった方がマシだろう」程度の認識にとどめておくべきである。
[註.01] Webブラウザなどを含む、Web上のデータを処理する全てのアプリケーションソフト。
基本的には、name属性にて何についての情報を埋め込むかを規定し、content属性でその情報の値を記述する。
meta要素で埋め込むべき情報は属性で定義されるため、中身を持たない空要素となる。また文書全体を対象とするため、body要素ではなくhead要素の子供となる。
name属性の代わりにhttp-equiv属性を用いると、そのHTML文書を処理するサーバの出力するHTTPヘッダの値を指定することが(定義上は)出来る。しかし、Apacheをはじめとした殆どのサーバは、現況この仕様を完全に無視している[2] そのため、多くのWebブラウザはHTTPヘッダを置き換えたと仮定して処理している。
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<meta name="author" content="久樹 輝幸">
<title>meta要素の記述例</title>
</head>
<!-- XHTMLの場合は空要素の記法に注意する -->
<body>
(省略)
</body>
</html>
[註.02] もしするとすればSSIと同じくデータの解析が必要であり、処理負担が増大することが要因と考えられる。
筆者が知っている範囲で代表的なmeta要素の値を紹介する。
繰り返すが、このメタデータをどう扱うかは、扱う側に完全に依存する。書いたからといって絶対確実という代物ではないと言うことを、作成者は常に認識して欲しい。
<meta name="author" content="久樹 アマテル">
<meta name="copyright" content="(C) 2004-2006 Hisaki Amateru">
<meta name="generator" content="MKEditor">
<meta name="classificationr" content="HTML">
<meta name="rating" content="general">
<meta name="rating" content="child">
<meta name="rating" content="adult">
<meta name="robots" content="index follow">
<meta name="robots" content="index nofollow">
<meta name="robots" content="noindex follow">
<meta name="robots" content="noindex nofollow">
<meta name="description" content="meta要素の使い方と代表的な値の説明">
<meta name="keyword" content="高天原,久樹 輝幸,WWW,HTML,CSS,meta要素">
<meta name="WWWC" content="2006/09/24 12:15">
<meta name="WWWC" content="meta要素覚書を公開">
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="content-script-type" content="text/javascript">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="refresh" content="5; URL=index.htm">
HTTPヘッダについてのより詳しい情報はHTTP Header Fieldsを参照されたい[3]
もしHTTPヘッダの値とmeta要素の記述と実際のデータとが一致しない場合、アプリケーションソフトによっては文字化けなどの不具合をきたす虞があるため、注意して欲しい[4]
久樹 輝幸