Hop step XHTML―ホップ ステップ XHTML

Section 5:基本的な属性(2)

 本節では,Section 4 に続いて,多くの要素に共通の基本的な属性を紹介していく。

国際化に関する属性(I18N 属性)

 “国際化に関する属性”は,主に言語(○○語,ような自然言語を指す)の指定に関するものである。XHTML 1.1 では,以下の 2 つの属性がこれにあたる。

国際化に関する属性
属性名属性値備考
dirキーワードその要素のテキストの流れる向き
xml:lang言語コードその要素の言語コード

dir 属性

 dir 属性は,その要素でテキストがどの方向に流れるかを指定する。値はキーワードで,

ltr
左から右。
rtl
右から左。

のいずれかを与える。ここで,XHTML では,キーワードの大文字と小文字は区別される。したがって,値は上に示したように小文字で与えなければならない。

 “横書きは左から右”と思われる方も多かろうが,ヘブライ語・アラビア語・ペルシャ語など,“右から左”に書く言語も存在する。日本語も,かつては横書きは“右から左”だった。多くの場合,テキストの流れる向きはそこでの言語によって決まるが,複数の言語が混交しているテキストでは自動的に決まらないこともあり,この場合に言語と dir 属性の値を独立に決める必要が生じてくる。

 ただし,多くの単純な場合は,使用している言語に合わせて dir 属性を設定することになる。

 例外として,bdo 要素の dir 属性のみは,同名であるが役割が異なる。これについては,テキストの流れる向きの詳細の説明と併せて後述することにしよう

xml:lang 属性

 xml:lang 属性は,要素(この属性が書かれているタグを含む)が何語で書かれているかを明示するものである。言語の指定は,テキストの処理,テキストの表示処理,読み上げ処理(スタイルシートを含む)に影響を及ぼす。

 たとえば,一般に,q 要素は,ブラウザ出力時に前後に引用符が付加されることが要請される。言語によって一般的な引用符は異っており(日本語ではかぎかっこ「 」,英語では二重引用符 “ ”,フランス語ではギュメ « »,など),これが q 要素の処理の際に働く(引用符はスタイルシートによっても指定可能である)。

 また,読み上げに関しては,同じつづりでも言語によって読み・意味が異なる単語もある。たとえば,英語で“rat”(読みはラット)は“ねずみ”の意だが,ドイツ語で“Rat”(読みはラート)は“助言”である。

 それで,この xml:lang 属性には言語コードと呼ばれるものを与える(RFC3066 で定義されている)。たとえば,次のようなものがある。

ja
日本語。
en
英語。
fr
フランス語。
de
ドイツ語。
zh
中国語。
ko
韓国語。

これに,ハイフンに続いて国名,方言名を従えることがある(たとえば,“en-US”:アメリカ英語)。言語コードは大文字小文字を区別しない。このほかの言語コードについては,後に詳しく説明することにする。

 要素の言語を指定するのに,XHTML 1.0 までは,lang 属性があったが,XHTML 1.1 ではこの xml:lang 属性のみになる。

 XML では,“xml:”を冠する属性は特別な扱いを受けるが,XHTML をふつうに使っている範囲においては別段気にとめる必要はない。よって,本チュートリアルシリーズでは,“xml:”を冠する属性も他の属性と同列に扱う。

 さて,これらの属性の使い方であるが,多くの単純な場合,文書中での言語が決まればテキストの流れる向きも決定される。たとえば,日本語の XHTML 文書であれば,html 要素の開始タグに次のように付記しておくことが考えられるだろう。

<html xml:lang="ja" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">

また,ある引用部分が英語であれば,次のように記述する。

<blockquote xml:lang="en">
……引用した英文……
</blockquote>

 dir 属性と xml:lang 属性は,指定した要素の子要素(その要素の直接の要素の内容として含まれる要素)で指定され直さない限り,その要素での属性値が引き継がれる(継承)。

 さしあたりは,上記程度の理解でよいだろう。より詳細な解説や特殊な場合については,後にまわすことにする。

 ここで“I18N”は,“国際化”=“internationalization”の縮約である。語頭の“i”と語末の“n”の間に 18 文字あることに由来する。

イベント属性

 イベント属性は,“固有イベントモジュール”によって導入される。要素で発生したイベントをハンドルするスクリプトを記述する属性群である。

コア属性
属性名属性値備考
onclickスクリプトその要素がクリックされたときに実行されるスクリプト
ondblclickスクリプトその要素がダブルクリックされたときに実行されるスクリプト
onmousedownスクリプトその要素上でマウスボタンが押された瞬間実行されるスクリプト
onmouseupスクリプトその要素上でマウスボタンが離された瞬間実行されるスクリプト
onmouseoverスクリプトその要素上にマウスポインタが入ったときに実行されるスクリプト
onmousemoveスクリプトその要素上でマウスポインタが動いたときに実行されるスクリプト
onmouseoutスクリプトその要素上からマウスポインタが出たときに実行されるスクリプト
onkeypressスクリプトその要素上でキーが押され,離されたときに実行されるスクリプト
onkeydownスクリプトその要素上でキーが押された瞬間実行されるスクリプト
onkeyupスクリプトその要素上でキーが離された瞬間実行されるスクリプト

 たとえば,

<h1><img id="logo" src="logo.gif" alt="Academic HTML" width="480" height="120" onmouseover="animate();" onmouseout="stop();" /></h1>

では,上記の img 要素上にマウスポインタが入ってくると,スクリプト“animate();”が実行される。同様に,マウスポインタが出て行くと,“stop();”が実行される。

 要素によっては,これらの属性が定義されていても,イベントに対して反応しないことがある。これらは,ドキュメントオブジェクトモデル(DOM)などで規定される。

 また,固有イベントモジュールは,ここにあげた基本的なイベント属性のほかに,要素固有のイベント属性を追加する。これらについては,それぞれの要素を紹介するときに,説明することにする。

 スクリプト処理に関しても,詳しくは後述することにしよう。