AI先生のロボットキャラクター
第2章 - セクション5

画像の表示

imgタグで画像を表示し、適切な属性でアクセシブルな実装

女子生徒のアイコン

Webページに画像を表示するのって、どうやるんですか?

AI先生のアイコン

画像を表示するには<img>タグを使うんだ。でも、ただ表示するだけじゃなくて、アクセシビリティも考えて適切に実装することが大切なんだよ。

男子生徒のアイコン

アクセシビリティって何ですか?画像と関係があるんですか?

AI先生のアイコン

アクセシビリティとは、すべての人がWebページを利用できるようにすることだよ。例えば視覚に障害のある人は画像が見えないから、代替テキストで画像の内容を説明する必要があるんだ。今日はそんな大切なポイントも含めて学んでいこう。

imgタグの基本構造

HTMLで画像を表示するには<img>タグを使用します。imgタグは閉じタグが不要な「空要素」で、属性によって画像の詳細を指定します。XHTMLスタイルでは<img />のようにスラッシュで終わります。

imgタグの基本構造
<img src="/img/photo.jpg" alt="画像の説明" width="300" height="200" />
src属性(必須)
画像ファイルの場所を指定
(相対パス・絶対パス)
alt属性(重要)
画像の代替テキスト
(アクセシビリティ対応)
width/height属性(推奨)
アスペクト比をブラウザに通知
(CLS防止・レスポンシブ対応)
空要素
閉じタグ(</img>)は不要
スラッシュで終了

基本的な画像の表示

最もシンプルな画像の表示方法を見てみましょう。

HTMLコード:
プレビュー:

src属性の値を削除したり、存在しないパスを指定すると、ブラウザは画像を表示できず、代わりにalt属性のテキストが表示されます。エディターでsrcaltを変更して、表示の違いを確認してみてください。

src属性 - 画像ファイルの指定

src属性は画像ファイルの場所を指定する最重要の属性です。ファイルの場所を指定する方法(パス)には、相対パス・ルートパス・絶対パスの3種類があります。

画像パスの指定方法
相対パス
現在のファイルから見た相対的な位置
<img src="images/photo.jpg" alt="写真" />
または
<img src="../images/photo.jpg" alt="写真" />
ルートパス
サイトのルートからの完全な位置
<img src="/images/photo.jpg" alt="写真" />
絶対パス
完全なURLで指定(外部サイト含む)
<img src="https://example.com/photo.jpg" alt="写真" />

パスの種類と使い分け

画像ファイルの指定方法には3つのパターンがあり、それぞれ適切な使用場面があります。

  • 相対パス images/photo.jpg - 現在のHTMLファイルから見た位置を指定
  • ルートパス /images/photo.jpg - サイトのルートディレクトリーから見た位置を指定
  • 絶対パス https://example.com/photo.jpg - 完全なURLで指定
詳しいパス指定について

パスの種類と使い分けについては、「パスとURLの理解」のレッスンで詳しく解説しています。各パスの詳細な特徴や実践的な使用例を学ぶことができます。

alt属性 - 代替テキストの重要性

alt属性は画像の内容を文字で説明する代替テキストです。アクセシビリティの観点から非常に重要な属性です。

alt属性の役割
スクリーンリーダー
視覚に障害のある人が音声で画像内容を理解できます
読み込み失敗時
画像が表示されない時に代替テキストが表示されます
SEO効果
検索エンジンが画像の内容を理解するのに重要です

良いalt属性の書き方

  • 具体的で簡潔 画像の内容を的確に説明する
  • 文脈を考慮 ページの内容と関連性を持たせる
  • 装飾画像 内容的に意味がない場合は必ず alt="" を指定
  • 冗長な表現を避ける 「画像」「写真」などの言葉は不要
<!-- 良い例 -->
<img src="sunset.jpg" alt="海に沈む夕日" />
<img src="graph.png" alt="2023年売上推移グラフ" />

<!-- 避けるべき例 -->
<img src="sunset.jpg" alt="夕日の画像" />
<img src="graph.png" alt="画像" />

<!-- 装飾的な画像(必ずalt=""を記述) -->
<img src="decoration.png" alt="" />
なぜ装飾画像にalt=""が必要?

装飾画像にalt=""を設定する理由は、スクリーンリーダーに「この画像は装飾目的なのでスキップして」と明確に伝えるためです。

  • alt属性なし スクリーンリーダーがファイル名を読み上げてしまう
  • alt="" スクリーンリーダーが画像を無視する(正しい動作)
  • 意図の明確化 開発者が装飾目的であることを明示できる

width・height属性 - アスペクト比の指定

width属性とheight属性は、画像のアスペクト比(縦横比)をブラウザに事前に伝える重要な役割を持ちます。現代のWeb開発では、HTML属性とCSSの協調により、レイアウトシフトのない快適なページを作成することが推奨されています。

