先日「【業務連絡】【Event】当ブログの携帯電話向けページの見栄えを変更する予定です」という記事で告知させていただいておりますように、昨日付で当ブログの携帯電話向けページの修正をおこなう予定でした。
しかしながら、現時点で作業終了のめどは全く立っておりません。
理由といたしましては、当ブログで採用させていただいておりますWordPressプラグイン「Ktai Style」側の問題で、プラグイン本体側に手を加えない限り、ページ表示用テンプレートをXHTML文法に完全に準拠させることが不可能であることが判明したためです。あと「モンスターハンター フロンティア」で遊ぶ時間も欲しかったり(ぼそぼそ)。
今回予定しておりいましたページ修正の目的としては、次の3つを挙げておりました。
- 端末の特性に合わせた表示の実現
- 携帯電話のアクセスキー指定の見直しによる利便性向上
- ページ・デザインの改善
一応、XHTML文法を無視すれば上記のいずれについても実現不可能ではないのですが、完全にこちらが想定している形でのページデザイン変更を行えません。また、そのような状態の画面を実機で表示されたときにどのような挙動になるのか、私には予想がつきかねます。
今後どうすべきかについては検討段階ですが、最悪、修正を中止して現状のままの画面を提供し続けるということも視野に入れなければならないものと思われます。
ご利用の皆様には大変ご迷惑をおかけすることとなってしまい誠に申し訳ありません。












