応用情報技術者 2010年 秋期 午後 問08
Cascading Style Sheets(CSS)を用いたWebシステムの設計に関する次の記述を読んで、設問1~5に答えよ。
E社は、Webを使ってセミナやシンポジウムの情報を社外に提供し、申込みを受け付けるシステムを開発することになった。F君は、このWebシステムを開発する際の画面の標準化を担当している。統一感のある画面、ユニバーサルデザインを会社の方針としているので、この方針に沿った標準化を行う。
〔Web画面の構成〕
F君は、Webページの構造を図1、ページのレイアウトを図2のように設計した。タイトル、ガイド部分には共通項目が多く、開発者が個別に作成しても統一感を失わないように、CSSを用いることにした。CSSを用いた場合の役割分担の考え方に従い、XHTMLにはa、CSSにはbを記述する。図3に、画面形式Aの例であるホーム画面のイメージを示す。



F君は、統一感を保つために、CSSの利用を考慮したWebページの作成基準書を作成した。作成基準書の抜粋を項目(1)~(13)に示す。
(1) ポップアップウィンドウは、元の画面が遷移しない場合に限定して利用すること。
(2) 一覧表の行数は25件までとし、“次ページ”、“前ページ”の表示でガイドすること。
(3) 日付、時刻の形式は次のとおり統一すること。
日付:YYYY-MM-DD、時刻:hh:mm:ss
(4) 見出しにはh1~h6のいずれかの要素を用いること。
(5) 段落の記述にはp要素を用いること。
(6) 箇条書きにはul、c要素を用いること。
(7) XHTML及びCSSの文字エンコード方式にはUTF-8を用いること。
(8) table要素は、表を作成するときだけに用い、レイアウトに用いないこと。
(9) ①表のネストを行わないこと。
(10) ②画像を用いる場合は、Webページの読上げソフトに対応すること。
(11) 非表示属性を指定した入力項目を利用して、セッションの引継ぎを行わないこと。
(12) 画像を用いる場合は、表1に示すイメージの選択基準に従うこと。
(13) 複数の異なるWebページ表示環境を使って、実際の表示内容を確認すること。

