応用情報技術者 2019年 春期 午後 問08
Webサイトの開発に関する次の記述を読んで、設問1〜5に答えよ。
J社は、コーヒー店をチェーン展開する外食事業者である。J社が運営するコーヒー店のWebサイトは開設後数年が経過し、デザインが古くなっていることから、Webサイトのリニューアルを実施することになった。
J社のシステム部門に所属するK君は、Webサイトの担当として、リニューアルに当たってのデザイン及び開発方針を整理することになった。
〔リニューアルにおけるWebサイトデザインの要件〕
リニューアルに当たり、システム部門のL部長から“スマートフォンやタブレットからのアクセスが大きな割合を占めることから、Webサイトにアクセスする手段に応じて、Webサイトの表示を切り替え、利用者が見やすいWebサイトにすること”との要件が示された。
〔実現案の検討〕
K君は、スマートフォン、タブレット及びPCをWebサイトにアクセスするデバイスとして想定し、この要件に対する実現方法として、次の2案を比較検討した。
案1:WebサイトにアクセスするWebブラウザやデバイスのスクリーンサイズ(画面幅)を基準に、表示を切り替える方法
案2:WebサイトにアクセスするWebブラウザやデバイスのユーザエージェント情報によって、表示を切り替える方法
案1は、aと呼ばれる手法である。
K君が調査した両案の特徴を表1に示す。

K君は表1の両案の特徴を比較し、次の理由から案1を採用する方針とした。
・J社が運営するコーヒー店のWebサイトでは、デバイスごとに大きくデザインを変更する必要がない。
・①案2は初期開発や将来のデザイン変更において、開発コストが大きくなると考えられる。
〔デザインイメージの作成〕
K君は、スマートフォン、タブレット及びPCの3種類のデバイスに対して、それぞれのウインドウ幅に適したデザインイメージを作成した。
K君が作成したデバイスごとのデザインイメージを図1に示す。
スマートフォンとタブレットはシングルカラムのレイアウトとし、PCは2カラムのレイアウトとした。また、見出しや画像の水平方向のレイアウトは、スマートフォンではセンタリング、タブレット上では右寄せとし、上下方向のレイアウトはデバイスにかかわらず上寄せとした。画像はデバイスごとのWebブラウザに合わせたサイズ、縦横比の画像を表示することとし、縦長は表示されないこととした。

〔ブレークポイントの決定〕
案1の実現方法では、デバイスの解像度、ウインドウの幅・向きなどの指定条件に合わせて別々のCSSを適用する“メディアクエリ”の機能によってCSSを切り替える。Webブラウザのウインドウ幅でCSSを切り替える条件を“ブレークポイント”という。ブレークポイントはピクセルで指定し、単位はpxで表す。
K君は、図1のデザインイメージに合わせて、スマートフォンとタブレットのブレークポイントを768px、タブレットとPCのブレークポイントを1,024pxとし、表2のように対象デバイスごとのWebブラウザで想定されるウインドウ幅の範囲を決定した。

また、表1に示す案1の特徴から、②非機能要件を考慮して、デバイスごとにサイズの異なる画像を用意し、表2のウインドウ幅の範囲に合わせて、表示する画像を切り替える方針とした。
〔CSS の作成〕
K君は、表2で決定したウィンドウ幅の範囲に合わせて CSS を作成した。CSS で使用する書式及びデータの一部を表3に示す。また、K君が作成した CSS のうち、タブレット用のブレークポイントの指定と画像表示に関する部分の抜粋を図2に示す。ここで、図1中で“タイトル1”の下に表示する画像は、background プロパティを用いて表示することにした。


