エヌ・ティ・ティ・ドコモとソフトバンクの一部を除いた最新機種では、モバイルブラウザでもフレーム及びインラインフレームをサポートしております。
但し、平成21年12月 4日現在、KDDI/沖縄セルラーのモバイルブラウザでは全くサポートしておらず(PCサイトビューワに導入されているオペラブラウザは当然サポートしていますが)、またドコモも未対応端末の方が遙かに多く、従って全ての端末でこの機能を利用出来る訳ではない事は絶対に忘れないでください。
実際のフレームの使い方については、フレームについてで解説しておりますので、そちらをご覧頂く事として、携帯電話での制限を中心に解説します。
ソフトバンクでは在来HTMLではフレームセットを定義していないようですので、XHTMLで書いた方が良いでしょう。
フレームの枠組みとなるフレームセット文書に用いる事の出来る公的な文書型は、XHTML 1.0 フレームセットと言う事になります。
XHTML 1.0 フレームセットの文書型宣言は以下の通りです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
一方、フレームに嵌め込まれるコンテンツ文書については、特に規定は無いのですが、フレームに嵌め込まれずに開かれる場合もあるため、そのような状況に対応している XHTML 1.0 トランジッショナル文書型が良いでしょう。
<frameset>要素とはフレームの枠組みで、<body>要素の直後(つまり、<html>要素の直下)に位置します。
また、<frameset>要素の直下に入れ子となる事も出来ます。
携帯電話向けサイトに於いて、<frameset>要素で利用出来る属性には以下のものがあります。
<frame>要素とは実際に嵌め込まれるフレームで、<frameset>要素直下に位置します。
携帯電話向けサイトに於いて、<frame>要素で利用出来る属性には以下のものがあります。
尚、本来XHTMLではname属性のような固有名を与える属性はid属性に置き換えられなければならないものとされておりますが、ドコモではname属性をフレーム名として定義しているため、実際には双方を記述する必要があります。
また、公式の<frame>要素ではもっといろいろな属性が定義されておりますが、
ため、他の属性は使わない方が安全でしょう。
<noframes>要素とはフレーム非対応環境での代替コンテンツです。
携帯電話向けサイトでは、必ず有効なコンテンツを持った<noframes>要素を記述しなければなりません。
初めに書いておりますが、携帯電話ではフレームに対応していない端末の方が遙かに多いのが現状です。
ですから、フレームを用いるのは構わないのですが、必ずフレーム非対応環境の事も考えて作成するようにしてください。
具体的には、以下の事を遵守してください。
実際にフレームの枠組みとなる文書については、必ず有効な内容を持った<noframes>要素を<frameset>要素内容の一番初めか一番終わりに置いてください。
このとき、<noframes>要素の内容となる文書は、
にしてください。
フレームに嵌め込まれるコンテンツ文書類には、必ずフレームに嵌め込まれていない状態でも最低限のナヴィゲーションを保証するようにしてください。
具体的には、最低限のナヴィゲーションやメニューを内容に持った<noframes>要素を文書の後ろの方に置いておきます。
フレームについてでも申し上げた事ですが、フレームを用いる場合、対応出来ない環境の事を考えると、普通にフレームを用いずにサイトを作る以上の手間が掛かるものです。
その事からも、フレームが使えるようになった程度に考えておいて、サイト作りではフレームを使おうと思わない方が良いかと思います。
一方、インラインフレームを用いる場合は、以下のようにします。
ソフトバンクでは在来HTMLではインラインフレームも定義していないようですので、XHTMLで書いた方が良いでしょう。
インラインフレームは非推奨ではないのですが、ストリクトHTMLからは削除されております。
従って、トランジッショナル文書型を用いる事となります。
XHTMLで言えば、XHTML 1.0 トランジッショナルが該当します。
<iframe>要素とは文章中に埋め込まれるインラインのフレームです。
尚、本来XHTMLではname属性のような固有名を与える属性はid属性に置き換えられなければならないものとされておりますが、ドコモ・ソフトバンクともname属性をフレーム名として定義しているため、実際には双方を記述する必要があります。
また、公式の<frame>要素ではもっといろいろな属性が定義されておりますが、
ため、他の属性は使わない方が安全でしょう。
携帯電話ではインラインフレームに対応していない端末の方が遙かに多いのが現状です。
このため、インラインフレームに対応していない環境でも適切にアクセス出来るよう、<iframe>要素の内容として、代替となるHTMLを記述するようにしてください。
例えば、用語の説明をインラインフレームで埋め込む場合、それを埋め込めない環境向けに、埋め込もうとしている用語集のページへのリンクを当該<iframe>要素の内容として記述します。
.mobiドメインでは、対応出来ない端末でのフレームの使用を禁止しております。
従って、対応出来ない端末には必ずノンフレームのコンテンツを配信するようにしないとドメイン剥奪の恐れが生じます。