現代の画像実装:HTML属性 + CSS の協調
HTML属性(width/height)
役割:アスペクト比の事前通知
  • ブラウザに縦横比を伝える
  • 画像読み込み前にスペース確保
  • レイアウトシフト(CLS)を防止
CSS
役割:表示サイズの柔軟制御
  • レスポンシブ対応
  • 実際の表示サイズ調整
  • デザインに応じた配置
協調による効果
レイアウトが安定し、ユーザーエクスペリエンスとSEOの両方が向上
なぜHTML属性が重要なのか?

widthheight属性で画像のアスペクト比(縦横比)をブラウザに伝えることで、ブラウザは画像読み込み前に適切なスペースを確保できます。


これにより、画像が読み込まれた時にレイアウトがガタつく「レイアウトシフト(CLS)」を防止でき、ユーザーエクスペリエンスが大幅に向上します。

男子生徒のアイコン

アスペクト比って何ですか?難しそうな言葉ですね。

AI先生のアイコン

アスペクト比というのは「縦と横の比率」のことだよ。例えば、横300ピクセル、縦200ピクセルの画像なら、「300:200」つまり「3:2」の比率になるんだ。

女子生徒のアイコン

比率が大切な理由は何ですか?

AI先生のアイコン

比率が違うと画像が歪んでしまうんだ。人の顔が細長くなったり、横に潰れたりしてしまうよ。HTMLで正しいサイズを最初に教えておくと、レイアウトが安定するんだ。

実装例:HTML属性とCSSファイルの協調

以下、HTML属性とCSSを組み合わせた実装例を見てみましょう。これにより、画像のアスペクト比を維持しつつ、レスポンシブ対応も可能になります。

CSSについて

ここで出てくるCSSコードは、画像をレスポンシブに表示するための重要な設定です。CSSの詳細については「CSSの基礎」のカテゴリで学習できますが、今は「このようなコードを書くと画像がレスポンシブになる」という理解で十分です。

CSS
/* CSSファイルに記述 */
img {
  max-width: 100%;
  height: auto;
}
HTML
<!-- 現代の推奨実装 -->
<img src="photo.jpg" alt="写真の説明" width="300" height="200" />
実装時の重要ポイント
  • 元画像の実寸に合わせる width・heightは画像の実際のピクセル数と一致させる
  • 片方のみでも効果あり widthまたはheightのどちらか一方でもCLS防止に有効
  • CSSとの組み合わせ max-width: 100%; height: auto; でレスポンシブ対応
  • レイアウトシフトの体感 悪い例と比較することで効果を実感できる

正しい実装と間違った実装の比較

実際にHTML属性とCSSがどのように協調して動作するかを、具体例で確認してみましょう。正しい実装と間違った実装を比較することで、width・height属性の重要性を体感できます。

良い例:現代の推奨実装

HTML属性で正確なアスペクト比を指定し、CSSで max-width: 100%; height: auto; を設定する方法です。

HTMLコード:
プレビュー:

CSSの「max-width: 100%; height: auto;」を削除すると、画像が400pxの固定サイズになり、レスポンシブ対応(画面サイズに応じた自動調整)ができなくなります。試しにCSSを削除して確認してみてください。

この方法の効果:

  • レスポンシブ対応 画面サイズに応じて自動調整
  • アスペクト比維持 正確なwidth・heightで歪みを防止
  • レイアウトシフト防止 画像読み込み前にスペースを確保
悪い例:不正確なHTML属性

HTML属性で間違ったサイズを指定すると、画像が歪んでしまいます。

HTMLコード:
プレビュー:

この方法の問題点:

  • レスポンシブ対応ができない 画面サイズに応じた自動調整が不可能
  • 画像が不自然に歪む アスペクト比が崩れる
  • プロ品質の欠如 画像がぼやけたり、潰れたりする
男子生徒のアイコン

良い例と悪い例を比較すると、画像が歪む問題がよく分かりますね!

AI先生のアイコン

そうなんだ!実際に比較してみると、HTML属性でアスペクト比を正確に指定することの重要性がよく分かるでしょう?これで画像が自然に表示されるようになるよ。

女子生徒のアイコン

なるほど~。あと画像ファイルの形式って、JPEGとかPNGとかありますよね?どれを使えばいいんですか?

AI先生のアイコン

画像形式によって特徴が違うから、用途に応じて選ぶことが大切なんだ。次はその使い分けを見てみよう。

画像形式の使い分け

Web上で使用される主要な画像形式とその特徴を理解しておきましょう。

JPEG(.jpg)形式 - 写真・風景画像に最適
  • 適用場面 写真、風景画像、グラデーションの多い画像
  • メリット ファイルサイズを効率的に圧縮できる
  • 注意点 透明背景は不可、圧縮により画質が劣化する可能性