設問1:
本文中のaに入れる適切な字句を答えよ。
模範解答
a:レスポンシブWebデザイン
解説
解答の論理構成
- 問題文では、実現方法として
“案1:WebサイトにアクセスするWebブラウザやデバイスのスクリーンサイズ(画面幅)を基準に、表示を切り替える方法”
と示されています。 - さらに“案1は、aと呼ばれる手法である。”と明記されています。
- デバイスごとのスクリーンサイズを基準にし、単一の HTML/CSS ファイルで表示を最適化する手法は一般に「レスポンシブWebデザイン」と呼ばれます。
- 表1でも“様々なデバイスに対して単一の b ファイルを使用する。Webブラウザのウィンドウ幅を基準に、CSSで表示を切り替える。”と記載されており、この特徴もレスポンシブWebデザインの定義そのものです。
- 以上より、a に入る適切な字句は
解答:レスポンシブWebデザイン
誤りやすいポイント
- “ユーザエージェントで判定しリダイレクト”と“画面幅で CSS を切り替え”を混同し、前者をレスポンシブと誤認しやすいです。
- “アダプティブ Web デザイン”や“モバイルファースト”といった関連用語と混ぜて覚えてしまうと、単一ファイル+メディアクエリという核心を外す危険があります。
- “単一の HTML ファイル”ではなく“単一の CSS ファイル”とだけ覚えると、設問が HTML/CSS いずれに言及しても自信を持って判断できません。
FAQ
Q: レスポンシブWebデザインは必ずしもすべての画像を共通利用するのですか?
A: いいえ。問題文の“②非機能要件を考慮して、デバイスごとにサイズの異なる画像を用意し、…表示する画像を切り替える方針”のように、同一 HTML でも CSS のメディアクエリで画像を個別に出し分けることが推奨されます。
A: いいえ。問題文の“②非機能要件を考慮して、デバイスごとにサイズの異なる画像を用意し、…表示する画像を切り替える方針”のように、同一 HTML でも CSS のメディアクエリで画像を個別に出し分けることが推奨されます。
Q: レスポンシブWebデザインと案2の方法、性能面でどちらが速いですか?
A: 問題文の表1にあるとおり、“リダイレクトを行わないので、表示の遅延は発生しない”点で案1(レスポンシブWebデザイン)が一般に有利です。ただし高解像度画像を共通利用すると転送サイズが増えるため、その場合は画像分割など追加対策が必要です。
A: 問題文の表1にあるとおり、“リダイレクトを行わないので、表示の遅延は発生しない”点で案1(レスポンシブWebデザイン)が一般に有利です。ただし高解像度画像を共通利用すると転送サイズが増えるため、その場合は画像分割など追加対策が必要です。
Q: メディアクエリで切り替える条件はウィンドウ幅だけですか?
A: いいえ。向き(orientation)や解像度(resolution)など複数条件を組み合わせて指定できますが、本問では“ウインドウ幅”をブレークポイントとしています。
A: いいえ。向き(orientation)や解像度(resolution)など複数条件を組み合わせて指定できますが、本問では“ウインドウ幅”をブレークポイントとしています。
関連キーワード: CSS, メディアクエリ, ブレークポイント, ユーザエージェント
設問2:表1について、(1)、(2)に答えよ。
(1)bに入れる適切な字句を、5字以内のアルファベットで答えよ。
模範解答
b:HTML
解説
解答の論理構成
- 表1の案1には
“様々なデバイスに対して単一の b ファイルを使用する。Webブラウザのウィンドウ幅を基準に、CSSで表示を切り替える。”
とあります。単一ファイルで済むのは文書構造(マークアップ)が共通だからです。 - 同じく案2には
“デバイスごとに最適化した複数の b ファイルを準備しておく。…適切な b ファイルにリダイレクトを行うことで表示を切り替える。”
とあり、デバイスごとに別々の文書を用意する方式を示しています。 - CSS はスタイル定義であり“ファイルを切り替える”主体ではありません。切り替えの対象はページ本体=マークアップファイルです。
- Web ページのマークアップファイルは “HTML” で記述するのが一般的です。
- 以上より b に入る語は “HTML” が妥当となります。
誤りやすいポイント
- CSS と勘違いする
“CSS で表示を切り替える” という表現に惑わされ、b を CSS と答えてしまうケースがあります。実際に切り替えたい対象は文書ファイル本体であり CSS ではありません。 - JavaScript と混同する
“リダイレクト” や “ユーザエージェント情報” という語から動的スクリプトを連想し JavaScript と誤答する例がありますが、文書構造の記述言語は HTML です。
FAQ
Q: CSS ファイルはデバイス別に用意しなくてよいのですか?
A: 案1では単一の “HTML” に対し、メディアクエリで条件分岐した CSS を 1 ファイルにまとめたり複数に分割したりできます。問題文は “単一の HTML ファイル” としており、CSS ファイル数は制限していません。
A: 案1では単一の “HTML” に対し、メディアクエリで条件分岐した CSS を 1 ファイルにまとめたり複数に分割したりできます。問題文は “単一の HTML ファイル” としており、CSS ファイル数は制限していません。
Q: “リダイレクト” が発生すると何が遅くなるのですか?
A: いったんサーバが端末判定用のページを返し、続いて本来の “HTML” に転送するため HTTP 往復回数が増え、その分表示が遅延します。
A: いったんサーバが端末判定用のページを返し、続いて本来の “HTML” に転送するため HTTP 往復回数が増え、その分表示が遅延します。
Q: “HTML” 以外のマークアップ言語を使うケースはありますか?
A: CMS や Web アプリでテンプレート言語を使って動的生成する場合でも、最終的にブラウザへ送られるのは HTML です。したがって表1の文脈では “HTML” が正解となります。
A: CMS や Web アプリでテンプレート言語を使って動的生成する場合でも、最終的にブラウザへ送られるのは HTML です。したがって表1の文脈では “HTML” が正解となります。
関連キーワード: HTML, CSS, メディアクエリ, レスポンシブWebデザイン
設問2:表1について、(1)、(2)に答えよ。
(2)c、dに入れる適切な字句を解答群の中から選び、記号で答えよ(cとdは順不同)。
解答群
ア:IPアドレス
イ:PC
ウ:ウィンドウ幅
エ:回線
オ:種類
カ:セッションID
キ:バージョン
ク:プロバイダ
模範解答
c:オ
d:キ
解説
解答の論理構成
- 【問題文】には “ユーザエージェント情報(Webブラウザのcやdの情報)” と書かれています。
- “ユーザエージェント情報” とは、HTTP リクエストヘッダ User-Agent に含まれる文字列であり、通常はブラウザの「種類(製品名)」と「バージョン(版数)」を示します。
- 解答群のうち、ブラウザの製品名を表す語は “オ:種類”、版数を表す語は “キ:バージョン” です。
- よって、c=“オ:種類”、d=“キ:バージョン” となります。なお、設問は「順不同」と明記されているため、順序は問われません。
誤りやすいポイント
- “ウ:ウィンドウ幅” をユーザエージェント情報と誤解するケースがありますが、ウィンドウ幅はクライアント側スクリプトや CSS で取得する値であり、User-Agent には含まれません。
- “ア:IPアドレス” は TCP/IP レイヤで使用される情報であり、ブラウザ固有の識別子ではないため不正解です。
- “イ:PC” のようにデバイスカテゴリをそのまま入れたくなりますが、User-Agent には “Windows NT 10.0; Win64; x64” など OS やアーキテクチャが含まれる一方、単語として “PC” が固定で入るわけではありません。
FAQ
Q: “種類” と “バージョン” はどこで確認できますか?
A: ブラウザのデベロッパーツールやネットワークキャプチャで HTTP ヘッダ User-Agent を参照すると確認できます。
A: ブラウザのデベロッパーツールやネットワークキャプチャで HTTP ヘッダ User-Agent を参照すると確認できます。
Q: “ユーザエージェント判定” は現在推奨されないのですか?
A: 対応ブラウザが増えるたびに判定条件が複雑化するため、設問の “案1” のようにレスポンシブ Web デザインで画面幅を基準にする方法が一般的になっています。
A: 対応ブラウザが増えるたびに判定条件が複雑化するため、設問の “案1” のようにレスポンシブ Web デザインで画面幅を基準にする方法が一般的になっています。
Q: 同じ種類のブラウザでもバージョンが異なると挙動が変わることがありますか?
A: あります。特に CSS や JavaScript の対応状況がバージョンによって異なるため、User-Agent でバージョンまで判別してフォールバック処理を行う例があります。
A: あります。特に CSS や JavaScript の対応状況がバージョンによって異なるため、User-Agent でバージョンまで判別してフォールバック処理を行う例があります。
関連キーワード: ユーザエージェント, レスポンシブWebデザイン, ブレークポイント, HTTPヘッダ, クライアント判定
設問3:
本文中の下線①について、開発コストが大きくなる理由を35字以内で述べよ。
模範解答
デバイスごとのHTMLファイルを開発する必要があるから
解説
解答の論理構成
- 問題文は案2の仕組みを
“デバイスごとに最適化した複数の b ファイルを準備しておく。”
と明示し、単一ファイルの案1と対比させています。 - b は同じ表内で “様々なデバイスに対して単一の b ファイルを使用する。” と書かれているため HTML ファイルを指します。
- デバイス別に “複数” の HTML を用意するということは、初期開発時も保守時もファイル数分だけ
・コーディング
・テスト
・デザイン修正
が重複します。 - したがって、下線①の「開発コストが大きくなる理由」は
“デバイスごとのHTMLファイルを開発する必要があるから”
となります。これが模範解答と一致します。
誤りやすいポイント
- 「リダイレクト処理があるから遅くなる」→表示速度の話であって開発コストの理由ではありません。
- CSS を複数用意すると誤解しがちですが、問題文が複数準備すると述べているのは HTML ファイルです。
- ユーザエージェント判定ロジックの実装負荷を主因と考えがちですが、主たる理由は“ファイルの数”である点に注意してください。
FAQ
Q: CSS をメディアクエリで分けてもページ数は増えないのですか?
A: はい。案1は “単一の b ファイルを使用する” とあるように HTML は 1 枚で、表示切替えは CSS だけで完結します。
A: はい。案1は “単一の b ファイルを使用する” とあるように HTML は 1 枚で、表示切替えは CSS だけで完結します。
Q: ユーザエージェント判定のスクリプト開発もコスト要因では?
A: もちろん追加要因ですが、問題文は HTML を複数準備する点を強調しており、設問もそこを理由とするよう求めています。
A: もちろん追加要因ですが、問題文は HTML を複数準備する点を強調しており、設問もそこを理由とするよう求めています。
Q: 将来のデザイン変更時もコストが高いのはなぜ?
A: 変更箇所が複数の HTML に散在するため、同じ修正を各ファイルに適用しテストする手間が累積するからです。
A: 変更箇所が複数の HTML に散在するため、同じ修正を各ファイルに適用しテストする手間が累積するからです。
関連キーワード: レスポンシブWebデザイン, メディアクエリ, ユーザエージェント, リダイレクト, 保守性
設問4:
図2中のe~hに入れる適切な字句を答えよ。
模範解答
e:768px
f:1023px
g:/images/topimage_w768.jpg
h:no-repeat
解説
解答の論理構成
-
ブレークポイントの設定
- 【問題文】には「“ブレークポイント”はピクセルで指定し…」とあり、表2でタブレットの範囲は「768〜1,023px」と示されています。
- 図2はタブレット用 CSS の抜粋なので、@media の min-width は範囲の下端「768px」、max-width は上端「1,023px」になります。
- したがって
- 「e」=「768px」
- 「f」=「1023px」
(CSS の値はカンマを含めず記述するため、表2の「1,023px」をコードでは「1023px」と書きます。)
-
画像ファイルの選択
- 表3に「/images/topimage_w768.jpg」が「タブレット用の画像ファイルの URL」として示されています。
- 図2はタブレット専用ブレークポイント内の .keyvisual 設定なので、background-image にはこの URL を指定します。
- 「g」=「/images/topimage_w768.jpg」
-
背景画像の繰り返し指定
- 表3の background-repeat の説明より、同じ画像を敷き詰めず 1 枚だけ表示したい場合は「no-repeat」を使います。
- 図1のデザインイメージも画像を 1 枚だけ配置しているため、タブレット用の CSS でも繰り返しは不要です。
- 「h」=「no-repeat」
誤りやすいポイント
- 「1,023px」をそのまま max-width に書いてしまい、文法エラーになる。CSS の数値にはカンマを入れません。
- background-image にスマートフォン用「/images/topimage_w320.jpg」や PC 用「/images/topimage_w1024.jpg」を誤って指定する。
- background-repeat を省略してデフォルトの repeat のままにし、意図せずタイル状表示になる。
FAQ
Q: min-width と max-width の両方を書く必要がありますか?
A: はい。タブレット専用の範囲「768〜1,023px」を明確に区切ることで、スマートフォンや PC 用 CSS と重複せずに適用できます。
A: はい。タブレット専用の範囲「768〜1,023px」を明確に区切ることで、スマートフォンや PC 用 CSS と重複せずに適用できます。
Q: background まとめ指定ではなく個別プロパティを使う理由は?
A: 動作確認や後日の保守で「位置」「繰り返し」のみを個別に変更しやすくするためです。
A: 動作確認や後日の保守で「位置」「繰り返し」のみを個別に変更しやすくするためです。
Q: 画像を
タグではなく background-image で出す利点は?
A: 画面幅ごとに CSS だけで差し替えられる、HTML がシンプルになる、装飾用画像として取り扱える、などが挙げられます。
A: 画面幅ごとに CSS だけで差し替えられる、HTML がシンプルになる、装飾用画像として取り扱える、などが挙げられます。
関連キーワード: メディアクエリ, ブレークポイント, background-image, min-width, max-width
設問5:
K君が本文中の下線②の方針とした目的を20字以内で述べよ。
模範解答
画像表示の遅延を防ぐため
解説
解答の論理構成
-
表1の案1に関する記述には、表示速度について
“ただし、PCの高解像度ディスプレイ用の画像をスマートフォンでも共通して使用する場合には、表示の遅延が発生する。”
とあります。ここで問題となるのは“画像の遅延”です。 -
下線②では、
“②非機能要件を考慮して、デバイスごとにサイズの異なる画像を用意し、表2のウインドウ幅の範囲に合わせて、表示する画像を切り替える方針とした”
と述べられており、画像を“デバイスごとに”切り替える理由が示唆されています。 -
①で案1を採用した理由の一つとして表示速度が挙げられているため、②の方針は案1の弱点(大きい画像を小さい端末に送ると遅延が起きる)を補う対策と読み取れます。
-
したがって、下線②の目的は「画像を適切なサイズに切り替え、読み込みを速くすること」すなわち“画像表示の遅延を防ぐため”と結論付けられます。
誤りやすいポイント
- 「通信量削減」が主目的と早合点しやすいですが、問題文では“遅延”という速度面が強調されています。
- デザイン統一のためと答えてしまうケースがありますが、下線②は“非機能要件”であり見た目ではなく性能に関わる対策です。
- 案2に絡めてリダイレクト削減と混同する誤り。②は画像切替えでありリダイレクトとは別の話題です。
FAQ
Q: 画像サイズを端末ごとに変えると制作コストは上がりませんか?
A: 多少上がりますが、案1は“単一の CSS ファイル”で維持コストが低いため、画像を数種類用意する程度で総合的なコストは抑えられます。
A: 多少上がりますが、案1は“単一の CSS ファイル”で維持コストが低いため、画像を数種類用意する程度で総合的なコストは抑えられます。
Q: メディアクエリで画像を切り替える場合、HTML の srcset を使う方法でも良いですか?
A: はい、最近は srcset と sizes 属性で可変画像を実装する例も多く、CSS だけに限定されるわけではありません。
A: はい、最近は srcset と sizes 属性で可変画像を実装する例も多く、CSS だけに限定されるわけではありません。
Q: 画像遅延対策はキャッシュだけでも十分では?
A: キャッシュは再訪時のみ有効で、初回表示の遅延は解消できません。②のように端末に合った小さな画像を最初から配信する方が効果的です。
A: キャッシュは再訪時のみ有効で、初回表示の遅延は解消できません。②のように端末に合った小さな画像を最初から配信する方が効果的です。
関連キーワード: レスポンシブWebデザイン, メディアクエリ, ブレークポイント, 非機能要件


