HTMLメディア
ウェブページはテキストだけではありません ― 画像、音声、動画がコンテンツをより豊かにします。<img>、<audio>、<video> は、マルチメディアリソースを埋め込むためのHTML5の3つのコアタグです。
画像タグ
<img> は空タグです ― src で画像パスを指定し、alt で代替テキストを提供します。
サポートされている画像フォーマット
| フォーマット | 特徴 | 用途 |
|---|---|---|
| JPG/JPEG | 非可逆圧縮、ファイルサイズ小、透明度非サポート | 写真、複雑な画像 |
| PNG | 非可逆圧縮、透明背景サポート | アイコン、スクリーンショット、透明度が必要な画像 |
| GIF | アニメーション対応、最大256色 | シンプルなアニメーション、アイコン |
| WebP | 次世代フォーマット、より高い圧縮率、透明度サポート | モダンブラウザ向け |
| SVG | ベクトル形式、無限拡大で劣化なし | アイコン、ロゴ、グラフ |
💡 推奨:WebP(サイズ小、品質良)を優先し、古いブラウザにはJPG/PNGをフォールバックとして使用。SVGはアイコンやロゴに最適で、拡大してもぼやけない。
サンプル
HTML
<img src="/assets/images/tutorials/html-landscape-photo.webp" alt="風景写真" width="400" height="300">
<img src="/assets/images/tutorials/html-company-logo.webp" alt="会社ロゴ" title="クリックでホームに戻る">
📌 alt属性:画像の読み込みに失敗したときに表示されます。スクリーンリーダーが読み上げて視覚障害のあるユーザーを支援します。検索エンジンが画像コンテンツを理解するのにも役立ちます。省略しないでください。
音声タグ
<audio> タグは音楽、ポッドキャスト、効果音を埋め込みます。controls 属性を追加すると再生コントロールが表示されます。
サポートされている音声フォーマット
| フォーマット | 特徴 | ブラウザサポート |
|---|---|---|
| MP3 | 非可逆圧縮、ファイルサイズ小、互換性最高 | すべてのブラウザ |
| OGG | オープンソース、圧縮率良 | Chrome、Firefox、Edge |
| WAV | 非圧縮、最高品質、ファイルサイズ大 | すべてのブラウザ |
| AAC | MP3より高い圧縮率 | モダンブラウザ |
💡 互換性戦略:MP3が最も互換性が高いですが、すべてのブラウザで再生できるように、
<source>でMP3とOGGの両方のフォーマットを提供することをお勧めします。
<source> タグ:マルチフォーマットフォールバック
異なるブラウザは異なるメディアフォーマットをサポートしています。<source> タグを使用すると、複数のフォーマットソースを提供でき、ブラウザがサポートする最初のフォーマットを自動的に選択します。
HTML
<audio controls>
<source src="music.mp3" type="audio/mpeg">
<source src="music.ogg" type="audio/ogg">
お使いのブラウザは音声再生をサポートしていません。
</audio>
構文の説明:
<source>は空タグで、<audio>または<video>内部に配置srcはメディアファイルのパスを指定typeはファイルのMIMEタイプを指定し、ブラウザがサポートを迅速に判断するのに役立つ- ブラウザは各
<source>を上から順にチェックし、最初にサポートするフォーマットを再生 - すべてのフォーマットがサポートされていない場合、タグ内のフォールバックテキストが表示される
一般的なMIMEタイプ:
| フォーマット | MIMEタイプ |
|---|---|
| MP3 | audio/mpeg |
| OGG音声 | audio/ogg |
| MP4 | video/mp4 |
| WebM | video/webm |
サンプル
HTML
<audio src="/assets/images/tutorials/music.mp3" controls>
お使いのブラウザは音声再生をサポートしていません。
</audio>
<!-- マルチフォーマット互換 -->
<audio controls>
<source src="/assets/images/tutorials/music.mp3" type="audio/mpeg">
<source src="music.ogg" type="audio/ogg">
お使いのブラウザは音声再生をサポートしていません。
</audio>
動画タグ
<video> タグは動画を埋め込み、controls や width/height サイズもサポートします。
サポートされている動画フォーマット
| フォーマット | 特徴 | ブラウザサポート |
|---|---|---|
| MP4 | 最も一般的なフォーマット、圧縮率良 | すべてのブラウザ |
| WebM | Googleのオープンソースフォーマット、ファイルサイズ小 | Chrome、Firefox、Edge |
| OGG | オープンソースフォーマット | Chrome、Firefox |
💡 互換性戦略:MP4が最も互換性が高いです。
<source>でMP4とWebMの両方のフォーマットを提供することをお勧めします。
サンプル
HTML
<video src="/assets/images/tutorials/video.mp4" controls width="400">
お使いのブラウザは動画再生をサポートしていません。
</video>
<!-- マルチフォーマット + ポスター画像 -->
<video controls width="400" poster="/assets/images/tutorials/cover.jpg">
<source src="/assets/images/tutorials/video.mp4" type="video/mp4">
<source src="video.webm" type="video/webm">
お使いのブラウザは動画再生をサポートしていません。
</video>
💡 メディアフォーマットのヒント:MP3とMP4は互換性が最も高く、ほぼすべてのブラウザがサポートしています。WebMはGoogleのオープンフォーマットで、ファイルサイズが小さくなります。複数のフォーマットで
<source> を使うと、ブラウザが自動的にサポートしているものを選択します。
❓ よくある質問
Q
alt属性は必須ですか?省略できますか?A
altは常に含めるべきです。3つの目的を果たします:1)画像の読み込みに失敗したときにフォールバックテキストを表示し、ユーザーエクスペリエンスを向上させる;2)スクリーンリーダーが視覚障害のあるユーザーに画像を説明するのに役立つ;3)検索エンジンが画像のコンテキストを理解し、SEOを向上させる。装飾的な画像には、スクリーンリーダーに無視させるための空のalt=""を使用します。Q どの画像フォーマットを使うべきですか?JPG、PNG、WebPの違いは何ですか?
A 用途に基づいて選択します:1)JPGは写真に適しており、非可逆圧縮でファイルサイズが小さく、透明度をサポートしません;2)PNGはアイコンやスクリーンショットに適しており、非可逆圧縮で透明な背景をサポートしますが、ファイルサイズが大きくなります;3)WebPは次世代フォーマットで、JPGとPNGの両方よりも優れた圧縮率を持ち、透明度をサポートし、すべてのモダンブラウザがサポートしています。WebPを優先し、古いブラウザにはJPG/PNGをフォールバックとして使用します。
Q 画像に
widthとheight属性を設定する必要があるのはなぜですか?A 2つの利点があります:1)ブラウザは読み込み前に画像の寸法を知ることができ、正しいスペースを予約し、レイアウトシフトを防ぐ;2)Core Web Vitalsスコア(CLS指標)の向上に役立ちます。注意:1つの属性のみを設定した場合、もう1つは比例して自動的に計算されます。レスポンシブ画像は通常、
widthのみを設定し、heightは自動的に適応させます。Q MP3とMP4は互換性が高いのに、他のフォーマットを提供する必要があるのはなぜですか?
A MP3/MP4が最も互換性が高いですが、他のフォーマットにはそれぞれ利点があります:WebMはより小さく、OGGはオープンソースで無料、WAVは最高品質です。マルチフォーマットのフォールバックにより:1)異なるブラウザが最高のエクスペリエンスを得られる;2)ネットワークが悪い場合により小さなファイルを選択できる;3)新しいフォーマットがサポートされた際のスムーズなアップグレードが可能になります。最低限、MP3/MP4をフォールバックとして提供し、最適化オプションとしてWebM/OGGを追加することをお勧めします。
📖 まとめ
<img>は画像を埋め込み。srcでパス、altで代替テキストを指定<audio>は音声を埋め込み。controlsで再生コントロールを表示<video>は動画を埋め込み。width/heightとposterカバー画像をサポート<source>を使って複数のメディアフォーマットを提供し、ブラウザ互換性を確保
📝 練習問題
- 画像の練習:
alt属性とtitle属性を持つ画像を挿入し、srcを無効なパスに変更して、ブラウザがどのように処理するか観察してください。 - メディアプレーヤーの埋め込み:
<audio>と<video>を使って音声ファイルと動画ファイルを埋め込んでください(公開されているオンラインリソースを使用できます)。



