Windows ストア アプリのタイポグラフィについて

Windows 8.1の Windows ストア アプリ開発では、合字が発生する場合があります。どのように対処するかは、高橋のBlogを参照して頂くとして、ここでは何で?なのかということを考えてみたいと思います。 確か、Visual Studio 2012までは特に問題を感じなかったのですが、これは StandardStyles.xamlというスタイル シートがプロジェクトに取り込まれていたお蔭とも考えられます。一方で、Visual Studio 2013は StandrdStyles.xamlが廃止されたことで、この問題が出てきました。Visual Studio で XAML 系のプロジェクトをビルドすると、「%WindowsSdkDir%\Include\winrt\xaml\design\generic.xaml」がリソースとしてアプリに取り込まれるようになっています。このリソース定義で、Typography.DiscretionaryLigaturesとTypography.StandardLigaturesの設定が各種のテキスト スタイルに指定されていることから、合字の問題が発生します。何故、標準が合字なのかという疑問を調べていくと、タイポグラフィのガイドラインという文書に行き当たります(日本語ドキュメントでは、タイポグラフィを文字体裁と訳しています)。このガイドラインに記述されている「優れた文字体裁を実現するための8つのヒント」の第1項に「OpenType機能をグローバルに適用する」があります。この記述の最初に

「推奨されるいずれかの UI フォントを使う場合、OpenType 機能のカーニング (kern)、随意の合字 (dlig) 、Stylistic Set 20 (ss20) をすべてのテキストに適用します。」

とあります。つまり、UI フォントは合字、カーニングなどを適用することで優れたタイポグラフィが実現できるとと書かれているわけです。UI フォントを日本語の環境に置き換えると、メイリオ UI フォントになるわけで、メイリオ UI フォントの合字がこの問題に繋がっていることになるわけです。このガイドラインには、

推奨されるフォントを使わない場合は、随意の合字を適用しないでください。」

とも記載されているので、推奨フォントを使用しない場合は合字を適用しないことを標準にしなさいと言っているわけです。つまり、推奨フォント以外は、テキスト スタイルを自分で定義して generic.xamlのスタイルを適用しないようにして下さいということになります。

これは UX ガイドラインをチェックしていて見つけましたが、色々なガイドラインがあるので是非、ご自分で確認してみてください。ちなみに、フォントに関係する UX ガイドラインを以下に記述しておきます。