多くのARIAデモWebサイトでは、次のようなコードを使用しています。
<label for="name" id="label-name">Your Name</label>
<input id="name" aria-labelledby="label-name" type="text">
しかし、この場合、aria-labelledby
属性を使用する目的は何ですか? input
要素は、label
属性を使用しているfor
要素によって既にラベル付けされていますよね?
Mozilla開発者ページ に使用例がいくつかあります。おそらくそれらの例の中で最も良いのは、ポップアップメニューを親メニュー項目に関連付けるために使用される場合です。これは、ページの例7です。
<div role="menubar">
<div role="menuitem" aria-haspopup="true" id="fileMenu">File</div>
<div role="menu" aria-labelledby="fileMenu">
<div role="menuitem">Open</div>
<div role="menuitem">Save</div>
<div role="menuitem">Save as ...</div>
...
</div>
...
ARIA属性は、アクセシブルリッチインターネットアプリケーションの構築に最も役立つ傾向があります:標準のセマンティックHTMLに固執している限り-標準ラベル付きのフォームを使用-まったく必要ないはずです。したがって、LABEL/INPUTペアで使用する理由はありません。しかし、「リッチUI」をゼロから構築する場合(DIVおよびjavascriptが対話性を追加する他の低レベル要素)、スクリーンリーダーに高レベルの意図を知らせるために不可欠です。
新しいものには常にUAサポートの問題があるため、開発者はプログレッシブ拡張を検討しています。このARIA手法は、「for」属性を廃止する機能を提供し、他の要素がリッチフォームの一部になることを可能にします。これらの手法は一般的な慣例になります。