WAP 2.0端末での処理。

WAP 2.0端末(EZウェブ及びソフトバンクの次世代機(700番台以降), 海外の次世代機)及びフルブラウザ搭載のエアーエッジフォンでは以下のように処理されます。

変換後の文書型。

原則として、以下のようになります。

  • 実機ではXHTMLモバイル・プロファイル。但しLモード第三世代機種ではHTML 4.01 ストリクト。
  • 実機以外ではXHTML 1.0。

テキスト処理。

一般のテキスト処理。

  • 「&」「<」「>」は全て実体参照に置換えられます。
  • <pre>要素外での連続する空白, タブ及び改行文字は、全て半角空白一個に纏められます。

タグのテキスト処理。

  • 要素名は全て小文字に変換されます。
  • 属性名も全て小文字に変換されます。
  • 属性に関して、最小化表記となっている場合は、「属性値="属性値"」の形に変換されます。
  • また、属性値は全て「"」で囲まれ、「"」は実体参照に置換えられます。

HTML文書のタグ変換処理。

ここで挙げていないタグは、全て無視されます。

1. <html>要素開始タグ。

lang属性(xml:lang属性も可)の値を、言語情報として取得します。

  • デフォルトの言語は日本語と見做しております。
  • 現状では、日本語と英語にしか対応しておりません。日本語以外は全て英語のメッセージとなります。
  • <html>要素以外のlang属性は全て無効です

2. <title>要素。

内容を文書の題名として取得します。

尚、<title>要素を記述していない場合の題名は不定な文字列となります。

3. <body>要素開始タグ。

text, bgcolor, link, alink, vlink各属性値を、基本表示色のデータとして取得します。

取得されたデータは<style>要素に変換され、外部プロパティシートをリンクする<link>要素が予め指定してある場合は、その前に来るように配置されます。

尚、これらの値は予めスクリプト側でもiモード・ソフトバンク在来機向けに設定出来ますが、WAP 2.0ではこれらの設定値は利用しません

4. <base>要素。

href属性で指定されるURLを相対URLの基準とします。

尚、正当な仕様では相対URLが出てくる前に一回だけ記述出来る事になっており、しらぎくモバイルシステムでもこれに違背した場合は相対URLの扱いを保障出来ません。

6. <style>要素。

media属性が省略されているか、media属性値に「handheld」が含まれている場合に内容を取得します。

取得した内容は、外部プロパティシートをリンクする<link>要素が予め指定してある場合は、その後に来るように配置されます。

尚、<style>要素だけでなく、一般要素のstyle属性も有効になります。

7. <link>要素。 (平成19年 1月 4日 更新)

<link>要素でリンクしているリソース(スタイルシートを除く)は、WAP 2.0端末及びPCでも機能します。

いずれの場合も、href属性値のURIが適宜補正されます。

  • 空で無いhref属性を附与されていない<link>要素は無効となります。

WAP 2.0端末に対する<link>要素の扱い。

WAP 2.0端末に対しては、<link>要素はmedia属性値にhandheldまたはttyが含まれているもののみが有効となり、これらは<head>要素内に出力されます。

その他の<link>要素は無効となります。

PCに対する<link>要素の扱い。

PCに対しては、<link>要素は

  1. media属性値にscreenが含まれている<link>要素
  2. media属性値にhandheldまたはttyが含まれている<link>要素

の順に<head>要素内に出力します。

但し、以下に該当する<link>要素がある場合、そのうちの一番目のものを一番初めに出力し、更に<body>要素内にもPC向けの代替コンテンツへの案内アンカーとして適切な<a>要素に変換されて出力されます。

  • rel属性値がalternateである。
  • 且つmedia属性値にscreenが含まれている。
  • 複数ある場合は、二番目以降は一般の<link>要素と同じ扱いとなります。

8. <meta>要素。(平成19年 3月 9日)

name="system"属性以外のname属性を持つ<meta>要素は、そのまま反映されます。

http-equiv属性を持つ<meta>要素は、内部で利用され、出力には反映されません。

9. <map>要素。

携帯電話向けのコンテンツには利用されないため、<map>要素は全部削除されます。

10. id属性。

原則として、そのまま扱います。

11. リスト要素。

<dl>, <ul>及び<ol>要素内では、以下のように扱います。

内容は全てリストアイテム要素となるようにします。
余白取りのために、リストアイテム要素で無い要素をリスト要素の直下に置いている場合、その扱いは不定になります。
  • 端末によって無理矢理リストアイテムにされたり当該要素を削除されたりします。
リストアイテムの開始タグが、リスト要素の直下に無い場合。
リストアイテムの終了タグが正しく終わっていない場合。
これらの場合は、一番内側のリスト要素の直下になるまで閉じていない要素を閉じ(正当なリストアイテム要素を含む)、その上でリストアイテムを開始するなどします。
  • この為、仕様で認められているリストアイテム要素の終了タグ省略も可能になります。

12. <h○>要素, <p>要素, <address>要素及び<pre>要素。

属性に関して、以下の読替を行います。

<h○>要素及び<p>要素にてalign属性が指定されている場合、それらをインラインスタイル(style属性)のtext-alignプロパティに変換し、align属性は削除します。

その他はそのままの出力となります。

13. <blockquote>要素。

<blockquote>要素の前後に、以下のメッセージが付与されます。

  • <html>要素にてlang属性値に「ja」を含んでいない場合は、以下のメッセージは英語になります。

要素タグはそのままの出力となります。

但し、<blockquote>要素の直下には必ずブロックレヴェル要素を設置しなければならないため、自動的に<div>要素の内容となります