13個のコメント
とりあえず、XHTML文法違反には目をつむる事にして、デザイン変更と画面レイアウト変更のみ実施いたしました。
半ば強引な改造をした為、もしかしたら挙動不審な点もあるかも知れません。もし問題点を発見されましたら、御一報いただければと存じます。
なお、cHTML対応につきましては、まだ着手しておりません。今暫くお待ちいただければと存じます。
プラグイン作者です。仕様に問題があって申し訳ありません。おそらく、kses.php で使える XHTML 要素を決め打ちしていることが原因だと思いますが、それであってますでしょうか。
それだとすると、kses.php に独自フックを付けまして、テーマごとの functions.php で $allowedtags を変更できるようにする方向で改善したいと思います。
すみません。つい先ほどまで外出していたため、返信が遅くなってしまいました。
・・・あ、すみません。ここはノー・チェックでした(汗)。
問題点については、もうちょっと詳しく申し上げるべきでした。失礼いたしました。
決めうち云々というより、XHTMLのDOCTYPE宣言と、その宣言では違法となる「font」等の一部の古い要素がプラグイン側によって挿入されてしまうというのが最大の問題点ですね(PC向けリンクのところとか)。
明日あたりにもうちょっと微調整をした上で、テーマファイルを一般公開できる形に持ってゆきたいと思います。
あと、cHTML向けテーマの作成についてはいまだに着手できておりません。こちらも明日中にどうにかします。これで、先日ご指摘いただいておりました広告問題が解決するかどうか・・・。
Ktai Style では、テンプレートは XHTML に準拠しつつも文法違反には目を瞑っています。ただし、DoCoMO FOMA 向けに、header.php に
ks_use_appl_xhtml()というテンプレートタグを書いた場合、HTTP ヘッダで content-type を text/html ではなく application/xhtml+xml を使用し、font=”ほげほげ” タグを span style=”font:ほげほげ” という形に書き換えています (書き換えは servises.php のshrink_post_split()で実施)。このへんの機能を使ってみれば、ご希望に沿えないでしょうか。
あ、なるへそ!
了解です。
先ほどiモードシミュレータIIのほうで確認してみたところ、仰るとおりになっておりました。
ありがとうございました!
・・・あとは、XHTML Basicでは論外とされている水平線問題をどう解決するかですね(ぼそ)。
水平線、あきらめるにはあまりにリスクが大きいですからねぇ。区切りがわからなくなっちゃうし。
XHTML Basic のベース規格はよく知らないのですが、ドコモ、au、ソフトバンクの実装では、hr 要素が含まれていますので、問題ないと思いますよ。ただし、
ks_use_appl_xhtml()を使ったときに罫線の色付けがうまくいきません。このへんはもうちょっと研究してみます。あ、すみません。書き方が悪かったようで、誤解を招いてしまったようです。
大変失礼いたしました。
XHTML Basicでは、実はhrは定義されていません!(マジ)
以前、携帯電話向けのサイト(ブログではない)を構築したときにはこれに泣かされました。
そのときは「XHTML Mobile Profile」とやらで逃げたのですが、どうも端末の絵文字まで考慮するとこれでも足りないようで・・・。
参考:モバイル機器向けXHTML仕様
以前仕事でFoma端末向けサイトのXHTMLを書いていたときは、hrに着色していた記憶があるのですが、そのときどんなことをしていたのかは失念してしまいました・・・。
最近は仕事で携帯電話向けサイトを作ることもほとんどなくなりましたからねぇ。
わたしも書き方が悪かったかも。「ドコモ、au、ソフトバンクの実装」というのは、各社が公開している自社端末用 XHTML の規格書のことです。つまり、ドコモ、au、ソフトバンク向けであれば hr 要素を使えるのです。各社、XHTML Basic 1.0 を拡張した独自の DTD を持っていて、その DTD に hr 要素が含まれているので、文法違反にはならないはずです。
http://www.nttdocomo.co.jp/binary/pdf/service/imode/make/content/xhtml/HTML_XHTML_taglist.pdf
http://www.au.kddi.com/ezfactory/tec/spec/wap_tag02.html
http://www2.developers.softbankmobile.co.jp/dp/tool_dl/download.php?docid=135&companyid=
文法違反が問題になるとすると、「その他」端末向けですね。これは素の XHTML Basic の DTD としているので文法違反になってしまいます。
はっ! そういえばそうでした。「Ktai Style」側でそのように宣言していたわけですね。
・・・で、こうなるとやっぱり「font」などの要素が出てくるのが困るわけですが。
と言いつつ、何故かx64のVistaではauのシミュレータがまともに動かないので、ソースコードがどのように変換されるのか確認できていませんが・・・。
実はこちらが主に動作確認をしたのはそっちのほうでして、そっちの出力結果を基に申し上げていたわけです。大変失礼いたしました・・・。
ノートPC(こっちはx86のVista)にもシミュレータを入れて動作確認してみたほうが良さそうですね。う~ん。
これは悩んだ末、現在の実装になっています。tags.php でのテンプレートタグは従来端末対応の出力 (font 要素などを使う) にしておいて、HTTP ヘッダが application/xhtml+xml の場合に、あとで一括して style 属性に書き換える仕組みにしてあります。
「その他」端末では確かに問題なため、DTD は XTHML Basic じゃなくて、素の XHTML にしてしまいましょうか。ただし、スマートフォンでは Opera, NetFront など文法違反に寛容なものが多いため、現状でも動作すると言えばそうなのですが
何故か今日に限って異様にコメントの多いTelminaブログです(苦笑)。
・・・だからわざわざそういうオプションを用意していたのですね! やっと気づきました。
でもこうなると、auでは同様の変換を行わないのかということになるのですが、
という現状に甘えてしまうのが、結局は「実用上」一番問題が少ないのでしょうかねぇ。
自分が改造したテンプレートを一般公開するのはもうちょっと先にしたいと思います。こっちはこっちで逃げる手を考えてみます。仕事でPHP言語を使うことがほとんどなく、まだまだシロート同然ですが・・・。
au というか、EZweb はまだ HDML 対応端末が存在するため、スタイルシートを使うとうまく変換できない *らしい* ので、text/html および font 要素など使う記述にしています。ツーカーが停波すれば HDML 端末はほとんどなくなるため、検討してみます。
そういえば、まだHDML端末をお使いの方ってどれぐらいいらっしゃるのでしょうかねぇ?
携帯電話の買い換えに消極的だったうちの親も、ついにAの5000番台を入手したようですので、そろそろ風前の灯火と思っていたのですが(ぉぃ)。
このブログの読者層でHDML端末をお使いの方がいらっしゃいましたら、お知らせください。
でも、テーマを変えたあと閲覧できなくなったという話を聞いていないので、このブログに限っていえば問題ないのかも・・・。
あとはブログ全体でHDML端末によるアクセスがどれぐらいの割合なのかという統計でもあればよいのでしょうが・・・。
週末は狩猟(ぉぃ)とテンプレートのさらなる改造に明け暮れることになるのかな?
コメントを書く