本文へ移動
easeweb
ご相談
トピックを検索

タイトルがない、または中身の分からないiframe

スタジオの来店案内ページに、タイトルのない地図と、埋め込みコードに付いてきた「Video player」だけがタイトルの動画が埋め込まれており、スクリーンリーダーはどちらの中身も伝えずにフレームを2つ読み上げます。

WCAG 2.2
SC 4.1.2A
必須とする規格
Section 508 · EN 301 549(EU) · JIS X 8341-3
問題あり <iframe src="https://maps.example.com/embed?pb=…">
アクセシビリティの問題を示した図: 地図と動画があるのに、名前からは中身が分からない。
01

問題

スクリーンリーダー利用者が、埋め込まれた地図や動画やウィジェットの中身を、中に入らないと知ることができません。

02

試してみる

各フレームについてスクリーンリーダーが読む内容だけを頼りに、地図を探してください。

ページの下には、フレームからフレームへ移動したときにスクリーンリーダーが読む内容が出ます。行を選ぶと、そのフレームへ移動します。選ぶ前に、どれが地図か分かりますか?

問題あり 修正できますか?

ご来店案内

アクセス

4 Mill Lane。火曜から日曜、10:00〜18:00。

スタジオ紹介

ろくろと窯をめぐる2分間。

フレームを順に移動すると、スクリーンリーダーの読み上げ:

再現デモです。「問題あり」は意図的にアクセシブルでない状態にしています。

03

修正方法

各フレームに、中身を表す短いタイトルを付けます。

  1. 1スクリプトが挿入するものも含め、表示されるすべてのフレームにタイトルを付ける。
  2. 2フレーム、プレーヤー、埋め込みであることではなく、中身を書く。
  3. 3フレームごとに固有の名前を、ページの言語で付ける。
修正前 タイトルのない地図と、動画サービスがタイトルを付けた動画
<h2>アクセス</h2><p>4 Mill Lane。火曜から日曜、10:00〜18:00。</p><iframe src="https://maps.example.com/embed?pb=!1m18!1m12…"  width="600" height="320" style="border:0" loading="lazy"></iframe> <h2>スタジオ紹介</h2><iframe src="https://video.example.com/embed/x7Kq2"  width="560" height="315" title="Video player"  allowfullscreen></iframe>
修正後 各フレームの中身を表すタイトルを付ける
<h2>アクセス</h2><p>4 Mill Lane。火曜から日曜、10:00〜18:00。</p><iframe src="https://maps.example.com/embed?pb=!1m18!1m12…"  title="Kiln Room(4 Mill Lane)の地図"  width="600" height="320" style="border:0" loading="lazy"></iframe> <h2>スタジオ紹介</h2><iframe src="https://video.example.com/embed/x7Kq2"  title="スタジオ紹介の動画"  width="560" height="315" allowfullscreen></iframe>

この方法を選ぶ理由:まずHTMLの要素を使う

外部のウィジェット、プラグイン、SDKが挿入するフレーム
const booking = document.getElementById('booking');const nameFrames = () => {  for (const frame of booking.querySelectorAll('iframe')) {    if (frame.title !== '予約カレンダー') frame.title = '予約カレンダー';  }};nameFrames();new MutationObserver(nameFrames).observe(booking, { childList: true, subtree: true });

AI コーディングアシスタントで修正しますか? このガイドを Markdown で取得

04

修正の確認

マウスを使わない3つの確認

確認方法: スクリーンリーダー

3件中0件を確認済み

OS、ブラウザーと支援技術のバージョン、ビルド、実施日、各手順の実際の結果を記録してください。埋め込みを追加したときや外部のスクリプトが変わった際は、再度確認します。

制限

このサンプルは、どのアプリケーションでも同じ結果になることを保証するものではありません。コードの中のURL、ID、名前は仮のものです。フレームの伝え方はスクリーンリーダーによって違い、フレームに着いたときに名前を読むもの、代わりに中の文書のタイトルを読むもの、中に入るまでどちらも読まないものがあります。言い回しではなく名前を聞いてください。このガイドはフレームの名前を扱い、地図のキーボード操作や動画の字幕など、フレームの中身がアクセシブルかどうかは扱いません。実際に使用する支援技術で、操作全体を確認してください。

よくある問題を再現した学習用のサンプルです。実在のクライアントの診断結果ではありません。コードは出発点となる実装例のため、実際の製品でも確認してください。ここでは支援技術でのテスト結果は報告していません。

コードを更新しても、使いやすさを保つために

ガイドの内容を、コーディングエージェントやCIで使える開発ルールにまとめます。更新後は、キーボードとスクリーンリーダーで再テストし、問題が再発していないか確認します。

再テストの進め方