要約
インラインフレームに一意のタイトルを付け、ユーザーがコンテンツを読むか操作するかを決定できるようにします。そして、サイズ変更やズーム後もフレーム内のコンテンツを使用できるようにします。
テクニック
-
aria-label
、aria-labelledby
、title
により、フレームに意味のあるラベルを付けます。
[[WCAG-2.4.1]] および [[WCAG-4.1.2]] - 特定のユーザー向けではないフレームを、ラベルで識別します。
-
iframe
のサイズを設定する際には相対単位を使用します。 - scrolling属性を
auto
に設定します。(訳注:HTML5ではiframeのscrolling属性は廃止されています。)
例
iframe
title
属性により、このiframe
内には質問が含まれていることを示します。フレームをサポートしていないリーディングシステム用に、その内容にアクセスするためのフォールバック コンテンツを付けます。
<iframe href="quiz01.xhtml" title="Quiz 1" class="quiz"> Your user agent does not support inline frames. Please follow <a href="quiz01.xhtml">this link</a> to open Quiz 1. </iframe>
iframe
iframe
にはそのページに必要なコードが含まれており、視覚的に非表示になっていて、ラベルによってもコンテンツを含んでいないことを示しています。
<iframe
href="script.xhtml"
title="empty"
tabindex="-1"
height="0"
width="0"
class="hidden">
</iframe>
解説
一般的にインラインフレームは支援技術とうまく調和しますが、使用時には以下のアクセシビリティにおける考慮事項に従ってください。
- 各インラインフレームには、埋め込まれたコンテンツの目的を明確に示す説明をタイトル(
iframe
要素のtitle
属性)として付けてください。 -
iframe
の高さと幅を設定する際は、サイズ変更を容易にするために、パーセンテージやemなどの相対単位を使用してください。 - scrollingは
auto
に設定する必要があります。そうすることで、ユーザーがフレーム内のコンテンツのサイズを変更し、枠内に収まらなくなった場合でも、コンテンツにアクセスできるようになります。(訳注:HTML5ではiframeのscrolling属性は廃止されています。) -
iframe
要素は、インラインフレームをサポートしていないユーザーエージェントに対して、埋め込まれたフォールバック コンテンツ(コンテンツ ファイルへの直接リンクなど)を提供する必要があります。 - フレームにユーザー向けのコンテンツが含まれていない場合は、
title
属性でその旨を示し、CSSdisplay
プロパティをnone
に設定し、高さと幅を0に設定します。ユーザーが要素にタブ移動できないように、tabindex
属性を-1
に設定します。
関連リンク
- MDN — <iframe>: インラインフレーム要素
- HTML —
iframe
要素