ソフトバンク旧型機で注意したい事。

要注意点の多いソフトバンク旧型機向けHTML。

ソフトバンク旧型機に実装されているHTMLには注意すべき事が多数あります。

ここではそれらの中から主なものを纏めておきます。

  • 当サイトで解説していない要素などについても解説しておきます。

尚、実際には現行機及び旧ジェイフォン時代の初期端末を除くパケット機では以下の制限はURIの制限を除いて適用されません。

ですから、事実上URIの制限を除いて非パケット機のみの制限と見なしても殆ど問題は無いでしょう。

文書作成上の問題。

数値文字参照は使えません。

旧型機では、現行のパケット機を除いて数値文字参照が使えません

数値文字参照は、旧型機では記述した通りの表示になり(例えば「 」などと表示されます)、機能しない事となっております。

  • 文字実体参照(「&」など)は全機種で問題無く利用できます。

URIの制限。

初期の端末では、内部処理の都合で絶対URIの利用を推奨していたようですが、相対URIでも問題無く動作します。

  • URIに半角カナ文字は使えません。
  • URIにクエリ列(?…)とフラグメント名(#…)を併用した場合、機能が保障されません。

クエリについては、以下の制約に従って下さい。この制約は現行機や現行のパケット機でも問題になるようです。

  • 基本的な書式は、「クエリ名=クエリ値」で、複数のクエリを並べる場合は区切り記号として&を用います(例「a=123&b=456」)。実体参照(&)や&以外の記号(;など)で区切ると誤作動する事が予想されます。
  • クエリ名には使ってはいけない語句があり(jskyで始まる任意の文字列及びpid, uid, sid, nl, cl, prc, cntreg)、これらは大文字小文字を問いません。

フラグメント名は英数字のみが利用できます。

フラグメント名の制限。

<a>要素name属性でフラグメント名として利用されるものは、URI表記上の制限より全て英数字のみで記述して下さい。

  • id属性は現行パケット機及び現行機でのみ有効です。

ソフトバンク旧型機向けのHTMLでの主な存在しない要素。

ソフトバンク旧型機向けのHTMLに於いては、

などが存在しません。

  • 但し、現行のパケット機ではこれらの要素も利用出来ます。

ソフトバンク旧型機向けのHTMLでの各要素の制限。

ソフトバンク旧型機では、HTMLでの各要素に関して以下の制限を設けております。

<a>要素の制限。

一つの<a>要素に於いて、href属性name属性を併用する事は出来ません。

どうしても併用したい場合は、name属性を持つ空の<a>要素と、アンカーとなる(href属性を持つ)<a>要素を併記する事になります。

  • 尚、<a>要素の入れ子構造は当然ながら出来ません。

<br>要素の制限。

<br>要素

の内容には入れられません。

  • この他にも<br>要素を内容に出来ない要素があります。

<li>要素の制限。

<dt>要素の制限。

<dd>要素の制限。

原則として、リスト系要素の内容に

を入れる事は出来ません。

但し、<ul>要素及び<ol>要素は上記に拘らず最大三重までの入れ子が出来ます。

  • <dl>要素の入れ子は一切出来ません。

<th>要素の制限。

<td>要素の制限。

原則として、

を内容にする事は出来ません。

また、非パケット機では、<td>要素colspan属性rowspan属性が無効になります。

  • パケット機及び<th>要素では有効です。

尚、表は最大五組まで入れ子に出来る事とされております。

<div>要素の制限。

<div>要素が内容に出来るブロックレヴェル要素は、

のみです。

特に<div>要素の入れ子構造は出来ませんのでご注意下さい。

<center>要素の制限。

<center>要素が内容に出来るブロックレヴェル要素は、

のみです。

特に<div>要素を内容にしたり、<center>要素を入れ子構造にする事は出来ませんのでご注意下さい。

<base>要素の制限。

<base>要素のhref属性に記述するURIは、必ずディレクトリを指定したもの(末尾が「/」となっているもの)で無ければいけません

  • リソース名を指定した場合(末尾が「/」となっていない場合)、初期の端末では<base>要素そのものが無効になってしまいます。

また、必ず<html>要素開始タグの直後に記述しなければなりません。

<form>要素の制限。

action属性のURIにはクエリ(「?」以降に続く引数)を付けてはいけません

  • 端末によっては、クエリを切落としてしまうものがあるそうです。

特にmethod属性"post"にした場合、パケット機種以外ではクエリで情報を受取る事は一切出来ません。

  • "get"の場合は、type="hidden"属性を持つ<input>要素に記述する事で固定データを引渡す事が出来ます。
  • "post"の場合でも、ソフトバンク非パケット機に限って標準入力からデータを受取るようにすれば、type="hidden"属性を持つ<input>要素に記述する事で固定データを受取る事が出来ます。

<img>要素の制限。

src属性のURIは、必ず対応している画像の拡張子となる文字列で終わっていなければなりません

例えば「/cgi-bin/img.cgi?n=filename」というCGIを利用したい場合、「/cgi-bin/img.cgi?n=filename&dummy=d.png」などと末尾にダミーのクエリの値と言う形で「.png」などと書かなければいけません。

また、以下の要素内には<img>要素が記述出来ません。

実際問題としてのソフトバンク旧型機向けのHTMLでの制限への対応。

実際問題として、HTMLにこれだけの制限を課されると、コンテンツを作るのが大変難しくなってしまいます。

大体、上記の制限を守っていないとしても、そのコンテンツが全く表示出来なくなる訳でもありません。

ですから、守らなかった場合に致命的な結果をもたらす事が予想される、以下の各点を抑えておけば良いでしょう。

<base>要素のhref属性に記述するURIは、必ずディレクトリを指定したもの(末尾が「/」となっているもの)とする
<base>要素<html>要素開始タグの直後に記述する
この二つを守らないとリンクが正常に機能しなくなる恐れがあります。
<td>要素にはcolspan属性rowspan属性を使わず、各コマに同じ情報を記述する
これを守らないと非パケット機で表が崩れてしまいます。
  • 尤も表を使わないようにする方が安全と言えますが…。

一番安全なのは、

  • <base>要素を使わない
  • 表組(テーブル)も使わない

と言う事になるでしょう。

これらの要素に関して注意する必要があるのは、閲覧に致命的な障害をもたらす恐れがあるためで、その他の要素の制限に関しては余り気にする必要は無いでしょう。

最後に一言。

以上のように、ソフトバンク旧型機にはさまざまな制限が付き纏います。

しかし、だからと言って、ソフトバンク旧型機を排除しようと考えてはいけません。

  • 如何に実装に大きな問題があるからと言って、気に入らない環境を排除すると言うのは一番許されない行為です。

確かに、ソフトバンク旧型機には画像やファイル容量の制約などもありますが、出来るだけ対応したいものです。


しらぎくのウェブサイト作成入門サイトマップ