이미 레이블이 지정된 입력 요소에 "aria-labelledby"를 사용하는 목적은 무엇입니까?


84

많은 ARIA 데모 웹 사이트는 다음과 같은 코드를 사용합니다.

<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. 그러나 해당 페이지는 이미 레이블이 지정된 입력 요소에 대한 이러한 사용의 목적을 설명하지 않습니다.
이안 Y.

답변:


69

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 및 기타 저수준 요소), 스크린 리더에게 상위 수준 의도가 무엇인지 알려주는 것이 필수적입니다.


11
감사합니다 @BrendanMcK. 당신이 말한 것은 사실입니다. ARIA에서 일하는 사람에게 물어 봤는데 그도이 경우 aria-labelledby를 사용할 필요가 없다고 말했습니다. <input>에 레이블을 지정하는 경우 여러 <label>로 <input>에 레이블을 지정해야 할 때만 사용한다고 말했습니다. 그가 제공 한 예는 다음과 같습니다. html5accessibility.com/tests/mulitple-labels.html
Ian Y.

1
for 속성을 통해 여러 참조를 생성하여 하나 이상의 LABEL을 동일한 컨트롤에 연결할 수 있습니다 . 좋습니다. WAVE / WebAIM은이를 좋아하지 않으며 UA 지원에 문제가있는 것으로 나타났습니다 . 그러나 그의 제안은 그저 이상 하고 실제적인 이점이 없다고 생각합니다. 적어도 IE <= 8은 aria-labelledby에서 여러 ID를 지원하지 않습니다 .
sourcejedi

1
이 링크는 여기에 있어야합니다 : developer.mozilla.org/en-US/docs/Accessibility/ARIA
Facundo Colombier 2013

5

새로운 것은 항상 UA 지원 문제가 있으므로 개발자는 점진적 향상을 고려합니다. 이 ARIA 기술은 "for"속성을 제거 할 수있는 기능을 제공하고 다른 요소가 풍부한 양식의 일부가 될 수 있도록합니다. 이러한 기술은 일반적인 관행이 될 것입니다.


1
for 속성처럼 클릭하면 요소에 초점이 맞춰 집니까? 나는 아닌 것 같아요
Dominic

3
완전히 거짓입니다. aria 속성은 유일한 목적이 요소의 접근성을 높이는 것이므로 다른 속성을 대체해서는 안됩니다. aria 속성 때문에 요소에 초점을 맞출 수 없습니다.
Gust van de Wal

1
제 생각에는 현재 일반적인 관행 (슬프게?)이 여전히 사실이 아닙니다. 모범 사례가 더 나은 선택 일 수 있습니다. 아마도 미래에는 고도의 인공 지능이 인간 대신 html을 작성하는 것이 일반적인 관행 일 때 :)
Michael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.