しらぎくモバイルシステム VI 処理出来るHTML文書。

しらぎくモバイルシステム VIは、特定の端末向けに書かれたモバイル向けHTML文書を閲覧している端末で最適な形に変換しますが、端末の制約などに依り、一部に制限がございます。

文字コードのエンコーディング。

推奨しないエンコーディング。

HTML文書に於いて、シフトJISコード以外のエンコーディングは一切推奨しません

特に以下のエンコーディングは使わないようにしてください。

ISO-2022-JP(JISコード)
アスキィ文字と仮名漢字の判別が困難なため、可能な限り事前にシフトJISに一括変換してから処理します。
UTF-16及びUTF-32
いずれもそのままでは処理出来ないため、事前にUTF-8に一括変換し、更にシフトJISコードに再変換します。ユニコードを用いる場合にはなるべくUTF-8でエンコーディングするようにしましょう。
  • 特にPerl 5.8.3未満の場合、自家製の文字エンコーディング処理を利用するため、これらのエンコーディングでは処理が非常に重くなってしまう事があります。

ユニコードを用いる場合の注意事項。

ユニコードを用いる場合は、出来るだけUTF-8でエンコーディングしてください。

但し、UTF-8であっても事前にシフトJISコードに変換しますので、ユニコードを用いる場合であってもアスキィ文字とJIS区点コードにある文字のみで記述する事を強く推奨します。

また、ユニコードを用いた文書での絵文字は、必ず数値文字参照で記述してください。

フォーム。

フォームは、携帯端末では正常に機能しない場合があります。

サポートされないフォーム。

大き過ぎるフォーム
フォームは機能上、途中で分割する訳には行きません。

このため、途中で分割が必要になるような大きなフォームは削除対象となります。

  • 大体、4キロバイト程度を目安にすれば良いでしょう。
  • フォームの途中でのページ分割を防ぐため、フォームの前後の分割切片が極端に小さくなる事もあります。
フォームを扱えない端末
WAP 1.0 端末(国内には残っておりません)及びH"はHTMLではないため、フォームを扱えません。

従って、これらの端末ではフォームは一律削除対象となります。

制限のある要素。

<input type="file">要素
携帯端末の多くは、ファイルアップロードに対応しておりません。

このため、しらぎくモバイルシステム VIでも<input type="file">要素は自動的に削除となります。

<button>要素
携帯端末の多くは、<button>要素をサポートしません。

<button>要素の内容テキストをvalue属性にした<input type="submit">要素または<input type="reset">要素に変換します。

<input type="image">要素
携帯電話の多くは、画像を送信ボタンにする事が出来ません。

このため、alt属性, value属性を用いた<input type="submit">要素に変換され、画像は表示されなくなります。

<select multiple>要素
携帯電話の多くは、複数選択のメニューボックスに対応しておりません。

このため、multiple属性があっても削除され、複数選択は出来ないものとします。

<optgroup>要素
旧型の携帯電話に、<optgroup>要素をサポートしないものがあります。
  • <optgroup>要素でのグルーピングが無効になるだけで、プルダウンメニューが利用不可能になる訳ではありません。
<form>要素のaction属性値
method属性が省略されているか"get"値の場合、action属性値となっているURLにクエリが付いている場合、それが無効になる端末があります。
  • 実はPCブラウザでも一部このような実装のものがあります。

この対策として、action属性に付けられたクエリは<input type="hidden">値に変換されます。

  • 順序はクエリの並ぶ順序に従い、<form>要素開始タグの直後に記述されます。
<form>要素外の<input>要素等
旧型端末の場合、<form>要素外に書かれた<input>要素等がレンダリングされないものがあります。

旧ジェイフォン機について。

旧ジェイフォンの非パケット端末には、幾つかの制限があります。

ヴァージョン 2(初期端末)
初期端末ではmethod="post"属性に対応しておりません。このため、getメソッドに強制変換されます。
ヴァージョン 3(初期端末を除く非パケット機)
method="post"属性が与えられたフォームでは、action属性に与えたクエリが送信出来ません。

このため、クエリは<input type="hidden">に変換されますが、その場合当該クエリはクエリストリングではなく標準入力から取得する事となります。