<img src="photo.jpg" alt="風景写真" />
PNG(.png)形式 - ロゴ・アイコンに最適
  • 適用場面 ロゴ、アイコン、透明背景が必要な画像、鮮明な線画・イラスト
  • メリット 透明背景をサポート、画質劣化がない
  • 注意点 ファイルサイズが大きくなりがち
<img src="logo.png" alt="会社ロゴ" />
WebP(.webp)形式 - 高品質で軽量
  • 適用場面 高品質で軽量な画像、モダンブラウザー対応サイト、パフォーマンス重視
  • メリット JPEGより小さく、PNGの透明度もサポート
  • 注意点 古いブラウザーでは対応していない
<img src="modern.webp" alt="最新画像" />
SVG(.svg)形式 - ベクター画像
  • 適用場面 アイコン、ロゴ、どんなサイズでも鮮明、アニメーション可能
  • メリット 拡大縮小しても画質が劣化しない、軽量
  • 注意点 複雑な画像は不向き
<img src="icon.svg" alt="メニューアイコン" />

よくある間違いと対策

初心者がよく陥る画像表示の問題と、その解決方法を確認しておきましょう。

  • パスの間違い フォルダー名やファイル名のスペルミスに注意
  • 大文字小文字の違い Photo.jpgphoto.jpgは別ファイルとして扱われる
  • alt属性の省略 アクセシビリティの観点から必ず設定する
  • 過度に大きな画像 読み込み速度に影響するため、適切なサイズを選ぶ
<!-- よくある間違い -->
<img src="Photo/sunset.JPG">  <!-- パスやalt属性の問題 -->

<!-- 正しい書き方 -->
<img src="photos/sunset.jpg" alt="海に沈む美しい夕日" />

理解度チェッククイズ

AI先生のアイコン

さあ、ここまでの内容を振り返るクイズを用意したよ。自分の理解度を確認してみよう!

画像表示ミニクイズ

imgタグの基本的な特徴として正しいものはどれですか?
必ず閉じタグ(</img>)が必要である
空要素なので閉じタグは不要である
HTMLファイル内に画像データを直接記述する
CSSでのみスタイルを指定できる
alt属性の役割として最も適切なものはどれですか?
画像のファイル名を指定する
画像の内容を文字で説明する代替テキスト
画像のサイズを指定する
画像の表示位置を指定する
装飾的で内容的に意味のない画像のalt属性はどのように設定すべきですか?
alt="画像"
alt="装飾"
alt=""(空文字)
alt属性は省略する
width・height属性の現代的な役割として正しいものはどれですか?
画像の表示サイズを固定で指定する
画像のアスペクト比をブラウザに事前に伝える
画像ファイルの圧縮率を調整する
画像の色彩を調整する
写真やグラデーションの多い画像に最も適した形式はどれですか?
PNG
JPEG
SVG
WebP
透明背景のロゴ画像に最も適した形式はどれですか?
JPEG
PNG
BMP
TIFF
次のうち、imgタグの正しい書き方はどれですか?
<img src="photo.jpg">
<img src="photo.jpg" alt="写真"></img>
<img src="photo.jpg" alt="風景写真" width="300" height="200" />
<image src="photo.jpg" alt="風景写真" />

まとめ

女子生徒のアイコン

画像の表示って、ただsrc属性を書くだけじゃなくて、いろいろ考えることがあるんですね。

AI先生のアイコン

そうなんだ。特にalt属性は忘れがちだけど、Webサイトを誰でも使えるようにするために本当に大切なんだよ。

男子生徒のアイコン

画像形式も用途によって使い分けるのが重要なんですね。写真はJPEG、ロゴはPNGって覚えておきます!

女子生徒のアイコン

width・height属性でアスペクト比を指定すると、レイアウトシフトを防げるんですね。現代のWeb開発って奥が深いです!

AI先生のアイコン

そうなんだよ!今日学んだことをまとめると、画像を適切に実装するには技術的な知識だけでなく、アクセシビリティやユーザーエクスペリエンスも考慮することが大切なんだ。これで、見た目も美しく、誰でも使いやすいWebサイトが作れるようになるよ。

画像表示のポイント
  • imgタグの基本 空要素で閉じタグは不要、属性で画像の詳細を指定
  • src属性 相対パス・ルートパス・絶対パスを適切に使い分け
  • alt属性 アクセシビリティ対応のため必須、装飾画像では空文字を設定
  • width・height属性 アスペクト比をブラウザに伝えてCLS(レイアウトシフト)を防止
  • 画像形式の選択 JPEG(写真)、PNG(ロゴ・透明背景)、WebP(高性能)、SVG(ベクター)
  • アクセシビリティ スクリーンリーダー対応、SEO効果も考慮した包括的な実装

次回は、学んだリンクと画像の知識を統合して、複数ページで構成された実践的なWebサイトを作成していきます。

学習チェック

このレッスンを理解できたら「完了」をクリックしてください。
後で見直したい場合は「未完了に戻す」で進捗をリセットできます。

レッスン完了!🎉

お疲れさまでした!