许多ARIA演示网站使用以下代码:
<label for="name" id="label-name">Your Name</label>
<input id="name" aria-labelledby="label-name" type="text">
但是aria-labelledby
在这种情况下使用属性的目的是什么?该input
元素已经被label
使用for
属性的元素标记了,不是吗?
许多ARIA演示网站使用以下代码:
<label for="name" id="label-name">Your Name</label>
<input id="name" aria-labelledby="label-name" type="text">
但是aria-labelledby
在这种情况下使用属性的目的是什么?该input
元素已经被label
使用for
属性的元素标记了,不是吗?
Answers:
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属性通常在构建可访问的富Internet应用程序中最有用:只要您坚持使用标准语义HTML(使用带有标准标签的表单),就根本不需要它:因此没有理由在其上使用它标签/输入对。但是,如果您要从头开始构建“丰富的UI”(DIV和其他带有JavaScript并添加交互功能的低级元素),那么让屏幕阅读器知道更高层次的意图是至关重要的。
UA总是有任何新问题,因此这就是开发人员寻求渐进增强的原因。这种ARIA技术提供了消除“ for”属性的能力,并允许其他元素成为丰富形式的一部分。这些技术将成为惯例。