meta 要素

since: 31st/Aug./2001; last modified: 8th/Sep./2001

meta 要素タイプはメタ情報モジュールに含まれる要素で、 head 要素の子要素として定義されています。 head 要素は任意の個数 meta 要素を持って良いことになっています。

meta 要素タイプの役割は、文書のヘッダーとして、 HTTP ヘッダーへの出力など、文書のプロファイルを指定することです。

Metainformation Module [拙訳]
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]
http-equiv = name [CI]

サンプル

<meta name="Author"
      xml:lang="ja" content="菅井 学" />

基本的には、 name 属性のプロパティの値を content 属性の値で指定します。特に、 xml:lang 属性と併用すると、 content 属性の値の言語を指定することになります。

HTTP 応答メッセージヘッダへの出力

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 応答メッセージヘッダであり、ブラウザはこの情報を元に当該リソースを解析します。ここで重要な情報は、リソースの種類基準符号化法基準スタイルシート言語、基準スクリプト言語です。上の例では、順番に "HTML", "Shift_JIS", "CSS", "JavabScript" が指定されています。

文字コード

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-JPJISコード。メール、ニュースは普通これ。
日本語EUC(圧縮形式)EUC-JPUNIX用の日本語文字セット。(Extended UNIX Code packed format for Japanese)
シフトJISShift_JIS主にパソコン(Windows、Macintosh)で用いられている拡張 JIS。
UNICODEUTF-8XML, Java などの標準。
UTF-16UTF-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 属性と併用することで拡張される。


Copyright © 2001, SUGAI, Manabu. All rights reserved. 著作権は放棄していません。