要約
詩や歌詞の行を構造化して表現すると、通常の散文とのレイアウトの違いが見えないユーザーにとってのアクセシビリティが向上します。
テクニック
- 改行には
br
タグを使用します。[[WCAG-1.3.1]] - 行の書式設定が追加で必要な場合は、
span
タグを使用します。 - 視覚的なレイアウトで意味を伝える詩には、説明を追加します。
例
よくある質問
- 詩に画像を使用できますか?
-
一部の詩のレイアウトは、HTMLやCSSで表現するには複雑すぎる場合があります。このような場合、原本を表現するために、画像を使用するほかないことがあります。
画像を使用する必要がある場合は、レイアウトを認識できないユーザーのために詩のテキストを提供する必要があります(
details
要素など)。また、読者が詩の意図を理解できるように、画像内でテキストがどのように配置されているかを説明する必要があります。画像の使用は、レイアウトが困難な場合における最後の手段としてください。
- レイアウトに
pre
タグを使用できますか? -
はい、しかし、
pre
タグは、個々の文字や単語の配置に依存する詩に使用してください。単純なインデントの場合は、CSSスタイルでspan
タグまたはdiv
タグを使用する使用する方が良い場合が多いです。 - ARIAで詩を識別できますか?
-
いいえ。詩の行ベースの書式は標準的な散文とは視覚的に異なり、散文の連続的な流れとは読み方が異なりますが、HTMLには詩をマークアップするためのネイティブなセマンティック要素はありません。ARIAにも、詩とその内部構造を識別するロールがありません。
詩集の場合、ユーザーは自分が読んでいる作品の種類を知っているので、これは通常問題にはなりませんが、特にフィクション作品の場合、著者はスタイルの変更があったことを示さずに、テキストの段落の間に詩や歌詞をランダムに散りばめることがあります。
現時点では、支援技術のユーザーは、利用可能なマークアップに対するアプリケーションの動作(たとえば、
br
タグで行の読み取りを停止するなど)によって、文章スタイルの変化を直感的に理解するしかありません。 -
br
タグの周囲に空白は必要ですか? -
はい、多くのリーディングシステムでは、
br
タグの箇所での、行ごとの読み取りはサポートしていません。次の例のように、各行のテキストがbr
タグで区切られた場合、…lipping<br/>flowers<br/>…
これらのリーディングシステムは、テキスト読み上げ(TTS)再生が有効になっているときには単語をつなげて発音します。
この問題を回避するには、
br
タグの前後に少なくとも 一つの空白文字を付けてください。上記の例のように、各br
タグの後に改行を追加すると、この問題を回避できます。あるいは、br
タグの前に空白文字を追加しても、この問題を回避できます。
解説
HTMLには詩を表現するためのセマンティックな意味のあるマークアップは含まれていませんが、ネイティブ要素を使用して詩の行をマークアップすることは可能です。
たとえば、p
要素は一般的にテキストの段落に関連付けられますが、HTMLではタグの意味が詩にも拡張されます。
段落は通常、一連のフレーズの内容です…が、より一般的なテーマのグループ化にも使用できます。たとえば、住所も段落ですし…詩のスタンザも同様です。
各スタンザ内の行は、br
タグを使用して識別されます。支援技術は、各br
タグで読み取りを一時停止し、ユーザーが詩を行ごとに移動できるようにします(例1を参照)。
注記
MacOSのChromiumベースのリーディングシステムには、blockquote
内でbr
タグが使用されている場合にVoiceOverが行を繰り返すという既知のバグがあります。これは詩や歌詞(例:題詞)が引用された場合に発生します。現在の状況の詳細については、バグレポートを参照してください。
このマークアップ パターンは基本的な詩には有効ですが、制限が多すぎる状況も数多くあります。詩では、意味を伝えるために視覚的なレイアウトが使用されることがよくあります。このような場合、テキストのインデントと配置を維持するためにCSSスタイルも必要になります(例2と3を参照)。
視覚的な表現が使われた詩では、コンテンツを見ることができない人やレイアウト全体を見るのが難しい人のために、レイアウトの説明を提供することも重要です。これは、画像を使用しなければならないときだけでなく、レイアウトが意味を伝えるときはいつでも重要です。