すでにラベル付けされた入力要素で「aria-labelledby」を使用する目的は?


84

多くの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の属性を、そうではありませんか?



8
@Sarfrazに感謝します。ただし、そのページは、すでにラベル付けされた入力要素でのそのような使用の目的を示していません。
Ian Y.

回答:


69

MozillaDeveloperページでの使用の良い例がいくつかあります。おそらく、彼らの最良の例は、ポップアップメニューを親メニュー項目に関連付けるために使用される場合です-それはページの例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がインタラクティブ機能を追加するその他の低レベル要素)、スクリーンリーダーに高レベルのインテントが何であるかを知らせるために不可欠です。


11
@BrendanMcKに感謝します。あなたが言ったことは本当です。ARIAで働いている人に聞いたところ、彼もこの場合はaria-labelledbyを使う必要はないと言っていました。<input>にラベルを付ける場合、複数の<label>で<input>にラベルを付ける必要がある場合にのみ使用すると彼は言いました。彼が提供した例は次のとおり
Ian Y.

1
for属性を介して複数の参照を作成することにより、複数のLABELを同じコントロールに関連付けることができます。OK、WAVE / WebAIMはそれを気に入らず、UAサポートに問題があることがわかりました。しかし、彼の提案は奇妙なものであり、それが本当の利点を持っているとは思いません。 少なくともIE <= 8は、aria-labelledbyで複数のIDをサポートしていません
sourcejedi 2012

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

5

新しいものには常にUAサポートの問題があるため、開発者はプログレッシブエンハンスメントに注目しています。このARIA手法は、「for」属性を廃止する機能を提供し、他の要素をリッチフォームの一部にすることができます。これらのテクニックは一般的な方法になります。


1
for属性のようにクリックすると、要素にフォーカスしますか?私は推測していません
ドミニク

3
完全に誤り。aria属性は、要素をよりアクセスしやすくすることを唯一の目的としているため、他の属性を置き換えることは想定されていません。aria属性があるため、要素はフォーカス可能であってはなりません。
ガストファンデウォル

1
私の意見では、一般的な慣行(悲しいことに?)は現在でも真実ではありません。ベストプラクティスは、より良い選択かもしれません。将来的には、高度なAIが人間ではなくhtmlを書き込むことが一般的になっているとき:)
Michael
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.