istyle属性の扱い。(平成21年 8月14日)

第0.9000版(平成21年 8月14日)より、<input>要素及び<textarea>要素に於いて istyle属性がサポートされました。

国内各社の実機に対しては、そのまま出力するか、適切なCSSでの -wap-input-format プロパティ値に変換して処理されます。

  • 但し、機種に依り指定通りの動作にならない場合があります。特にKDDI/沖縄セルラー端末では、istyle="1" 属性と istyle="2"属性は全く同じ入力モードに設定されます。
  • また、ウィルコム及びイーモバイル社の端末では<input>要素のistyle属性が無効となる事があり得ます。

テーブル(表)。(平成21年 8月 8日 更新)

テーブル(表)に関しては、以下のように取扱います。

テーブル(表)として取扱わない場合とその扱い。

テーブル(表)として取扱わない場合。

以下に該当するテーブル(表)はテーブルとして扱いません。

レイアウト目的と見なされるテーブル
<th>要素が無いテーブルはレイアウト目的と判断して処理対象外となります。
多重テーブル
携帯端末では多重テーブルをサポートしないため、多重テーブルについては一番内側のもののみを処理対象とします。
フォームを含んだテーブル
テーブルは適切な方法で分割可能ですが、フォームは分割不可能であり、従ってフォームを含んだテーブルは処理対象外となります。

テーブル(表)として取扱わない場合の取扱。

テーブルとして扱わないテーブルに関しては、以下のように配信します。

<table>要素
<div>要素と見なします。
<tr>要素
開始タグのある箇所で改行、すなわち<br>要素を置きます。
<th>要素及び<td>要素
開始タグのある箇所で空白文字を挿入します。

テーブルの分割。

テーブル(表)は必要に応じて行単位で分割されます。

  • その際に、複数行に跨ったテーブルで問題が生じないようにしております。

また、複数ページに分割されたテーブルに於いて、テーブルのヘッダ部分とフッタ部分がそれぞれに自動的に附加されます。

  • テーブルのフッタは旧ジェイフォン非パケット機には附加されません。
  • ヘッダは<thead>要素としてマークアップされる部分ですが、<thead>要素が無い場合もテーブルの冒頭から空で無い<td>要素を含まない連続する行をヘッダとして処理対象とします。
  • フッタは<tfoot>要素としてマークアップされた部分ですが、<tfoot>要素が無い場合もテーブルの末尾から遡って空で無い<td>要素を含まない連続する行をフッタとして処理対象とします。尚、これらが無い場合にはフッタは附与されません。

テーブルに関する注意。(平成21年 8月 8日 更新)

テーブルに関して、以下の点にご注意ください。

行グループ要素の扱い。

携帯端末では行グループ要素、すなわちヘッダ行グループ(<thead>要素), フッタ行グループ(<tfoot>要素)及び一般の行グループ(<tbody>要素)をサポートしておりません。

  • 正確には、携帯電話向けのHTMLでは行グループ要素を一切定義しておりません。

このため、これらの要素の開始タグ及び終了タグは一律に削除され、記述も一切認識しません。

特に、行グループ一杯に跨るコマ(rowspan="0"属性を与えられたコマ)の跨る範囲は当該テーブルの最終行までとなります。

列に関連する要素の扱い。

携帯端末では列に関連する要素、すなわち列グループ(<colgroup>要素)及び列要素(<col>要素)をサポートしておりません。

  • 正確には、携帯電話向けのHTMLでは列に関連する要素を一切定義しておりません。

このため、これらの要素の開始タグ及び終了タグは一律に削除され、記述も一切認識しません。

特に、列グループ一杯に跨るコマ(colspan="0"属性を与えられたコマ)の跨る範囲は当該コマのある行まででの最右端のコマまでとなります。

テーブル内のフラグメントについて。(平成21年 8月 8日 改定)

