ここからは、前ページで紹介した3つの手法にかかわらず、スマートフォン向けにWebサイトを見せていくうえで考慮しておいた方がいいハマリどころを紹介します。
Androidでは有名な事象の1つです。Androidの日本語標準フォント「Droid Sans Japanese」は、Android上で太字のフォントが利用できません。そのため、フォント追加のカスタマイズがされた端末(国内メーカー製の一部端末など)を除いて、Android標準ブラウザでの日本語表示では、CSSで太字が指定されていても太字として表示できません。
<!DOCTYPE html> <html lang="ja-JP"> <head> <meta charset="UTF-8"> <title>フォント</title> <style type="text/css"> .bold{ font-weight: bold; } </style> </head> <body> <p>あいうえお</p> <p class="bold">あいうえお</p> <p>abcde</p> <p class="bold">abcde</p> <p>12345</p> <p class="bold">12345</p> <p>12345</p> <p class="bold">12345</p> </body> </html>
そのため、コンテンツの中で、強調したい部分を太字にしたうえで、「太字で示した通り……」のような記述をすると、太字が表現できないAndroid端末で見ているユーザーには、いったい何のことか分からなくなってしまいます。スマートフォン向けのWebサイトでは、文章表現でも機種依存を考慮した表現をする必要があります。
これもiOSでは有名な事象です。最近リリースされたiOS6で、さらに扱いが変わって大きな話題になりました。iOSにおける明朝体の扱いは以下のようになっています。
<!DOCTYPE html> <html lang="ja-JP"> <head> <meta charset="UTF-8"> <title>フォント書体</title> <style type="text/css"> .m{ font-family: 'Hiragino Mincho ProN', serif; } .g{ font-family: "Lucida Grande", sans-serif; } </style> </head> <body> <p>何も指定しない例</p> <p><span class = "m">明朝体を指定</span></p> <p><span class = "g">ゴシック体を指定</span></p> </body> </html>
iPhoneには、日本語フォントにゴシック体のフォントしか搭載されていないため、明朝体を表示できません。
iPhoneに、明朝体フォントが搭載されるようになりました。Safariの標準フォントはゴシック体のままなので、CSSでフォント指定することで明朝体を表示できるようになりました。
Safariの標準フォントが、ゴシックから明朝体に変更されました。そのため、これまでCSSでフォント指定をしていなかった場合、ゴシック体で見えていたサイトが、突然明朝体で見えるようになる現象が確認されています。ゴシック体で表示されるようにしたい場合は、CSSで明示的に指定する必要があります。
スマートフォンは、端末を縦持ち・横持ちしてWebサイトを表示できます(それぞれの画面の状態を、「portrait」「landscape」と呼びます)。
Webサイトの中には、縦横の状態に合わせてデザインを変えて表示する場合もあります。端末の状態がportraitか、landscapeかを判断するとき、JavaScriptの「window.orientationchange」イベントや、「window.resize」イベント、「window.orientation」プロパティを使っているサイトを見掛けますが、OSのバージョンや端末によって挙動が違うため、「window.orientation」プロパティだけを使って判断するのは危険です。
詳細は、ブログ「Webサイトでスマホ・タブレットの傾きの判断をwindow.orientationだけに頼るのは危険 | x-fit - クロスフィット」で解説しているので参考にしてみてください。
今回は、割と有名な事象を取り上げましたが、次回以降、HTML5・JavaScript・CSSなどでのハマリどころを紹介していきます。お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.