この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2018年2月)

2018年2月11日

WebStudioともずはっく日記のHTML5化とその他もろもろ
初回投稿日時: 2018年02月11日21時59分20秒
最終更新日時: 2018年02月12日00時59分32秒
カテゴリ: WebSiteManager WebStudio
SNS: (list)

前々から気になっていたものの、時間が確保できずに保留になってたこのサイト全体の更新を雑にやりました。まだまだ古い日記のエントリ等も書き換えていかないといけないので、その辺にアクセスされる場合はもうしばらくお待ちください。以下、ざっくりとやったこと。

XHTML 1.0 StrictからWHATWGのLiving Standardに書き換え

もともと、<hn>要素と、それに続く弟要素たちをグループ化していたdiv.sectionと、<hn>要素に続く弟要素たちをグループ化していたdiv.contentで似たような構造化を行っていましたが、今のブラウザのCSSセレクタの充実ぶりを考えると、後者はもう必要無いのでこれを削除、div.sectionを適当な要素で置き換えて行くという作業が大半を占めました。

作業には私が大昔に自作したWebSiteManagerというHTMLエディタを使いましたが、XHTML 1.1の時代までしか開発してなかったものなので、HTMLの要素や属性、CSSのプロパティやその値がリストに入っていなくて効率悪く、非常にストレスのたまる作業になってしまいました。もう、コンパイル環境(Delphi)が無いし、かといって今更高い金出してDelphi買っても、たぶん素直にコンパイル通らなさそうというのでどうしたもんかと。

HTML5は策定時の色々中途半端な知識がGeckoの開発時に問題になっても困るので、逐一知識をあえていれないようにしていたので、今回、イチから勉強する形になりました。アウトライン周りはなかなかに人によって意見が分かれそうな雑な定義で実に悩まされましたね……ググっても、どれを参考にすれば良いのかと思えるぐらい、検索結果が玉石混交っぽくて、今でもまだ正解が分かってません。

W3CのHTML5.xではなく、WHATWGの方を採用している(つもり)なのは、ブラウザベンダが基本的にはW3CのHTML5.xの方は向いていないからですね。

application/xhtml+xmlでの送信をやめた

HTML5化にあたって、XHTMLをHTMLに書き直し、application/xhtml+xmlで配信するのを完全にやめました。当時から対応していないブラウザやWebサービスを使っているユーザから苦言をいただきましたが、私の方へ来た意見の中で、サービスのベンダに報告しといたよっていう内容がゼロ件だったので、まあ、イラッとしましたね。

技術的には結構興味深かい生きた実験場でした。SGMLなHTMLから、機械とより相性の良いXMLで再定義されたXHTMLをフルにXMLとしてブラウザに解釈させるにはこのMIMEタイプでの配信が必須だったわけですが、当然、XMLなのでパースできないとエラーになってしまうわけです。

これがWebコンテンツでどういう意味を持つかというと、ブラウザはできるだけ高速にレンダリングしようとするため、読み込み中でもwell-formedであると仮定して、HTMLのように逐次表示を行っていくわけです。しかし、ロード中に回線が不安定になると(東海道新幹線N700車内のWiFi接続でしょっちゅう再現)、突然、途中まで表示していた結果すら破棄して、パースエラーを出すわけです。

また、日記のエントリをプレピュー表示しようとして、その内容がXML(XHTML)的にInvalidだった場合、当然、プレビューがXMLのパースエラー画面になってしまいます。つまり、昔流行った、Web2.0なコンテンツとは死ぬほど相性が悪いわけです。

これらのことは、近日中に静的なページを更新してそちらに書いておきますが、長年こだわって付き合った結果、XMLはWebページには相性の良い技術ではない、というのが私の感想です。

WebSiteManagerやLibraryにあった古いドキュメント、古いW3C仕様書の指摘翻訳は削除

これら、更新していないものたちは、百害あって一利なしと判断して削除しました。ただ、機種依存文字に関するドキュメントのみ、内容が古いですが、未だにアクセスが多いので残しておくことにしました。

モバイル対応を改善

本格的にやるつもりもないのですが、一応、雑に行っていたモバイル対応をもう少し現状にあわせたものに修正しておきました。画面解像度のブレイクポイントってどこに設定するのが良いのかは本当に難しいですね。PCだけはその対応から外しておきたいともなんとなくは思うのですが、やり方を思いつかず。

HTTPS化とwwwサブドメインの段階的な削除

Let's Encryptの無料SSL証明書が使えるようになったとアナウンスをもらっていましたが、なかなか作業できずに、結局このタイミングでやることに。

ついでに、リダイレクトでwww.d-toybox.comから、d-toybox.comに変えるようにしました。そのうち、サーバのドメイン設定からもwwwサブドメイン(と言って良い?)を削除してしまいたいなと。

関連するかもしれないエントリ

関連するかもしれないエントリを発見できませんでしたが、無いとは限りません。