使用“咏叹调 - labelledby”上已标注的输入元素的目的是什么?(The purpose

2019-07-30 01:58发布

许多ARIA演示网站使用如下代码:

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


但是,什么是使用的目的aria-labelledby在这种情况下属性? 该input元素已标注在label这是使用元素for属性,不是吗?

Answer 1:

有它在使用的一些很好的例子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对。 但是,如果你从头开始构建(资料核实,并用JavaScript添加交互等低层次的元素)“富UI”,那么它是让屏幕阅读知道更高级别的意图是什么必须的。



Answer 2:

总是有UA支持问题与任何新的东西所以这就是为什么开发商着眼于逐步增强。 这ARIA技术提供废除了“”属性的能力,并允许其他元素成为富人形式的一部分。 这些技术也将成为惯例。



文章来源: The purpose of using “aria-labelledby” on already labeled input elements?