この記事はHTML 4/XHTML 1での<i>要素についての解説記事です。
HTML 5での<i>要素に関する解説記事は、HTML 5 リファレンス内のHTML 5での<i>要素をご覧ください。
斜体での表示を表す<i>要素についての解説です。
<i>要素は物理要素で、斜体で表示される文字列です。
本来、このような表示に関する要素は使わない事が望ましいとされておりますが、アクセシビリティ上それ程害にはならないと判断されたのか、現行のHTML仕様でも排除はされておりません。
使い方としては、HTMLで定義されていないインライン要素について、class属性でどんな要素であるかを明示したうえでマークアップすると言うのが考えられます。
また、ネットスケープ 4.xなどの旧型ユーザエージェントにはHTML 3.2以前では定義されていなかった論理インライン要素の一部で認識しないものがあり、そう言った旧世代のグラフィカルなユーザエージェントで閲覧している方が特別な要素である事を認識出来るように補助的に用いると言う使い方もあります。
<i>要素は、以下の文書型で利用出来ます。
<i>要素はプレゼンテーション(表現)モジュールに属します。
<i>要素はインライン要素です。
<i>要素の内容は、当然インライン要素に限られます。
<i>要素には、以下の属性が定められております。
物理マークアップを完全に否定するのであれば、<i>要素も排除勧告が出されて然るべきです。
しかしながら、そのような事は今のところありません。
恐らく、排除された<font>要素などと違って、アクセシビリティの妨げにはならないと判断されたからだと思われます。
<i>要素には複雑な物理属性は無く、ユーザスタイルシートでの調整も容易です。
そう言った事が<i>要素が排除を免れて来た理由かと思われます。
上述の通り、HTMLでは定義されていない論理表現を制作者なりにclass属性で指定して使うと言う使い方があります。
通常、HTMLにて定義されておらず且つ拡大解釈で利用出来そうな論理要素も定義されていないインライン要素については、適切なclass属性を与えた<span>要素としてマークアップする事が考えられますが、限定的とは言えせめてCSSを解釈しない旧式のグラフィカルな環境で閲覧した場合に特別な要素と認識出来るように敢えて<i>要素としてマークアップすると言う訳です。
例えば、専門用語は<dfn>要素としてマークアップする事も考えられますが、
とする考えもあります。
そのような場合には代わりに使える要素が見当たらない(それとも略語である<abbr>要素を使うか?)ので、<i class="term">要素としてマークアップすると言う事も考えられます。
尚、現在策定中のHTML 5では、<i>要素を通常斜体で表示させる事が多いテキストつまり(斜体などの表現が不可能な環境でも何らかの固有のスタイルを適用する)汎用のインライン要素として再定義する予定です。制作者はこの再定義は極めて妥当なものと考えております。
また、ネットスケープ 4.xなどの旧型ユーザエージェントで閲覧した際に、HTML 3.2また、以前では定義されていなかった論理インライン要素を認識出来るように補助的に用いると言う使い方もあります。
上記のように補助的に<i>要素を用いる場合、斜体で表示する必要は無い、或いは可能なら斜体以外の固有のスタイルを適用したい場合があるでしょう。
現行のグラフィカルなユーザエージェントの大半はスタイルシート言語(通常はCSS)で<i>要素のスタイルを自由に変更出来ます。
それこそ、スタイルシートで<i>要素を斜体表示しないようにする事も出来ます。
つまり、
と言う訳です。
実際、制作者は日本語文書ではCSSで直立体表示である特定のスタイルを適用したうえで<i>要素をHTMLでの定義のないインライン要素のための汎用インライン要素として利用しております。
CSSが使えなかったり独自のスタイルを適用している環境では斜体なり<i>要素に当てた固有のユーザスタイルが適用されるでしょうが、特定の意図を以ってマークアップしただろう事は伝わると考えて敢えて<i>要素を採用しております。
尚、補助的に用いるのであれば、それがどのような目的であるかをclass属性で明示する事をお勧めします。
<p>彼女は<q><i class="forLegacyUA">それをやってみたい</i></q>と言っていた。</p>
上記はネットスケープ 4.xなどで<q>要素を認識しないものがあるため、補助的に用いている例です。
<p>HTMLはどんな<i class="term">ユーザエージェント</i>でも適切に利用出来る事に主眼が置かれております。</p>
上記は専門用語を<i class="term">要素としてマークアップした例です。
専門用語はしばしば<dfn>要素としてマークアップされますが、<dfn>要素は本来定義語であり、従って文章中に定義が無い場合には好ましくないと言う考えからこのようにマークアップする事が考えられます。