iモード・ソフトバンク在来機での処理。
- コードを全面的に刷新した後継作・しらぎくモバイルシステム VIが公開されました。
今後、新規にモバイルサイトを構築される方には、しらぎくモバイルシステム VIのご利用を強く推奨いたします。
- しらぎくモバイルシステム VIは従来のしらぎくモバイルシステムとの互換性はありません。
- このため、制作者は当面従来のしらぎくモバイルシステムについても、適宜アップデートを続けていく予定です。
- PC向けに書かれたフル規格のHTML文書に対しては、しらぎくモバイルシステムFULL(開発名・HOMAKI & NAKAMA)をご利用ください。
- 利用出来るサーヴァが限られておりますが、絵文字の変換さえ出来れば良いと言う方には、ドコモ端末の絵文字を変換するだけのスクリプト・しらぎく絵文字変換スクリプトもお勧めしております。
iモード, ソフトバンク在来機, エアーエッジフォン(フルブラウザ搭載端末を除く)及びLモードでは以下のように処理されます。
- CSS非対応PCで閲覧する場合も、iモードに準じた変換となります。
テキスト処理。
タグのテキスト処理。
- 要素名は全て小文字に変換されます。
- 属性名も全て小文字に変換されます。
- 属性に関して、最小化表記となっている場合は、「属性値="属性値"」の形に変換されます。
- また、属性値は全て「"」で囲まれ、「
"」は実体参照に置換えられます。
HTML文書のタグ変換処理。
ここで挙げていないタグは、全て無視されます。
- 尚、WAP 2.0端末とソフトバンク以外の端末では、テーブルに関しては<dl>要素に変換して処理されます。詳しくはテーブルの処理についてをご覧下さい。
1. <html>要素開始タグ。
lang属性(xml:lang属性も可)の値を、言語情報として取得します。
- デフォルトの言語は日本語と見做しております。
- 現状では、日本語と英語にしか対応しておりません。日本語以外は全て英語のメッセージとなります。
- <html>要素以外のlang属性は全て無効です。
3. <body>要素開始タグ。
text, bgcolor, link, alink, vlink各属性値を、基本表示色のデータとして取得します。
尚、これらの値は予めスクリプト側でも設定出来ますが、HTML文書側で指定がある場合はHTML側での指定に上書きされます。
4. <base>要素。
href属性で指定されるURLを相対URLの基準とします。
尚、正当な仕様では相対URLが出てくる前に一回だけ記述出来る事になっており、しらぎくモバイルシステムでもこれに違背した場合は相対URLの扱いを保障出来ません。
6. <link>要素。
<link>要素は、PCで閲覧した場合及び検索エンジンがクロールする場合に、アンカーに編集されて文書に「関連ページ一覧」として付与されます。
この場合、関連ページ一覧の排列は、以下の条件に従います。
- 基本的には以下の前後関係となります。
- media属性が無いか、media属性値に「screen」が含まれているものを「PC向けページ」として纏めて並べます。
- media属性値に「handheld」か「tty」が含まれているものがその後に「モバイル向けページ」として纏められます。
尚、各カテゴリ内の順序は、HTML文書内に現れる順序に従います。
- 但し、以下に該当する<link>要素で一番初めに現れたものは、「本コンテンツPC版」として元の順番に関係無く一番初めに表示されます。
また、これに該当した<link>要素は、関連ページ一覧以外にも文書の先頭に表示される情報となります。
- media属性が無いか、media属性値に「screen」が含まれている。
- 且つ、rel="alternate"属性が付与されている。
尚、上記の条件を満たす<link>要素でも、二番目以降に現れたものは正規の順序に従って排列されます。
- 以下に該当する<link>要素は排列の対象外となります。
- rel属性もrev属性も無いもの。
- media属性があって、且つ「screen」「handheld」「tty」のいずれも含まれないもの。
- media="all"属性も該当しますのでご注意ください。
- rel属性値に「stylesheet」が含まれているもの。
関連ページ集のアンカーは、以下の通りになります。
- 「本コンテンツPC版」扱いになるアンカー。
- 元のHTML文書の<title>要素の内容をアンカーとします。
- その他の扱いになるアンカー。
-
- 空で無いtitle属性があればその値をアンカーとします。
- title属性が無いか、あっても空の場合は、rel属性値かrev属性値がアンカーとなります。
リンク先のアドレスは絶対アドレスで(モバイルシステム内で取扱われるリンク先は相対アドレスでも可)、href属性で指定します。
7. <meta>要素。
PCで閲覧している場合は、name="description"属性がある場合、出力HTML文書のヘッダに追加します。
これは主に検索エンジン対策として導入されているものです。
9. id属性。(平成19年 1月 4日)
id属性の扱い方は、
で異なる処理となります。
<a>要素及び<blockquote>要素以外の場合。
<a>要素及び<blockquote>要素以外でのid属性の扱い方は、
で異なります。
インライン要素及び<hr>要素の場合。
<a>要素を除くインライン要素(<embed>要素及び<blink>要素を含む)でid属性が附与されている場合、当該要素の直前に当該id属性値をname属性値とする空の<a>要素を出力するようにします。
- このため、<a>要素内にid属性を持つ他の要素が含まれている場合、そこでアンカーが分割されますので注意して下さい。
- また、生成される<a>要素は空要素となるため、正常にname属性がフラグメントとして認識されない恐れもあります。
<hr>要素を除くブロックレヴェル要素の場合。
<blockquote>要素及び<hr>要素を除くブロックレヴェル要素(リストアイテム要素を含む)でid属性が附与されている場合、id属性が附与されている場合、当該要素開始タグの直後に当該id属性値をname属性値とする空の<a>要素を出力するようにします。
- 例えば、
<h1…id="○○">は、
<h1…><a name="○○">に変換されます。
- 尚、この<a>要素の終了タグは、文法補正機能に依り適切な位置に自動的に附与されます。この結果多くの場合空要素にはなりませんが、稀に空要素となる場合もあり、その場合フラグメントとして認識されない恐れもあります。
- 文法上、<a>要素が直下に置かれる事を認めていない要素に於いても、同じ扱いになっておりますのでご注意下さい。
- 尚、<hr>要素は空要素のため、当該要素の直後では当該要素の直後にフォーカスが移る事になるため、インライン要素と同様の扱いとしております。
<blockquote>要素の場合。
<blockquote>要素にid属性が附与されている場合、<blockquote>要素の前に自動的に附与されるメッセージの先頭部分に当該id属性値をname属性値とする<a>要素が含まれるようにします。
- この場合、生成される<a>要素は空にはなりません。
10. リスト要素。
<dl>, <ul>及び<ol>要素内では、以下のように扱います。
- 内容は全てリストアイテム要素となるようにします。
- 余白取りのために、リストアイテム要素で無い要素をリスト要素の直下に置いている場合、その扱いは不定になります。
- 端末によって無理矢理リストアイテムにされたり、当該要素を削除されたりします。
- リストアイテムの開始タグが、リスト要素の直下に無い場合。
- リストアイテムの終了タグが正しく終わっていない場合。
- これらの場合は、一番内側のリスト要素の直下になるまで閉じていない要素を閉じ(正当なリストアイテム要素を含む)、その上でリストアイテムを開始するなどします。
- この為、仕様で認められているリストアイテム要素の終了タグ省略も可能になります。
ソフトバンクでの扱い。ソフトバンクのHTMLでもリスト要素が定義されておりますが、入れ子関係に大きな制約があるため、ソフトバンクに対してはリスト要素はそのままでは出力できません。要素の入れ個数に応じて行頭に「 」を適宜挿入し、必要に応じてマーカを付けるなどの措置を執っております。
- 第4.3320版(平成19年 7月22日)にてソフトバンク在来機向けの処理を完全にiモード向けび処理に統合しました。このため、ソフトバンク在来機に対しても通常のリストがそのまま出力される事となります。
11. <h○>要素, <p>要素, <address>要素及び<pre>要素。
ソフトバンク在来機。
ソフトバンク在来機では<address>要素及び<h○>要素は定義されておりません。
この為、どちらも<p>要素に変換されます。
更に<p>要素のalign属性も未定義なので、align="center"属性が付与されたら<center>要素に、align="right"属性が付与されたら<div align="right">要素にそれぞれ読替えられます。
- ソフトバンク在来機では、リスト要素内では全て開始タグの箇所に<br>要素が挿入され、上記の読替えによるタグは出力されません。当然、align属性も無効になります。
12. <blockquote>要素。
<blockquote>要素の前後に、以下のメッセージが付与されます。
- <html>要素にてlang属性値に「ja」を含んでいない場合は、以下のメッセージは英語になります。
尚、ソフトバンク在来機では<blockquote>要素が定義されておりませんので、タグは出力されません。代りに内容となるテキストに対して、行頭に必ず「> 」が付与されるようになっております。
<blockquote>開始タグ直前。
<blockquote>要素にtitle属性が付与されていない場合は、以下の出力になります。
<ul><li>以下引用。</li></ul>
title属性が付与されている場合は、以下の出力になります。
<ul><li>○○より。</li></ul>
- 但し、<cite>要素に関する表示色をスクリプト設定で指定している場合は、以下のようになります。
<ul><li><font color="**">○○</font>より。</li></ul>
13. <div>要素及び<center>要素。
<div align="center">要素は最終的には<center>要素に置換されます。
また、ソフトバンクでは<div>要素及び<center>要素の入れ子が禁じられています。
このため、ソフトバンクでは入れ子構造にならないようにタグが組替えられます。
- 例えば、
<div align="center">内容(1)<div align="right">内容(2)</div>内容(3)</div>となっている場合は、
<center> 内容(1) </center> <div align="right"> 内容(2) </div> <center> 内容(3) </center>
と再配置されます。
14. <form>要素。
ソフトバンク以外はそのまま出力します。
ソフトバンクでは以下の読替が行われる事に注意して下さい。
- 初期端末ではmethod="post"属性が使えないため、method="get"属性に強制変換されます。
- action属性の後ろにクエリが付いている場合、送出時にクエリが切落される仕様となっている機種があるため、クエリに関しては<input type="hidden">要素に変換されます。
- 特に、method="post"属性を付与している場合は、クエリもポストの対象となる事に注意して下さい。
- クエリが「クエリ名
=クエリ値」の書式になっていない場合はvalue属性値が空になります。また実際に受取る際に末尾に「=」が附加されるでしょう。 - クエリ名及びクエリ値に関して、URLデコードを施します。
- 実際には「%」「+」を含んでいる未エンコードのクエリもあり得ますが、エンコード済みか否かを判定する事は出来ません。
- 一番安全な方法は、初めからaction属性のURLにはクエリを付けない事です。
15. <input>要素, <textarea>要素及び<select>要素,
そのまま出力します。
尚、<select>要素内では、<optgroup>要素と<option>要素以外は全て破棄されます。
- これらの要素は仕様上、<form>要素内に無くても構わないものとなっておりますので、<form>要素内にあるかどうかは確認しておりません。
- 但し、実装上<form>要素外に書かれたこれらの要素は全て無視するユーザエージェントも存在している事は忘れないで下さい。
- 尚、<button>要素は無効となります。また、<input>要素のtype属性値に関してチェックをしておりませんので、仕様上無い属性値や実装されていない属性値を当てている場合の端末での動作は保障出来ません。
16. <marquee>要素。
そのまま出力します。
- PCの場合、対応は実装依存です。
- 現行のウェブブラウザではもじら系ブラウザ, インターネットエクスプローラ及びオペラ 7.0以降のいずれも対応しております。
18. <font>要素及び<blink>要素。
そのまま出力します。
- 但し、実機以外では<blink>要素はサポートされていないものがあり、その場合は点滅されないでしょう。
- <font>要素及び<blink>要素以外の物理インライン要素は、一切サポートされません(ソフトバンク在来機は<u>要素もサポートしておりますが、ソフトバンク以外の携帯端末がサポートしておりません)。
19. 論理インライン要素(<a>要素を除く)。
以下の要素に関しては、予め表示色をスクリプト設定で指定している場合は当該色をcolor属性値に持つ<font>要素に置換され、指定されていない場合は開始・終了タグとも削除されます。
- <cite>要素。
- <code>要素。
- <dfn>要素。
- <em>要素。
- <kbd>要素。
- <q>要素。
- <samp>要素。
- <strong>要素。
- <var>要素。
- 尚、<q>要素に関してはスタイル指定の有無に拘らず当該要素を「"」で囲みます。
以下の要素に関しては、開始・終了タグとも削除されます(スタイルを事前指定する事は出来ません)。
- <abbr>要素。
- <acronym>要素。
- <span>要素。
尚、いずれの要素も、属性は全て無効となります。
20. <a>要素。(平成19年 1月 4日)
ソフトバンクではname属性とhref属性を双方同時に指定する事が出来ません。
このため、ソフトバンクではname属性とhref属性が同時に指定されている場合は、name属性のみを持つ空の<a>要素を先行させ、name属性を削除してから処理に入ります。
- この場合、生成される<a>要素は空要素となるため、正常にname属性がフラグメントとして認識されない恐れもあります。
- また、ソフトバンク在来機ではname属性は英数字のみから成る事が仕様で規定されておりますが、これについては考慮しておりません。
尚、id属性はname属性と見なして処理されます。
- 具体的には、
<a name="○○" href="××">…</a>となっている場合は、
<a name="○○"></a>< href="××">…</a>
と置き換えられます。
href属性値に関しては、以下のようになります。
- mailto:及びtel:スキームが与えられている場合。
- そのまま出力します。
- フラグメント名のみ指定されている場合(href="#…"属性)。
- そのまま出力します。
- サイト内の画像を指定していると判定された場合。
- 当該画像を表示させるページを自動作成するCGIへのURLに変換します。
- <a>要素に「
rel="external"」属性が付いている場合(平成17年 8月26日)。 - <a>要素に「
rel="external"」属性が付いている場合はサイト内の画像で無い限り、サイト外にあるリソースと見なします。従って、「
rel="external"」属性を付けた場合、サイト内部のページであっても、当該ページを表示させるCGIのURLには変換されず、そのまま出力されます。 - サイト内のページを指定していると判定された場合。
- 当該ページを表示させるCGIへのURLに変換します。
尚、フラグメント名も指定している場合は、指定されたフラグメントが末尾に付与されます。
- サイト外と判定された場合。
- そのまま出力します。
21. <object>要素, <embed>要素及び<noembed>要素。(平成17年 9月11日)
- 第3.190版(平成17年 9月11日)から、<object>要素と<embed>要素に対応しました。
<object>要素及び<embed>要素。
<object>要素及び<embed>要素の有効条件は以下のようになります。
- <object>要素はtype属性が静止画像(
image/gif,image.jpeg及びimage/png)かフラッシュ(application/x-shockwave-flash)の場合で且つdata属性がある場合 - <embed>要素はtype属性がフラッシュ(
application/x-shockwave-flash)で且つsrc属性がある場合
に限り有効となります。
- 但し、フラッシュの場合は以下の条件も加わります。
- フラッシュ対応端末かPCが対象端末である事
- width属性とheight属性が指定されている事
<object>要素で静止画像を扱う場合は、内容(次の</object>タグまでの記述)からタグを全て取去ったものをalt属性値とし、data属性値をsrc属性値とする<img>要素に変換して<img>要素処理に引き渡します。
その他の場合は適切な<object>要素(PCの一部端末では<embed>要素)に変換します。
この場合、次の</object>タグまでの記述のうち、<param>要素(name属性値がloop, quality及びbgcolorとなっているもの)のみを抽出して当該<object>要素内の<param>要素に(<embed>要素に変換する場合は<embed>要素の属性に)変換されます。
尚、<object>要素が無効と判定された場合、当該<object>要素の開始・終了タグと内容の<param>要素のみが無視されるため、結果的に内容が代替コンテンツとして配信される事となります。
一方<embed>要素は終了タグを持たない空要素と解釈するため、終了タグは当該<embed>要素が有効と判断された場合であっても無効となります。
<noembed>要素。
<noembed>要素はフラッシュに対応していない携帯端末では開始・終了タグとも無視する事で結果的に内容を代替コンテンツとする事が出来ます。
フラッシュ対応端末では、次の</noembed>タグまでが読み飛ばされます。
22. <img>要素。(平成18年 1月27日)
<img>要素の扱い。
<img>要素は、設定により以下のようになります。
- 画像をインライン表示にしない設定にしている場合
- 強制的にブロックレヴェル要素化されます。
画像をインライン表示にする設定にしていなければ、強制的にブロックレヴェル要素化されます。
すなわち、インラインの画像は前後で強制的に改行されます。
具体的には、開いている段落/見出し要素及びアンカーを一旦閉じて、<img>要素を<p align="cneter" mode="wrap">要素の内容にして出力したあと、一度閉じた要素を再度開きます。
- アンカーが閉じられていない場合、<center>要素内にもアンカーが降ろされます。
- 複数の<img>要素がある場合、縦方向に並ぶ事になります。
- 画像をインライン表示にする設定にしている場合
- <img>要素外での処理は行なわれません。
- 複数の<img>要素がある場合、通常のHTML文書と同様、行方向に並びます。
尚、画像をインライン表示にする/しない設定のデフォルト設定は、以下のようになっております。
- 第3.111版(平成17年 5月19日)以降からお使いの方は、デフォルトが「画像をインライン表示にする設定」になっております。
- 第3.111版(平成17年 5月19日)より前からお使いの方は、デフォルトが「画像をインライン表示にしない設定」になっております。
いずれの場合も設定ファイルで画像をインライン表示にする/しない設定の切替が可能になっております。
src属性値の扱い。
この他、src属性値に関して以下のような処理が行われます。
- 内部のJPEG画像と判定された場合。
- 当該JPEG画像を機種により振分けるCGIへのURLに変換します。
- このCGIは現在のところ液晶の解像度に応じて画像を選択する機能しか搭載しておらず、よってJPEG非対応環境への配慮はしておりません。
- 内部のGIF画像と判定された場合。
- 当該GIF画像を機種により適切なものに変換するCGIへのURLに変換します。
- サイト外と判定された場合。
- そのまま出力します。
width/height属性。(平成18年 1月27日)
変換時にはwidth/height属性を無視します。
また、QVGA液晶端末に対して、QVGA端末用の大判画像が用意されていない場合、非QVGA端末用の小判画像をwidth/height属性を実際の解像度の二倍の値にする事で拡大機能を用いる事無く拡大表示させます。
- この機能はソフトバンク在来機では発動しません。ソフトバンク在来機(パケット機)では画像拡大処理を通します。
- また、キャッシュ機能が有効な場合も発動しません(画像拡大処理を通します)。
23. <table>要素。
テーブルに関しては、ソフトバンク以外では一旦<dl>要素に変換して処理されます。
ソフトバンクでも非パケット機で一部制限があるため、この制限を取除く処理が施されます。
- 詳しくはテーブルの処理についてをご覧下さい。