F君は、標準として提供するCSSの定義を図4のように作成した。
@charset "e";
div#wrapper{width:840px;}
div#main{float:right;width:636px;background-color:lightcyan;}
div#main2{float:right;width:840px;background-color:lightcyan;}
div#sub{float:left;width: f px;background-color:blanchedalmond;}
#menu ul{margin:0px 0px lem;padding:0px;list-style:none;}
#menu c {display:inline;padding-right:1em;padding-left:1em;}
h1{font-size:1.2em;}
h2{font-size:1.1em;}
h3{font-size:1em;}
h4{font-size:0.9em;}
h5{font-size:0.8em;}
h6{font-size:0.7em;}
p{font-size:0.9em;}
c {font-size:0.9em;}
設問1:
作成基準書の抜粋の中で記述されているXHTMLの要素のうち、図4のCSSの定義によって、その詳細が具体的に規定されているものがある。それを含む項目(1)〜(13)から三つ選び番号で答えよ。
模範解答
(4)、(5)、(6)
解説
解答の論理構成
-
CSS が詳細を規定している要素を探す
図4には- h1~h6
- p
- #menu c と c(インライン指定)
があり、見出し・段落・箇条書きの項目がスタイル指定されています。
-
作成基準書でこれらの要素が言及されている箇所を照合
【問題文】抜粋- (4)「見出しには h1~h6 のいずれかの要素を用いること。」
- (5)「段落の記述には p 要素を用いること。」
- (6)「箇条書きには ul、c 要素を用いること。」
-
他の項目を確認
(1)~(3)、(7)~(13) は div、ul、li 以外のスタイル、またはコンテンツ規約・運用規約であり、図4の CSS で直接スタイルが与えられていません。 -
よって CSS により「詳細が具体的に規定されている」項目は
(4)、(5)、(6) となります。
誤りやすいポイント
- div#sub、div#main などを見て (8)「table要素は…レイアウトに用いない」と誤結び付けをする。div 用の CSS が記載されていても、(8) は table についての運用ルールであり対象外です。
- 「リスト=ul と連想 → (6) は ul だけ」と誤解し、c(li)が図4で指定されていることを見落として不正解になる。
- @charset 行を見て (7)「UTF-8 を用いること」を選びたくなるが、(7) はエンコーディング規約であってスタイル指定ではない。
FAQ
Q: 「見出し」のスタイルがなぜ (4) だけに対応すると言えるのですか?
A: 図4で h1~h6 のフォントサイズを細かく定義しており、作成基準書 (4) で使うよう指示された見出し要素の外観を CSS が具体化しているからです。
A: 図4で h1~h6 のフォントサイズを細かく定義しており、作成基準書 (4) で使うよう指示された見出し要素の外観を CSS が具体化しているからです。
Q: (6) で c が li と分かる根拠は?
A: 図4の #menu c や c { font-size:0.9em; } のように、ul 内でインライン表示するリスト項目が示されています。ul 内部要素で頻出なのは li だけなので特定できます。
A: 図4の #menu c や c { font-size:0.9em; } のように、ul 内でインライン表示するリスト項目が示されています。ul 内部要素で頻出なのは li だけなので特定できます。
Q: CSS があっても (8) の table が選ばれない理由は?
A: 図4には table セレクタが一切なく、表のレイアウト規制はあくまでマークアップ・運用ルールの話で、スタイル定義とは無関係だからです。
A: 図4には table セレクタが一切なく、表のレイアウト規制はあくまでマークアップ・運用ルールの話で、スタイル定義とは無関係だからです。
関連キーワード: セレクタ、インライン表示、リストマークアップ、フロートレイアウト、文字エンコーディング
設問2:本文中のa〜eについて、(1)、(2)に答えよ。
(1)a〜cに入れる最も適切な字句を、解答群の中から選び、記号で答えよ。
解答群
ア:div
イ:font
ウ:li
エ:tr
オ:画像
カ:情報とその構造
キ:設計
ク:テーブル
ケ:表現の指定
コ:フォーム
模範解答
a:カ
b:ケ
c:ウ
解説
解答の論理構成
-
【問題文】には
“CSSを用いた場合の役割分担の考え方に従い、XHTMLにはa、CSSにはbを記述する。”
とあります。- “役割分担”は W3C が推奨する「構造と表現の分離」のことです。
- XHTML が担うのはコンテンツの意味・階層=“情報とその構造”。
- CSS が担うのはレイアウト・色・サイズ=“表現の指定”。
よって
• a=“情報とその構造”(解答群「カ」)
• b=“表現の指定”(解答群「ケ」)
-
【問題文】(6) には
“箇条書きにはul、c要素を用いること。”
とあります。- ul 要素の子要素として使うのは HTML 仕様で li 要素のみ。
よって
• c=“li”(解答群「ウ」)
- ul 要素の子要素として使うのは HTML 仕様で li 要素のみ。
以上から
a:カ b:ケ c:ウ が妥当です。
a:カ b:ケ c:ウ が妥当です。
誤りやすいポイント
- 「構造=テーブル」と早合点し、aに「ク」を選ぶ誤答。テーブルはレイアウトでは推奨されず、構造化の一般原則とは別概念です。
- “表現”をデザイン工程の「設計」と結び付け、bに「キ」を選ぶケース。CSS が担うのは具体的なスタイル指定であり、工程名ではありません。
- 箇条書きで dt/dd と混同し、cを「ア」(div)にしてしまうミス。div は汎用ブロック要素で箇条書きの項目ではありません。
FAQ
Q: “情報とその構造”には具体的にどんなタグを書けばよいですか?
A: h1〜h6、p、ul/li、table など、文書の意味や論理階層を示す要素を記述します。レイアウト用の width 等は CSS に分離します。
A: h1〜h6、p、ul/li、table など、文書の意味や論理階層を示す要素を記述します。レイアウト用の width 等は CSS に分離します。
Q: CSS の “表現の指定” に該当するものを 1 つ挙げてください。
A: 文字サイズを変える font-size:0.9em; や、背景色を付ける background-color:lightcyan; などが該当します。
A: 文字サイズを変える font-size:0.9em; や、背景色を付ける background-color:lightcyan; などが該当します。
Q: ul と ol の違いは試験で問われますか?
A: 両方ともリスト要素ですが、ul は順序なしリスト、ol は順序付きリストです。箇条書きの要件でどちらを使うべきかを判断できるようにしておくと良いでしょう。
A: 両方ともリスト要素ですが、ul は順序なしリスト、ol は順序付きリストです。箇条書きの要件でどちらを使うべきかを判断できるようにしておくと良いでしょう。
関連キーワード: XHTML, CSS, セマンティックマークアップ、リスト要素、スタイルシート
設問2:本文中のa〜eについて、(1)、(2)に答えよ。
(2)d〜eに入れる適切な字句を答えよ。
模範解答
d:PNG
e:UTF-8
解説
解答の論理構成
-
表1の d の行を確認
- 【問題文】「フルカラーに対応する形式と、256色に対応する形式がある。画像を劣化させない圧縮方式であり、JPEGに比べて容量が大きくなる。アルファチャンネルに対応しているので、透明が表現できる。」
- キーワードは
• 「画像を劣化させない圧縮方式(ロスレス)」
• 「アルファチャンネルに対応しているので、透明が表現できる」
• 「フルカラー又は256色」 - これらを同時に満たす画像形式は Portable Network Graphics ――すなわち「PNG」です。
- よって d = PNG。
-
CSS の @charset "e"; を決定
- 作成基準書(7)に「XHTML及びCSSの文字エンコード方式にはUTF-8を用いること。」と明記されています。
- したがって @charset に指定すべき値は「UTF-8」です。
- よって e = UTF-8。
以上から解答は
- d:PNG
- e:UTF-8
誤りやすいポイント
- 「256色」という語だけで GIF と早合点する。GIF は確かに 256 色だが、フルカラーやアルファチャンネルを扱えないため条件に合わない点を見落としやすいです。
- PNG も GIF もロスレスだが、問題文は「フルカラーに対応」「アルファチャンネル」と追加条件を示していることに注意が必要です。
- @charset に Shift_JIS や EUC-JP を入れてしまうミス。設計基準書(7)を必ず参照しましょう。
FAQ
Q: PNG も GIF も透過できると聞きました。なぜ GIF ではなく PNG なのですか?
A: GIF が扱える透過は1色だけ(1ビット透過)で、アルファチャンネルによる多階調の透明度表現はできません。問題文は「アルファチャンネルに対応しているので、透明が表現できる」と述べているため PNG が該当します。
A: GIF が扱える透過は1色だけ(1ビット透過)で、アルファチャンネルによる多階調の透明度表現はできません。問題文は「アルファチャンネルに対応しているので、透明が表現できる」と述べているため PNG が該当します。
Q: @charset を書かずに だけではだめですか?
A: CSS ファイル単体で読み込まれる場合、ブラウザはまず @charset を参照して文字エンコーディングを判定します。基準書(7)は「XHTML及びCSS」に適用されるため、CSS 側でも UTF-8 を明示することが推奨されます。
A: CSS ファイル単体で読み込まれる場合、ブラウザはまず @charset を参照して文字エンコーディングを判定します。基準書(7)は「XHTML及びCSS」に適用されるため、CSS 側でも UTF-8 を明示することが推奨されます。
Q: JPEG でもフルカラーを扱えますが、なぜ表1で写真専用となっているのですか?
A: JPEG の圧縮は不可逆(ロスィ)であり、写真のように色情報が多い画像を効率良く縮小できます。一方ロゴなどは輪郭がはっきりしているため不可逆圧縮による劣化が目立ちやすく、PNG が推奨されます。
A: JPEG の圧縮は不可逆(ロスィ)であり、写真のように色情報が多い画像を効率良く縮小できます。一方ロゴなどは輪郭がはっきりしているため不可逆圧縮による劣化が目立ちやすく、PNG が推奨されます。
関連キーワード: PNG, UTF-8, アルファチャンネル、ロスレス圧縮、文字コード
設問3:本文中の下線①、②について、(1)、(2)に答えよ。
(1)下線①の理由を解答群の中から二つ選び、記号で答えよ。
解答群
ア:CSSで表を定義すると、固定的な表となるから
イ:XHTMLで定義できないから
ウ:画面表示完了までの時間が長くなる場合があるから
エ:読上げソフトで、想定する読上げ順と違いが生じる場合があるから
模範解答
ウ、エ
解説
解答の論理構成
- 問題文の確認
- 作成基準書では「(9) ①表のネストを行わないこと。」と指示しています。
- 併せて「(10) ②画像を用いる場合は、Webページの読上げソフトに対応すること。」とあり、ユニバーサルデザインへの配慮が方針です。
- ネストした表がもたらす技術的な影響
- ネストするとブラウザはセルごとに再計算・再描画を繰り返すため、構造が複雑になるほど「画面表示完了までの時間が長くなる場合がある」──選択肢「ウ」。
- 表は行・列の順序で読み上げられるため、入れ子にすると DOM 上の巡回順と視覚的な読み取り順が食い違い、「読上げソフトで、想定する読上げ順と違いが生じる場合がある」──選択肢「エ」。
- 不適切となる選択肢の検証
- 「ア:CSSで表を定義すると、固定的な表となるから」
→ (9) はそもそも“ネスト”を禁止しており、CSS で定義するか否かは関係ありません。 - 「イ:XHTMLで定義できないから」
→ XHTML でも の入れ子は文法上許可されています。 - 結論
- 上記より、正しい理由は「ウ、エ」です。
- 「表をレイアウト目的で使わないこと(8)」と「表のネストを行わないこと(9)」を混同し、レイアウト禁止=ネスト禁止と短絡してしまう。
- XHTML だからネストできないと誤解し、選択肢「イ」を選ぶ。HTML4/XHTML1.0 いずれもネストは可能です。
- CSS の利便性だけで判断し、「ア」を選びがち。ネスト禁止はパフォーマンスとアクセシビリティの観点が主眼です。
誤りやすいポイント
FAQ
Q: 1段だけのであればレイアウトに使っても良いですか?
A: 作成基準書の「(8) table要素は、表を作成するときだけに用い、レイアウトに用いないこと。」に反するため不可です。データ表現のみに限定します。Q: アクセシビリティを確保するなら代替手段は?
A: CSS の display:grid などを利用して視覚的な配置を行い、論理構造は見出し・段落・リスト要素で表現すると読上げ順の制御が容易です。Q: 表をネストすると必ず遅くなりますか?
A: 小規模なら差は感じにくいものの、大量の入れ子はレイアウト計算と再描画が増え、特にモバイル端末やスクリーンリーダーで体感遅延が発生しやすくなります。
関連キーワード: CSS, XHTML, テーブルレイアウト、アクセシビリティ、レンダリング速度 - 「ア:CSSで表を定義すると、固定的な表となるから」
設問3:本文中の下線①、②について、(1)、(2)に答えよ。
(2)下線②に対応するXHTMLの記述を解答群の中から選び、記号で答えよ。
解答群
ア:<img src="koshi.jpg" align="写真 情報先生" width="40" height="30" />
イ:<img src="koshi.jpg" alt="写真 情報先生" width="40" height="30" />
ウ:<img src="koshi.jpg" low src="写真 情報先生" width="40" height="30" />
エ:<img src="koshi.jpg" type="写真 情報先生" width="40" height="30" />
模範解答
イ
解説
解答の論理構成
-
まず、【問題文】には下線②として
②画像を用いる場合は、Webページの読上げソフトに対応すること
と明記されています。Webページ読上げソフト(スクリーンリーダー)に対応するには、画像ファイルに対して代替テキストを示す alt 属性の付与が必須です。 -
XHTML の img 要素で音声読み上げに必要な情報を与える手段は alt="…" だけです。align、low src、type などは代替テキストを指定する属性ではありません。
-
解答群を確認すると
イ:
だけが alt 属性を正しく持っています。 -
以上より、下線②の条件に合致する記述は【解答群】の「イ」と判断できます。
誤りやすいポイント
- align を代替テキスト用だと誤解する
align は配置指定であり、スクリーンリーダーの読み上げ内容には関係しません。 - low src(一部ブラウザでサポートされていた低解像度画像指定)や type 属性を使用してしまう
どちらも代替テキストではなく、現在の XHTML では一般的に使いません。 - alt を空にすると情報が伝わらない
装飾目的なら空でも許容されますが、本設問の画像はイベントの写真アイコンなので内容説明を省略すべきではありません。
FAQ
Q: title 属性では代替テキストになりませんか?
A: title はツールチップ表示用であり、スクリーンリーダーが必ず読上げるとは限りません。アクセシビリティ要件を満たすには alt が必須です。
A: title はツールチップ表示用であり、スクリーンリーダーが必ず読上げるとは限りません。アクセシビリティ要件を満たすには alt が必須です。
Q: aria-label を使った方が最新では?
A: WAI-ARIA も有効ですが、XHTML 基本仕様としてまず alt を付与するのが前提です。本試験レベルでは alt を抑えておけば十分です。
A: WAI-ARIA も有効ですが、XHTML 基本仕様としてまず alt を付与するのが前提です。本試験レベルでは alt を抑えておけば十分です。
Q: 画像が純粋な装飾の場合でも alt は必要ですか?
A: 内容を伝えない装飾画像は alt=""(空文字)にして「読み飛ばし」させるのが推奨です。本問は写真アイコンで意味を持つので説明を記述します。
A: 内容を伝えない装飾画像は alt=""(空文字)にして「読み飛ばし」させるのが推奨です。本問は写真アイコンで意味を持つので説明を記述します。
関連キーワード: alt属性、XHTML, アクセシビリティ、スクリーンリーダー
設問4:
図4中のfに入れる適切な数値を答えよ。
模範解答
f:192
解説
解答の論理構成
- 外枠の横幅を確認
CSS 定義に
div#wrapper{width:840px;}
とあるので、全体幅は 「840px」 です。 - main 領域の横幅を確認
同じく CSS に
div#main{float:right;width:636px;…}
とあり、main 領域の幅は 「636px」 です。 - sub と main の間隔を確認
図3に sub と main の間隔が 「12px」 と明示されています。 - sub 領域の計算
sub 領域は wrapper の残り幅で構成されるので
よって div#sub に設定すべき幅は 「192px」、数値部分は 192 となります。
誤りやすいポイント
- wrapper 幅と main2 幅(どちらも「840px」)を混同し、差し引き計算を忘れる。
- 図中の「12px」を margin と誤解し、左右両側に取ってしまい としてしまう。
- px を含めて回答して減点される。設問は「数値」を要求している。
FAQ
Q: sub と main を float で左右に並べたとき、幅合計が wrapper を超えたらどうなりますか?
A: いずれかの要素が次の行に回り込み、レイアウトが崩れます。今回のように計算で正確に合わせることが重要です。
A: いずれかの要素が次の行に回り込み、レイアウトが崩れます。今回のように計算で正確に合わせることが重要です。
Q: gap の「12px」は CSS に書かれていませんが、どこで指定するのでしょうか?
A: 一般的には margin 又は padding で指定します。本設問は図示のみで示されているため、幅計算時に差し引く値として扱います。
A: 一般的には margin 又は padding で指定します。本設問は図示のみで示されているため、幅計算時に差し引く値として扱います。
Q: main2 にも float:right が付いているのに sub が無いのは問題になりませんか?
A: main2 を使う画面形式Bでは sub が存在しないレイアウトです。float しても隣接要素が無いため、そのまま右寄せ表示になります。
A: main2 を使う画面形式Bでは sub が存在しないレイアウトです。float しても隣接要素が無いため、そのまま右寄せ表示になります。
関連キーワード: CSS, float, ボックスモデル、レイアウト計算、ピクセル
設問5:
作成基準書に(13)の項目を設ける理由を35字以内で述べよ。
模範解答
使用するブラウザによって、表示のされ方に相違があるから
解説
解答の論理構成
- 会社の方針として「統一感のある画面、ユニバーサルデザイン」を掲げています。これは【問題文】の「統一感のある画面、ユニバーサルデザインを会社の方針としている」という一文から明らかです。
- しかし、HTML/CSS はユーザ側の閲覧環境によって解釈や描画が異なります。基準書(13) では「複数の異なるWebページ表示環境を使って、実際の表示内容を確認すること。」と明示し、環境差異があることを前提にしています。
- もしブラウザごとの差異を確認しなければ、同じ CSS でもレイアウト崩れやフォントサイズの違いが生じ、1. の方針を守れません。
- よって、作成基準書に項目(13)を設ける理由は「使用するブラウザによって、表示のされ方に相違があるから」となります。
誤りやすいポイント
- 項目(13)を単なる動作確認手順と捉え、ブラウザ差異の問題に言及しない。
- ユーザビリティやアクセシビリティ全般を理由に挙げ、具体的な「表示のされ方」の違いを明示しない。
- 固定幅レイアウトだから環境差は無いと誤解し、確認作業を軽視する。
FAQ
Q: 画面解像度の違いも確認対象ですか?
A: はい。「複数の異なるWebページ表示環境」にはブラウザ種類だけでなく解像度や OS も含め、レイアウト崩れの要因を網羅的に点検します。
A: はい。「複数の異なるWebページ表示環境」にはブラウザ種類だけでなく解像度や OS も含め、レイアウト崩れの要因を網羅的に点検します。
Q: CSS の reset を入れればブラウザ差は解消できますか?
A: 初期値差は緩和できますが、フォントレンダリングや拡縮アルゴリズムなど根本的に異なる部分は残るため、最終的な目視確認が必須です。
A: 初期値差は緩和できますが、フォントレンダリングや拡縮アルゴリズムなど根本的に異なる部分は残るため、最終的な目視確認が必須です。
Q: 音声読み上げソフトの確認は項目(13)に含まれますか?
A: それは基準書(10)「画像を用いる場合は、Webページの読上げソフトに対応すること。」で別途扱われています。(13)は表示差異の検証が主目的です。
A: それは基準書(10)「画像を用いる場合は、Webページの読上げソフトに対応すること。」で別途扱われています。(13)は表示差異の検証が主目的です。
関連キーワード: ブラウザ互換性、表示検証、レンダリング差異、ユニバーサルデザイン


