6月
30

auは1年ほど前に、ezwebの内臓ブラウザ「Openwave Mobile Browser」のバージョンを6.2から7.2にバージョンアップしている。バージョンアップに伴って、HTML仕様が拡張されたみたいだけど、一方で従来からの動作が変更された部分も・・・。その影響か、ブラウザバージョン7.2端末でWebページにアクセスすると、他の機種とは異なる画面が表示されることがあった。

auのブラウザバージョン7.2端末でハマった、印象深い3つの仕様変更(バグ?)を紹介したい。

g9

auのブラウザバージョン

まず、au携帯のブラウザバージョンは、大きく分けると次のように3種類ある。ここ最近発売される端末でいうと、バージョン7.2が主流で、バージョンが6.2の機種も今年5月に発売されている。現在は、6.2から7.2へ切り替わる過渡期にあたる。

ブラウザ
バージョン
キャッシュサイズ アプリケーション
プラットホーム
機種の例
7.2 128KB BREW 4.0 G9
S001
W61S
6.2 32KB~128KB BREW 2.0~3.1
Java Phase 2.5~3
K002
W61K
MEDIA SKIN
W31T
A5521K
6.0 9.5KB~64KB BREW 2.0
Java Phase 2~2.5
A5304T
A1301S

マーキーの無限ループ指定

ブラウザバージョン7.2対応端末で見ると、marqueeタグで書いたマーキーがなんと消えてしまう現象が発生。左がブラウザバージョン7.2端末のG9、右がブラウザバージョン6.2端末のW61Kだ。G9では「マーキー」という文字が表示されていないことが分かる。

image

HTMLには次のようにmarqueeタグにstyle属性を記述して、無限ループするマーキーを指定していた。

↓↓↓ここから↓↓↓<br />
<marquee style="-wap-marquee-loop:infinite;">
マーキー
</marquee>
↑↑↑ここまで↑↑↑<br />

style属性なしだとちゃんとマーキーが表示されるから、どうやらstyle属性が原因らしい。結局、次のように記述すると無限ループでマーキーが動作するようになった。

<marquee style="display:-wap-marquee;-wap-marquee-loop:infinite;">
マーキー
</marquee>

-wap-marquee-loopプロパティを指定すると、「display: -wap-marquee」 を指定したことになる、っていう仕様だったんだけど、この仕様が変わったのか!?やっぱりデフォルト動作を当てにせず、明示的に書いたほうがよさそう。

PNG画像の転送禁止フラグ

PNGファイルに画像転送禁止フラグを指定しているのに、メール添付などで外部転送できてしまう現象が発生。使用したのは次のPNG画像。

roundabout-drm1

PNGファイルをデータフォルダに保存し、保存した画像のサブメニューを表示したのが下の写真になる。W61K(写真右)では「Eメール添付」や「赤外線送信」がグレーアウトしていることなどから外部転送不可になっているが、G9(写真左)では「Eメール添付」や「赤外線送信」が選択可になっていて、実際に送信ができてしまう(G9で「microSDへ移動」がグレーアウトしているのは、単にmicroSDカードが入っていないため)。

image(2)

実はこれ、転送禁止フラグの記述が原因だった。転送禁止フラグは、PNGのtEXtチャンクにkddi_copyright=onというデータを設定することで行われるのだが、その際のキーワードはCopyrightにする必要がある。ところが、W61Kなどブラウザバージョン6.2端末では、tEXtチャンクのキーワードがCommentという文字列の場合でも、転送禁止フラグを認識する。

条件をまとめると、次のようになる。

tEXtチャンクの
キーワード
tEXtチャンクの
データ
W61K
(ver 6.2)
G9
(ver 7.2)
Copyright kddi_copyright=on 外部転送不可 外部転送不可
Comment kddi_copyright=on 外部転送不可 外部転送可

ブラウザバージョン7.2からはtEXtチャンクのキーワードを正しく判定するように修正された影響で、互換性がなくなったようだ。

Multi Comment Editor使用時の注意点

ちなみに、画像コメント編集ツールのMulti Comment Editorを使用して転送禁止フラグを入力するとき、tEXtチャンクのキーワードが"Comment"となることがある。

具体的には、テキストエリアに「kddi_copyright=on」のみを記述して保存すると、tEXtチャンクのキーワードはCommentとなる。

multicommenteditor01

一方、テキストエリアに「[Copyright](改行)kddi_copyright=on」を記述すると、tEXtチャンクのキーワードはCopyrightとなる。こちらがブラウザバージョン7.2にも対応した、正しい記述方法だ。

multicommenteditor02 

水平線の下からレイアウト崩れ

hrタグで指定した水平線より下の部分がレイアウト崩れを起こす現象が発生。「AAAA」の部分は左寄せ表示されるはずだが、左のG9はなぜか中途半端な位置に表示されてしまっている。

image(3)

HTMLは次のように記述していた。

<div align="center">センタリング</div><hr width="50%" size="1" />
AAAA<br />
BBBB<br />
CCCC<br />

