Hatena::Groupsubtech

ういはるかぜの化学

Tuesday, May 24, 2011

Windows Phone "Mango" 7.1 02:04 Windows Phone "Mango" 7.1 - ういはるかぜの化学 を含むブックマーク はてなブックマーク - Windows Phone "Mango" 7.1 - ういはるかぜの化学

フォントはまだ暫定とかってうわさを聞きましたのでアレ

フリックが斜めで濁点というのはおもしろいですね。

Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)

なぜかUser-AgentがWindows Phone OS 7.5。

タイトル変更 19:46  タイトル変更 - ういはるかぜの化学 を含むブックマーク はてなブックマーク -  タイトル変更 - ういはるかぜの化学

気が向いたら戻してしまうかも。

Quirksモードやめたい! 19:46  [[Quirksモードやめたい!]] - ういはるかぜの化学 を含むブックマーク はてなブックマーク -  [[Quirksモードやめたい!]] - ういはるかぜの化学

Quirksモードやめたい!」(自動でキーワードになります)と書くともれなくはてなグループ日記システムが判別して、問題ない場合には<!DOCTYPE html>とX-UA-Compatibleを出力します。

Tuesday, May 10, 2011

DirectWriteでのAAへの影響 01:19 DirectWriteでのAAへの影響 - ういはるかぜの化学 を含むブックマーク はてなブックマーク - DirectWriteでのAAへの影響 - ういはるかぜの化学

DirectWriteで文字間隔が詰まってしまうということで、AAが大変なことになるんじゃないかと危惧している方々もいるようなのですが、まあそんなに崩れるほどは変わらないので気にしなくても大丈夫そうです。

左がQuirksモード(IE9以前)、右がIE9標準モード(DirectWrite)

f:id:mayuki:20110511010815p:image:h640

ところで、ちょっとおもしろいのがこれをズームアウトして縮小したときの表示です。

左がQuirksモード(IE9以前)、右がIE9標準モード(DirectWrite) / 拡大率を40%で表示

f:id:mayuki:20110511010816p:image:h640

このように文字間隔が細かく処理される分、縮小してもAAが崩れずに表示されるようになります。

というどうでもいいおまけでした。

あ、そうそう「ビットマップフォントやめればいい」っていうのは考慮する気がない/変になるぐらいならって程度の意味で別にビットマップフォント嫌いとかじゃないですよ!

特に関連しない記事

はてなブログ

IE9ヤバイの話。 12:14 IE9ヤバイの話。 - ういはるかぜの化学 を含むブックマーク はてなブックマーク - IE9ヤバイの話。 - ういはるかぜの化学

IE9ヤバイ。IE9の文字間隔・互換モード・DOCTYPE宣言について - ぼくんちのTV 別館

no title

なんかブックマークのコメントを見てたら突っ込んでおくべきなような気がしたので少しごにょごにょと。

もともとMicrosoft寄りなので信者擁護乙みたいになってしまって、うむむ…って思ったのですがあまりに死ねみたいなコメントが延々と多いのでちょっとうーむと。

この元のエントリではわかりにくいですが以下の3つの点について触れています。

  • 以前のバージョンや他のブラウザに比べて文字間隔が狭くなる
  • フォント指定が効いていない
  • 正しく表示されない・動作しないサイトがある

以前のバージョンや他のブラウザに比べて文字間隔が狭くなる

というわけで1番目の文字間隔が狭くなるという話についてです。

これは文字の描画がGDIからDirectWriteという仕組みに変わり、文字間隔の処理が丸められなくなったので本来のフォントやサイズの意図に近い間隔になるようになったというのが根本の原因です。(参考: no title)

この点についてはエントリでも補足されています。なので実際にはさらに2つの点に分かれます。

  • 本来の文字間隔になったため詰まったように見える
  • ビットマップフォントでは予想外に詰まってしまう

まず1つ目の「本来の文字間隔」になったというのはその通り普通に「仕様」で、正しい期待通りの挙動なので不具合ではありません。

「おいおい、前と間隔が違うじゃねーのどうしてくれんのさ不具合だろ」という方は「MacWindowsで文字のアンチエイリアスや間隔が違うのを直せ」という担当者と変わりませんのでこのたびはお悔やみ申し上げます。

で、2つ目がMS P ゴシッカーにはちょっと困る話で、文字間隔を調節した結果ビットマップフォントだとサブピクセルレンダリングもないので妙に詰まって見えて「読みづらい」という風になったという話です。これは微妙といえば微妙ですね。

ところでこれはDirectWriteのレンダリング結果のせいなので、IE9というよりそもそもWindowsに非があります。

例えば同じDirectWriteを採用しているWPFで同じ文字列を表示してみると以下の通り、IE9と同様の結果となります。

f:id:mayuki:20110509202827p:image

f:id:mayuki:20110510114915p:image

たぶん、今時欧文フォントでビットマップフォントを使わないのでDirectWriteであまり考慮されていなかったのではないかという気がします。これは残念ですね。もういっそビットマップをやめればいいんじゃないかと思ったりしますが。

フォント指定が効いていない

2番目のフォント指定の話は、ブラウザのフォント設定でメイリオを設定したのに効いてない!不具合!って話です。

sans-serif指定したらちゃんと動かないっぽいと追記されてます。

まず、そもそもInternet Explorerのフォント設定の画面には「ここで選択するフォントは、フォントが指定されていない Web ページやドキュメントで表示されます」と書いてあります。

f:id:mayuki:20110510110310p:image

つまりfont-familyが指定されている(=フォントが指定されている)とそのダイアログでの設定は無視されます。その結果ブラウザのデフォルトスタイルシートのフォントファミリ sans-serif の定義がMS P ゴシックになっていて反映されるというわけです。

そもそも san-serif がMS P ゴシックなのもたまたまかもという勢いである(別に何か決まってるわけではない)のでInternet Explorer 9 RC 版用テスト ガイド: 5.フォント・テキスト処理には以下のように書かれています。

フォント指定記述において、日本語フォント名を明記せず、英語フォント名や汎用フォント ファミリー名を用いている場合、意図しないフォントが表示に使われる場合があります。日本語フォント名を明記して下さい。また、Font-family の中でフォントを複数指定する場合は、表示したいフォント名順に列挙して下さい。

CSS 3 Font Moduleの3.1.1 Generic font familiesにはsans-serifはGothic (Japanese)と書かれてるのでsans-serifを指定することでゴシック系の何かが指定された相当だと思えばそういうものな感じでもあります。

ちなみにもしユーザーがコントロールしたいならユーザースタイルシートに@font-face書いたりしておくといいかもしれません。

正しく表示されない・動作しないサイトがある話

3番目は割とどうでもいいというかサイトの問題(ハックやUAで分岐しているがためのミスなど)だったりすることが多いのと互換表示で何とかなるという、まあそうですよねというお話です。

例えばUser-AgentみてIEだったらattachEventメソッドを使うみたいなことをしていると動かないみたいなケースですね。

おわりに

Web標準やらW3Cの仕様云々とかコメント書いてる人こそホビロンだと思ったり。