第0.8600版(平成21年 8月 8日)より、<tr>要素, <th>要素及び<td>要素内のid属性について、以下のように扱っております。

  • WAP 2.0 端末に対してCSSを利用している場合、WAP 2.0 端末に対しては<tr>要素, <th>要素及び<td>要素内のid属性がそのまま出力されます。
  • 一般のid属性をフラグメントとして扱わないiモードブラウザ 1.0端末などでは対応するアンカーの<a>要素に変換され直後の<td>要素または<th>要素に出力されます。
  • また、テーブルを認識出来ない環境に対しても、直後のテキストにアンカーが降りるようにしております。

尚、いずれの場合も行グループ(<tbody>要素など), 列グループ(<colgroup>要素)及び列要素(<col>要素)に与えたid属性は無効となります。

テーブル内のclass属性について。

class属性については、以下のように扱います。

行に関するクラス
<thead>要素, <tfoot>要素及び<tbody>要素に与えたクラス名は無視されます。

<tr>要素のクラス名は有効です。

列に関するクラス
<colgroup>要素及び<col>要素に与えたクラス名は一切無効となります。

テーブル内の物理属性について。(平成21年 8月 8日)

第0.8600版(平成21年 8月 8日)より、テーブルに対して以下の物理属性をサポートしております。

  • bgcolor属性
  • background属性
  • align属性(<table>要素及び<caption>要素を除く)
  • valign属性
  • brodercolor属性(<table>要素のみ)
  • 但し、WAP 2.0 端末に対してCSSを適用する場合は、align属性とvalign属性のみサポートするものとし、その他のプレゼンテーションはCSSで行う事とします。
  • また、テーブルに対応していない機種についても、上記の各属性は無効となります。
  • その他、各属性は端末に依りサポートされない場合もあります。

尚、cellspacing属性及びxellpadding属性は一部で固定されていて変更が出来ない機種があるため、サポートをしておりません。

また、枠線の指定については、常に枠線が引かれるものとして扱います。

テーブルを処理出来ない端末。

テーブルを処理出来ない端末では、テーブル内容をリスト形式に置換えて表示します。

その際に見出しコマ(<th>要素)に与えたscope属性やデータコマ(<td>要素)に与えたheaders属性を活用します。

埋め込みメディアなど。(平成21年 8月10日 更新)

静止画。(平成21年 8月10日 更新)

現在サポートしている静止画は、GIF画像, JPEG画像及びPNG画像です。

機種の制約に合わせて処理されますが、一般に以下のような変換ルールとなります。

  • 旧ジェイフォン端末については、端末の世代に依り、一律にPNG画像かJPEG画像に変換します。
  • その他の主な端末については、以下のルールとなります。
    GIF画像
    縮小を伴う場合、JPEG画像に対応している端末にはJPEG画像に変換されます。
    JPEG画像
    • ベースライン方式以外(特にブログレッシヴJPEG)は、縮小などの加工を伴わない場合であってもベースラインJPEGに変換されます。
    • ベースライン方式であれば、JPEG画像に対応している端末にはそのまま配信されます。
    PNG画像
    • インデックスドカラー以外はJPEG画像に変換されます。
    • インデックスドカラーの場合、縮小を伴わなければGIF画像に、縮小される場合はJPEG画像に変換されます。

フラッシュ。(平成21年 8月10日)

第0.8810版(平成21年 8月10日)から、フラッシュに対応しました。

フラッシュへのリンク。(平成21年 8月10日)

リンク処理については、リンク先が何であるかを調べておりませんが、しらぎくモバイルシステム VIを通じてフラッシュが処理対象となる場合には、以下の条件を満たしている限りそのまま配信されます。

対象となるフラッシュが無圧縮でヴァージョンが4以下である事
携帯電話向けフラッシュ規格であるフラッシュLiteの前提条件です。
実機の場合はフラッシュに対応していると判断される端末である事
ドコモのムーヴァ 505/506シリーズ, フォーマ(旧型機は非対応ですが現時点では考慮しておりません), ソフトバンク 3G(ボーダフォン時代の機種を含む), その他フラッシュに対応している事をHTTPでのリクエストヘッダで通知している場合には対応しているものとします。
  • 上記に該当しない条件でフラッシュを開こうとした場合、エラーメッセージが配信されます。

また、ドコモで採用している以下の方法を用いる事で、非対応端末には代替コンテンツへのリンクが可能になります。

