数字の桁を揃えたくて、その行全体に等幅フォントを指定しました。その行には漢字も入っていました。数字は揃いました。漢字のほうは、私たちが一度も選んだことのないフォントに変わっていました。フォールバックは黙って起きるブラウザは文字を受け取ると、まず指定されたフォントの中を探します。なければフォントリストの次へ。どれにもなければ、システムのデフォルトを使います。この間、何の知らせもありません。コンソールにもメッセージは出ず、エラーもありません。画面の上で、その行の漢字だけほかと少し感じが違う、というだけです。デザインカンプでは、その行にはたいてい数字しか入っていないので、レビューでは気づけません。落とし穴がもう2つ漢字用のフォントを等幅フォントの後ろに並べても、それが使われるとは限りません。漢字がシステムのデフォルトまで落ちていき、並べたフォントで止まらないことがあります。漢字を含むラベルは、いまはフォントリストの順番に頼らず、使うフォントを直接指定しています。もう1つは無料のフォント配信サービスです。すべての書体に必要なCJK版があるわけではありません。欧文版と同じリクエストに書くと、サービスは持っているほうだけを返し、何が足りないかは言いません。リクエストは成功、ステータスコードは200で、文字は半分欠けています。いまのやり方等幅で囲むのは数字の部分だけにして、行全体は囲みません。検収でも、フォントのAPIに読み込まれたかどうかを聞くことはしません。APIの「読み込まれた」は試したという意味でしかなく、画面で実際に使われたことは示しません。代わりに、文字をキャンバスに描いてピクセルを比べます。違う2つのフォントで同じ文字を描けば、ピクセルは必ず違います。