オプション3を使用する必要があります:)
<ul role="list">
<li role="listitem">...<li>
</ul>
本当にやりたいことは、支援技術にコンテンツのマークアップを理解させることだけです。
実際、ほとんどの支援技術では、「ロール」属性は通常、スライダーなどのリッチ インターネット コンテンツや多くの HTML5 要素でのみ必要です。
スクリーン リーダーがコードで適切に動作するか心配な場合は、リストなどを正しくマークアップするだけで十分です。
良い例え
<p> This is a list </p>
<ul role="list">
<li role="listitem"> List Item 1 <li>
</ul>
悪い例
<p> This is a list </p>
<p> - List Item 1 </p>
2 つの違いは、スクリーン リーダーが「良い例」に来ると、「これはリストです。リストには 1 つの項目が含まれています。項目 1 の 1 - リスト項目 1」と読み上げられます。
「悪い例」では、スクリーン リーダーは「これはリスト ダッシュ リスト アイテム 1 です」と読み上げます。
ただし、「ロール」属性のため、支援技術は「良い例」では正しく機能しないことに注意してください。正しいマークアップを使用してリスト (<ul> <li>
タグ ) を作成したため、正しく機能しています。ただし、リストをアクセス可能にする必要はありませんが、role 属性を含めることをお勧めします。
誰かがもっと良いことを指摘してください:)