<object type="application/x-shockwave-flash" data="フラッシュのURL" declare="declare" id="このフラッシュに与えたID"></object><a iswf="#フラッシュに与えたID" href="フラッシュ非対応端末向けのURL"></a>

つまり、

  1. 事前に<object>要素に declare="declare" 属性と適切な値のid属性を与え、
  2. 当該フラッシュへのリンクアンカーには、元の<object>要素で指定されたid属性値の前に # を付けた値をもつ iswf属性を与える

事で、

  • フラッシュ対応端末に対しては href 属性を指定されたフラッシュのURLに読み換え、
  • そうでない場合には iswf属性を無視して代替コンテンツへのリンクとなるように

します。

  • フォーマの九型機にはフラッシュ非対応のものがありますが、現在のヴァージョンでは考慮しておりません。
  • declare属性を与えた<object>要素の内容は、>param>要素を含めて無効となります。

フラッシュの埋め込み。(平成21年 8月10日)

フラッシュへの埋め込みには、<object>要素に type="application/x-shockwave-flash" 属性を与え、data属性で埋め込みたいフラッシュのURLを指定します。

  • 尚、現在のヴァージョンでは<object>要素の入れ子には対応しておりません。

その他のマルティメディア。(平成21年 8月10日)

PDF文書はドコモのフォーマ端末でのみリンク出来ます。

  • フォーマでも旧式の端末ではPDF文書が開けませんが、それについてはまだ考慮しておりません。
  • 他端末でしらぎくモバイルシステム VIを通じてPDF文書を開こうとした場合、エラーメッセージが配信されます。

また、動画及び着信音は以下の形式のものへのリンクが、対応端末でのみ開けます。

  • 3GPP動画
  • MLD音源
  • SMAF音源
  • MIDI音源
  • 動画の<object>要素での埋め込み及び音源の<bgsound>要素での演奏は現時点ではサポートしておりません。

クライアントサイドスクリプト及びスタイルシート言語。

JAVAスクリプトなどのクライアントサイドスクリプトコードである<script>要素は一律に削除されます。

また、スタイルシートをリンクする<link>要素, <style>要素及びstyle属性も全て削除されます。

  • HTMLの変換処理の影響で、モバイル対応のCSSも正常に機能しない場合があります。このため、CSSに対応している端末では変換後のスタイルを別途用意したCSSで実現する事となります。
  • 尚、CSS対応の携帯電話はドコモを除く各社の全現行端末と、ドコモのiモードブラウザ 2.0搭載機種(平成21年 5月以降発売の一部機種)が該当します。これらに該当しないCSS非対応端末では設定で定めたデザインが適用されます。

外部サイトの扱い。 (平成21年 8月11日 更新)

外部サイトへリンクする際にリンク元を隠したい場合。(平成21年 8月11日)

外部サイトへのリンクで、端末が送信するリファラに依りリンク元を知られたくない場合には、設定ファイル「KConfig.pl」内の$extNeed=0;の右辺を 1にしてください。

こうすると、外部サイトへのリンクでは自動的に出口ページへのリンクとなり、リンク先にはその出口ページのURLしか伝わらなくなります。

  • このため、リンク元のページの特定は困難になりますが、リンク元のサイトまでは隠蔽出来ない事に注意してください。
  • パスワード認証または年齢確認を用いている場合には、この設定の有無に拘らず、外部サイトへのリンクでは出口ページ経由となります。

旧型携帯端末には冗長な記述。

現行の端末(フォーマやウィンなど)向けに書かれたHTML文書は、しばしば旧型の携帯端末では冗長な記述となっている場合が多いものです。

そのような記述に対し、非表示指定を行う事で、しらぎくモバイルシステム VIが旧型端末に対して当該箇所を削除して配信するようにさせる事が出来ます。

推奨事項。

しらぎくモバイルシステム VIで適切に変換出来るようにするため、以下の事を強く推奨します。

テーブルやフォームはなるべく使わない
上記の通り、テーブルやフォームには様々な制限があります。掲示板やメールなどのフォームは外部サイトにリンクするようにしてください。また、可能な限りテーブルを用いずに情報を表現出来るようにしましょう。