この書き方のどこが悪いのか??divタグはちゃんと閉じているのに、「AAAA」「BBBB」にインデントがついているような感じだ。試行錯誤を繰り返すこと数十回・・・。次のような書き方で、うまくいくことが分かった。

<div align="center">センタリング</div>
<hr width="50%" size="1" />
AAAA<br />
BBBB<br />
CCCC<br />

なんと、divの終了タグの後に改行を入れるだけ!これだけで直ってしまった。

image(4)

実は、モバイルブラウザ7.2は改行の扱いがすごく特殊。改行が入っていると画像と画像の間に隙間ができてしまったり、逆に改行を削除すると今回のようにレイアウトが崩れてしまうこともある。

しかもこのレイアウト崩れはSSLページでのみしか、再現しない。非SSLページでは改行が入っていなくても、レイアウト崩れは発生しないのだ。ezwebゲートウェイで自動的に改行を入れるような変換を行っているのだろうか?

頼りになるのは実機

ezwebのブラウザバージョンアップでは、仕様なのかバグなのか、様々な変更が行われる。にもかかわらず、auの公式サイトにも情報がなかったりするので、頼りになるのは実機のみ。auで実機テストを行うときは、最低でもブラウザバージョン6.2と7.2の両方を使用することが必要だ。

(関連記事)




