2012-06-22 1 views
61

多くARIAデモのウェブサイトは、次のようなコードを使用します。既にラベル付けされた入力要素に "aria-labelledby"を使用する目的は?

<label for="name" id="label-name">Your Name</label> 
<input id="name" aria-labelledby="label-name" type="text"> 


しかし、この場合にaria-labelledby属性を使用する目的は何ですか? input要素はfor属性を使用しているlabel要素で既にラベル付けされていますか?

+0

http://www.w3.org/TR/2010/WD-wai-aria-20100916/states_and_properties#aria-labelledby – Sarfraz

+6

ありがとう@Sarfraz。しかし、このページでは、既にラベル付けされた入力要素でのそのような使用の目的を示していません。 –

答えて

52

Mozilla Developer pagesにその良い使用例があります。親メニュー項目にポップアップメニューを関連付けるために使われている場所を、おそらく彼らの例の最高がある - それは、ページ内に実施例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を追加する場合)、スクリーンリーダーにより高いレベルのインテントが何であるかを知らせることが不可欠です。

+4

ありがとう@BrendanMcK。あなたが言ったことは本当です。私はARIAのために働く誰かに尋ねてきました。そして、彼はあまりにも、この場合にaria-labelledbyを使う必要はないと言いました。 のラベル付けについては、に複数の

+0

[for属性で複数の参照を作成することによって、複数のLABELが同じコントロールに関連付けられる可能性があります] /www.w3.org/TR/1999/REC-html401-19991224/interact/forms.html#h-17.9.1)。 OK、WAVE/WebAIMはそれを気に入らず、[UAサポートに問題があります](http://webaim.org/discussion/mail_thread?thread=4307)と判明しました。しかし、彼の提案はちょうど_strange_であり、私はそれが本当の利点を持っているとは思わない。 [少なくともIE <= 8はaria-labelledbyの複数のIDをサポートしていません](http://www.paciellogroup.com/blog/aria-tests/aria-labelledby-input.html)。 – sourcejedi

+0

このリンクはここにある必要があります:https://developer.mozilla.org/en-US/docs/Accessibility/ARIA –

5

開発者がプロ​​グレッシブエンハンスメントに目を向ける理由は、常に新しいUAサポートの問題です。このARIA技法は、「for」属性を取り除く能力を提供し、他の要素を豊富な形態の一部とすることを可能にする。これらの技術は一般的な方法になります。

+0

for属性のようにクリックすると要素にフォーカスが掛かりますか?私はないと推測している –

+0

デバイスは多くはありませんが...まだ。 – user2323922

関連する問題