Rin*_*eri 22 html xhtml wai-aria
jQuery Grid插件插入以下HTML:
<td role="gridcell" style="" aria-describedby="list_createdBy">Sam</td>
Run Code Online (Sandbox Code Playgroud)
'aria-describedby'属性是什么意思?
乍一看,我想说aria-describedby这里可能会被忽略,因为它是在<td>. aria-describedby当设置在不可交互(可聚焦)的元素上时,大多数浏览器和屏幕阅读器将忽略信息。
但具体示例有点复杂,因为role="gridcell"它覆盖了 的语义<td>,因此如果提供的示例遵循gridcell 的 ARIA 规范,则它是有效的。这是一个自定义组件。
一般来说,该属性为aria-describedby屏幕阅读器提供了随元素内容一起公布的附加信息(不是唯一的,而是最常见的用例)。
例如,不仅仅是"Logout"屏幕阅读器会宣布"Logout, John Doe":
Logged-in as <span id="user">John Doe</span>.
<a aria-describedby="user" href="/logout">Logout</a>
Run Code Online (Sandbox Code Playgroud)
或者带有工具提示的示例(提示:此处缺少 Javascript 部分):
<button type="button" aria-describedby="my-tooltip">Snipping Tool</button>
<div hidden id="my-tooltip" role="tooltip">
It can take still screenshots of an open window,
rectangular areas, a free-form area,
or the entire screen.
</div>
Run Code Online (Sandbox Code Playgroud)
或者以表单元素为例,这是另一个常见的用例:
<form ...>
<label for="my-name">Full name</label>
<input aria-describedby="my-name-desc" id="my-name" type="text"/>
<p id="my-name-desc">
Please tell us your full name.
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
当用户聚焦输入字段时,上面的示例将立即宣布<label>附加描述(由 定义)。aria-describedby它不仅不需要阅读周围环境来理解预期输入的内容,而且还可以读取除表单控件之外的所有元素,因为<form>对于屏幕阅读器用户来说,内部可能更复杂。这是一种与阅读页面其余部分不同的体验。因为键盘事件可以与屏幕阅读器或表单控件交互,但很难同时与两者交互。更不用说屏幕阅读器提供了一堆有用的键盘快捷键,例如按“H”将跳转到下一个标题,但显然在<input>字段聚焦时不会跳到下一个标题。然后“H”将被输入到 中<input>。
aria-hidden或aria-expanded。但前提是正确实施和测试!a如果在or上实现button,如果引用的元素被隐藏 ( display:none)、它的位置(是否引用了内部元素?)或者它上面有tabindex="-1"or role(例如)等,可能会产生影响。role="none"请确保测试所有屏幕阅读器aria-describedby仅在焦点模式下尊重。因此,将其添加到不可聚焦的元素中是没有意义的。来自:ADGCtrl+F(这是用户喜欢导航网站以快速找到他们要查找的内容的常见方式)。来自:ADGaria-describedby, 的唯一情况是将附加信息附加到交互元素(例如,将可见信息关联到表单控件)。来自:ADGaria-describedby(在表单控件上)和role="alert"(在 SPAN 上)的组合来解决表单控件错误。来自:W3.org以下是如何使用aria- describeby属性的示例。当您的文本中包含有关元素的信息时,将使用它。Aria- describeby必须与描述它的文本的ID相同。
First name: <input aria-describedby="name" type="text">
<em id="name">Your first name must be correct.</em>