meta
要素since: 31st/Aug./2001; last modified: 8th/Sep./2001
meta
要素タイプはメタ情報モジュールに含まれる要素で、 head
要素の子要素として定義されています。 head 要素は任意の個数 meta 要素を持って良いことになっています。
meta
要素タイプの役割は、文書のヘッダーとして、 HTTP ヘッダーへの出力など、文書のプロファイルを指定することです。
meta
要素 | 属性 | 最小内容モデル |
---|---|---|
meta |
I18N , content * (CDATA), http-equiv (NMTOKEN), name (NMTOKEN), scheme (CDATA) |
EMPTY |
実装: DTD
meta
要素は空要素であり、内容モデルを持ちません (EMPTY)。従って、タグの記述方法が、空要素以外の要素とでは変わります。開始タグの末尾を " />
" としてください:
<head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS" /> <title>XHTML 1.1 とはなんだろうか</title> </head>
スラッシュの直前に半角スペースが一つ挿入されているのは、後方互換のためです。
I18N
xml:lang
属性name
= name [CS]content
= cdata [CS]scheme
= cdata [CS]head
要素の profile
属性と連動します。http-equiv
= name [CI]name
属性の代わりとして働き、 content
属性値を値とするプロパティの名前を指定します。<meta name="Author" xml:lang="ja" content="菅井 学" />
基本的には、 name
属性のプロパティの値を content
属性の値で指定します。特に、 xml:lang
属性と併用すると、 content
属性の値の言語を指定することになります。
HTTP 応答メッセージヘッダへの出力を考えるときは、プロパティの名前は name
属性ではなく、 http-equiv
属性を用います:
<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" />
上のサンプルでは、 HTTP ヘッダに次のように出力します:
content-type: text/html; charset=Shift_JIS content-style-type: text/css content-script-type: text/javascript
ブラウザがリソースをサーバに要求すると、サーバは対応するファイルを返しますが、このときヘッダをつけて返します。このヘッダが HTTP 応答メッセージヘッダであり、ブラウザはこの情報を元に当該リソースを解析します。ここで重要な情報は、リソースの種類、基準符号化法、
XHTML 1.1 (XML 1.0) 以降では、 UTF-8
以外の文字セットを利用する場合は、 XML 宣言に於ける encoding 属性の記述が必須です。後方互換のために、 meta 要素における charset 指定も併せて記述するようにお勧めします。
<meta http-equiv="content-type" content="text/html; charset=UTF-16" />
文字符号化スキーム | charset名 | 補足 |
---|---|---|
ISO-2022-JP(RFC1468) | ISO-2022-JP | JISコード。メール、ニュースは普通これ。 |
日本語EUC(圧縮形式) | EUC-JP | UNIX用の日本語文字セット。(Extended UNIX Code packed format for Japanese) |
シフトJIS | Shift_JIS | 主にパソコン(Windows、Macintosh)で用いられている拡張 JIS。 |
UNICODE | UTF-8 | XML, Java などの標準。 |
UTF-16 | UTF-8 を拡張した文字セット。 |
charset 名(文字セット名、文字符号化方法、文字コードの種類)は大文字・小文字は区別されません。
Windows 2000 以降では内部コードの表現に UNICODE が使われるようになりましたが、入出力で使う文字セットは UTF です。紛らわしいのですが別のものです。Windows 2000 以降で UNICODE で符号化した文書は UTF-16
であり、 Machintosh などで "Unicode big endian" で符号化する場合も UTF-16
です。
meta タグで文字セットを指定する場合、符号化された文字(日本語)が現れる前に書いておかねばなりません。特に、 title 要素や meta name="keywords"
には日本語を用いるでしょうから注意が必要です。 head 要素の一番最初に書いておくことをお勧めします。
UNICODE は、7 ビットで全て表現できる ASCII で満足してきた英米圏の人には、国際化 (I18N: Internationalization) を満足する文字セットとして好評ですが、日本や中国などの膨大な文字を必要とする文化圏での実用では深刻な問題を孕んでいます。
検索エンジンによっては、その挙動を meta
要素で指定できます。
次の例では、検索エンジンに、当該文書を検索データベースに索引付けせず、リンクを辿らないように指定しています:
< name="ROBOTS" content="NOINDEX, NOFOLLOW" />
content
属性の値は、次のものが考えられます: ALL, INDEX, NOFOLLOW, NOINDEX
。順番に、「インデックスして、リンクを解析する」、「インデックスする」、「リンクを解析しない」、「インデックスしない」となっています。
次の例では、検索エンジンに拾って欲しいキーワードと当該文書の説明文を指定しています:
<meta name="keywords" content="休暇,ギリシャ,太陽" /> <meta name="description" content="牧歌的なヨーロッパの休暇" />
一部の検索エンジンでは、検索結果にこれらの情報を反映させます。
検索エンジンへの情報提供に関する詳細は、「検索エンジン対策」を参照ください。
scheme
属性content
属性値の解釈スキームを指定します:
<meta scheme="ISBN" name="identifier" content="0-8230-2355-9" />
ここでは content
属性の値が書籍を識別する ISBN コードとして解釈するように指定されています。
meta
要素による情報提供は、 head
要素の profile
属性と併用することで拡張される。