■ コメント
  1. auの提供してるシミュレータ自体が、まだver6.2しかないから、ver7.2は実機でしか確認出来ないですよね。

    http://www.au.kddi.com/ezfactory/tool/index.html

    コメント by 稲葉の城兎 — 2009年08月13日 木曜日 @ 6:02:27

  2. そうですね、シミュレータでは動作確認ができないので、基本的には実機でver7.2対応を確認することになります。
    しかし、ここ最近はシミュレータが全くバージョンアップされていないので、ver7.2対応版が出るかどうか・・・あまり期待できないかもしれませんね。

    コメント by koreadays — 2009年08月13日 木曜日 @ 9:38:05

  3. レスどうもです。

    ところでOpenWave6.2Kシミュで確認すると、tableタグを使った時に幾つか問題があったのですが、ver7.2の実機で直ってると嬉しいですね。

    (1)空セルが他のセルの幅になってしまう。

     例えば一行5セルの3セル目をとかで空にすると、imodeシミュⅡやwcv6.0だとちゃんと最小セルで表示されますが、OW6.2Kシミュだと隣接セルと同程度の幅になってしまいます。

    (2)画面幅を超えるtableのレイアウトが崩れてしまう。

     (1)のせいもあってか、更に空セル+中身有りセルを追加して計7セルにしたtableが、マトモに表示されずに崩れてしまう。例えnowrap指定しても多少変化はしましたが解決はしませんでした。勿論imoceシミュⅡやwcv6.0では大丈夫です。

    (3)table内tableが表示されない。

     tableタグのネストが利かないみたいです。勿論、imodeシミュⅡやwcv6.0ではOKです。

    これらがver7.2で解決or改善してると良いのですが、現状ではau端末のせいでtableを使ってる頁のキャリア共通化が困難なので困ったものです。

    尚、多数の事例で検証してる訳ではないので、上記現象の再現には何か条件が必要かもしれません。(中身有りのセル内にbrタグで改行が入ってる、等。)

    コメント by 稲葉の城兎 — 2009年08月16日 日曜日 @ 16:46:06

  4. コメントありがとうございます。
    先ほどシミュレータで、テーブルタグを使ったページを見てみたのですが、表示の方は問題ありませんでした。
    高度な使い方をした場合の挙動が、どうやらうまく対応できていないみたいですね。

    コメント by koreadays — 2009年08月17日 月曜日 @ 12:35:49

  5. わざわざ追確認をどうもです。

    やはり普通のtableタグの使い方では再現しないみたいですね。

    そのうち時間が取れたら再現用のxhtmlソースなんかを作ってみます。多分(3)のtableタグのネストに関しては、普通に再現可能だとは思いますが、他の現象は条件が必要?っぽい気がしますので。

    まあいずれにしてもver7.2のシミュレータが出てくれないと困るし、もし出ても先の問題点が改善or解決してないと意味無しですけが。(^^;;

    コメント by 稲葉の城兎 — 2009年08月17日 月曜日 @ 20:16:59

  6. 何とか(1)だけでも回避手段は無いかと、イロイロと試してみましたが駄目でした。orz

    空セルの<td />を、<td></td>や<td> </td>、<td>.</td>にしてみたり、rowspanで連結してたのを別々にしたり、最後はwidthやmax-widthで1emや1px、1%なんかも指定しても全く変化しませんでした。

    因みにow6.2Kシミュの機能でソース表示をしてみると、widthのプロパティは表示しますがmax-widthは表示しなかったので、widthの認識自体はしてる様ですが画面上には反映されない状態な様でした。

    完全にバグっぽいですね。回避手段も無い?みたいですし、困ったもんです。

    P.S
    そういえばバグといえば<!– ————– –>というコメントを入れると、この行以降でFireFox3.52の表示が異常になります。

    勿論IE7やChrome、各種携帯向けシミュでは問題は有りませんでした。仕方が無いので中身の半角ハイホンを全角ハイホンに修正して対処しました。

    コメント by 稲葉の城兎 — 2009年08月18日 火曜日 @ 20:21:05

  7. さらに詳しい情報ありがとうございます。
    コチラでもいろいろやってみましたが、確かにセルの幅を狭くできないですね・・・。
    最小のセルの幅も、ver6.2とver7.2とで大きさが違います。

    au端末には、まだまだ未知なる注意事項がありそうですね。

    コメント by koreadays — 2009年08月18日 火曜日 @ 20:50:07

  8. 検証どうもです。

    今作ってる頁だと(1)と(2)が問題になっていて、(1)だけでも回避策が見つかれば(2)も改善しそうなので頑張ったのですが結果は先の通り駄目でした。

    tableタグを使わない訳には行かないので、もう諦めるしか無い状態です。

    しかも今度作る予定の頁だと(3)がネックになるので、tableタグでレイアウトする頁に関して、今後ますますau端末だけ「要らない子」扱いになりそうです。

    コメント by 稲葉の城兎 — 2009年08月19日 水曜日 @ 14:31:06

  9. あまりVer7.2には関係無い話ですが、(1)(2)が問題になってる頁を、知り合いが所有してたW44Sに自分のシャープ製SB端末から赤外線で送信してみましたが、全然見れなかったみたいです。(アレレ????)

    W44SはUserAgent情報からするとブラウザはVer6.2みたいなので、全然見れないって事は無い筈ですが不思議です。

    もしかしたらデータフォルダにhtmlファイルを許容してなくて、ブラウザを起動出来ないのかも?ですね。それとも赤外線通信で扱うファイル種別が制限されていて強制的にtxt情報やpim情報に変換されてしまったのかも?

    未だにW44Sを使ってるくらいの所有者なので、あまりつっこんだ話や試行はして貰えない為、詳細は不明ですが。

    尚、別のシャープ製SB端末所有者に以前htmlファイルを送信した事が有りますが、その時は何ら問題無く見れたので、自分のSB端末側の問題では無い筈です。

    コメント by 稲葉の城兎 — 2009年08月23日 日曜日 @ 20:08:30

  10. 下記のマニュアルを調べてみたところ、どうやら端末のデータフォルダ内のhtmlファイルは、ブラウザではなくてPCドキュメントビューアーで開いてしまうみたいです。

    多分ブラウザで見るのとは全然別の表示形式になってしまって、結果的に全然見れない、って状況になったと思われます。

    http://www.au.kddi.com/torisetsu/pdf/w44s/w44s_torisetu.pdf

    尚、赤外線で受信したデータは、PIM情報以外も許容していて、PIM情報とは別のデータフォルダに格納する事が記載されてました。

    あと、どうやらデータフォルダに拡張子htmlなファイルを保存する時は、拡張子をhtmに変更してしまうらしい事も書かれてました。

    素直にhtmlなファイルをそのまま保存し、表示もブラウザですれば済むのに、煩わしいというか余計な事というか、厄介な仕様になってる様です。

    コメント by 稲葉の城兎 — 2009年08月24日 月曜日 @ 17:21:34

  11. 私はやったことがないのですが、HTMLを赤外線送信した場合は、機種固有の問題に直面するみたいですね。
    HTMLは比較的ゆるいフォーマットなので、送信側・受信側の相性とかがあるのかもしれません。

    コメント by koreadays — 2009年08月24日 月曜日 @ 17:38:47

  12. 少し探してみましたが、データフォルダに入ったhtmファイルを、ドキュメントビューアーじゃなくてブラウザで開く手段は見つけられませんでした。

    昔の端末だとEZメニューにデータフォルダの項目が有った機種も存在した?みたいですが、少なくともW44Sはマニュアルを見る限りは無いみたいです。

    あとは裏ワザ的にEZブラウザのurl入力で、device:なんちゃら~、って感じでデータフォルダ内のファイルを指定する手段を探すくらいみたいですが、これも情報が見つけられなかったし、現状ではお手上げって感じです。

    コメント by 稲葉の城兎 — 2009年08月25日 火曜日 @ 20:30:50

  13. 2009年の秋冬モデルですが、ブラウザ6.2搭載品も未だ有るみたいですね。

    コメント by 稲葉の城兎 — 2009年10月22日 木曜日 @ 17:01:30

  14. やっぱりそうですか。
    WINが出たときも、随分長い間CDMA端末が出続けていました。
    ver6.2端末も来年までは生き残りそうですね。

    コメント by koreadays — 2009年10月22日 木曜日 @ 17:50:06


■ コメントをどうぞ



 

投稿者

開発者向けサイト

NTTドコモ
作ろうiモードコンテンツ
KDDI au
EZfactory
SoftBank
MOBILE CREATION
イー・モバイル
技術情報
WILLCOM
コンテンツサービス