<blockquote>開始タグ直前。

<blockquote>要素にtitle属性が付与されていない場合は、以下の出力になります。

<ul><li>以下引用。</li></ul>

title属性が付与されている場合は、以下の出力になります。

<ul><li><cite>○○</cite>より。</li></ul>

<blockquote>終了タグ直後。

<blockquote>終了タグの直後には、以下のように出力されます。

<ul><li>引用ここまで。</li></ul>

重要事項。

上記の通り、<blockquote>要素にはその直前直後に引用を表すメッセージが自動的に付与され、これを忌避する事は出来ません。

このため、<blockquote>要素を字下げの目的で利用している場合は問題が生じ得る事をお含み置き下さい。

14. <div>要素及び<center>要素。

  • <center>要素は、<div style="text-align: center; ">要素に変換されます。
  • その他の要素のalign属性は、インラインスタイルのtext-align属性プロパティに変換され、align属性は削除されます。

15. <form>要素, <input>要素, <textarea>要素及び<select>要素,

そのまま出力します。

尚、<select>要素内では、<optgroup>要素と<option>要素以外は全て破棄されます。

  • これらの要素は仕様上、<form>要素内に無くても構わないものとなっておりますので、<form>要素内にあるかどうかは確認しておりません。
  • 但し、実装上<form>要素外に書かれたこれらの要素は全て無視するユーザエージェントも存在している事は忘れないで下さい。
  • 尚、<button>要素は無効となります。また、<input>要素のtype属性値に関してチェックをしておりませんので、仕様上無い属性値や実装されていない属性値を当てている場合の端末での動作は保障出来ません。

16. <marquee>要素。

  • 実機では<div style="display: -wap-marquee; -wap-marquee-loop: infinite; ">要素に変換されます。
  • 実機以外では<div>要素に変換されます。

18. <font>要素。

<span style="color: color属性値; ">要素に変換されます。

19. <blink>要素。

<span style="text-decoration: blink; ">要素に変換されます。

20. <u>要素。

<span style="text-decoration: underline; ">要素に変換されます。

21. 論理インライン要素(<a>要素を除く)。

以下の要素に関しては、そのままの出力となります。

  • <abbr>要素。
  • <acronym>要素。
  • <cite>要素。
  • <code>要素。
  • <dfn>要素。
  • <em>要素。
  • <kbd>要素。
  • <q>要素。
  • <samp>要素。
  • <span>要素。
  • <strong>要素。
  • <var>要素。

22. <a>要素。

name属性はid属性に変換されます。

  • この場合、既存のid属性は削除されますが、仕様上双方の値は一致していなければならないので、文法違反で無い限り問題は無い筈です。

href属性値に関しては、以下のようになります。

mailto:及びtel:スキームが与えられている場合。
そのまま出力します。
フラグメント名のみ指定されている場合(href="#…"属性)。
そのまま出力します。
サイト内の画像を指定していると判定された場合。
当該画像を表示させるページを自動作成するCGIへのURLに変換します。
<a>要素に「rel="external"」属性が付いている場合(平成17年 8月26日)。
<a>要素に「rel="external"」属性が付いている場合はサイト内の画像で無い限り、サイト外にあるリソースと見なします。

従って、「rel="external"」属性を付けた場合、サイト内部のページであっても、当該ページを表示させるCGIのURLには変換されず、そのまま出力されます。

サイト内のページを指定していると判定された場合。
当該ページを表示させるCGIへのURLに変換します。

尚、フラグメント名も指定している場合は、指定されたフラグメントが末尾に付与されます。

サイト外と判定された場合。
そのまま出力します。

23. <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>タグまでが読み飛ばされます。

24. <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属性を実際の解像度の二倍の値にする事で拡大機能を用いる事無く拡大表示させます。

25. <table>要素。

  • <table>要素及び<table>要素内の<caption>要素m <tr>要素, <td>要素及び<th>要素はそのまま出力されます。
  • その他のテーブル関連要素は無視されます。
  • <table>要素の入れ子構造は認めません。<table>要素の下位にある<table>要素は、その開始タグと終了タグが無視され、内部の<tr>要素は最上位の<table>要素の下位要素と見なされます。

URLの扱い。

<a>要素及び<img>要素でCGIへのURLに変換する場合、以下のようになります。

実機。

全て相対URLとなります。

CGIに引渡すリソース名の指定はクエリ値となります。

尚、実機に対してエクストラパスを用いた場合は、クエリでパラメータを指定するURLへリダイレクトとなります。

実機以外。

全て絶対URLとなります。

CGIに引渡すリソース名の指定は以下のようになります。

<a>要素で生成されるURL。
エクストラパスを利用する設定となっている場合はエクストラパスに、エクストラパス利用する設定となっていない場合はクエリ値となります。
<img>要素で生成されるURL。
常にクエリ値となります。

尚、リソース名以外のパラメータは全てクエリ値で引渡しとなります。

また、エクストラパスを利用する設定となっている場合に、クエリでリソース名を指定している場合は、エクストラパスでリソースを指定するURLへリダイレクトとなります。

出力。

プロパティシートの扱い。

以下の順でプロパティシート関連要素が出力されます。

  • <body>要素での表示色指定に関連した<style>要素。
  • 予めスクリプト設定で指定されている<link>要素。
  • 文書中に埋め込まれた<style>要素。
  • 携帯電話の細長い表示を再現する<style>要素(PCの場合)。

PCでの出力。

特に、PCでは以下のように出力されます。

  • XHTML 1.0 トランジッショナルの文書型となります。

尚、実機ではXHTMLモバイル・プロファイルの文書型となります。