html - 在导航栏上使用 `aria-expanded` 是否有意义?

标签 html twitter-bootstrap-3 accessibility semantic-markup wai-aria

经过十年的中断之后,我再次涉足网络开发。对我来说,这仍然是一堆非常令人困惑的不断变化的标准,使得我们不清楚哪些浏览器支持什么以及最佳实践是什么。

目前,我专注于使用 new semantic elements of HTML5 。我发现 ASP.NET Core 默认 Bootstrap 模板不使用 <nav>导航栏的元素,因此正在研究如何正确应用它。

default navbar template in Bootstrap 是否建议使用<nav> 。然而,我很困惑aria-expanded背后的目的是什么。应用于它的属性。之后learning about the benefits it offers to screen readers (指示导航栏是否折叠,在这种情况下,当屏幕尺寸较小时,即对于智能手机),我仍然很困惑它是否应该存在。 (和 whether or not aria-controls should be applied ,它不在默认引导模板中。)

让我解释一下:

  • 其中一些咏叹调属性似乎描述了视觉行为。向失明者描述他们看不到的东西是否有意义?
  • <nav><main>如果正确应用了语义元素,屏幕阅读器是否已经拥有了快速跳过导航栏所需的所有必要信息(相当于为视力正常的人隐藏了导航栏)?

对于盲人完全隐藏导航切换机制难道不是更好的选择吗?我的问题是,如何解决这个问题。可以隐藏按钮using role="presentation" and/or aria-hidden="true"

最佳答案

使用您在 https://getbootstrap.com/examples/navbar/ 引用的示例,它需要 aria-expanded

在较大的视口(viewport)中,“下拉”菜单隐藏了所有子项目。它们不仅在视觉上隐藏,而且对屏幕阅读器也隐藏。 aria-expanded 有助于为用户提供上下文,无论是否有更多可用的内容,并且还提供一些有关后续制表位可能会将用户带到何处的线索。

在较窄的视口(viewport)中,导航变成了汉堡包,这仍然适用。更是如此,因为它也适用于汉堡本身。

这个上下文很重要,因为 aria-controls 支持是粪便(引用 Heydon)。

在某些情况下,菜单中的每个项目都可以通过选项卡访问,即使在视觉上不存在。在这种情况下,aria-expanded 并不那么重要,但 aria-controls 会有更多值(value)。

另外,该菜单需要为有视力的键盘用户提供更好的 :focus 突出显示,以及菜单的 DOM 序列与狭窄视口(viewport)中的 Logo (这是我的观点)。

关于html - 在导航栏上使用 `aria-expanded` 是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42254034/

相关文章:

html - Bootstrap 网格系统在 Rails 中格式化照片

javascript - 将 aria-live 设置为在读出焦点中的 DOM 元素之前读取更新

java - 如何使用 AccessibilityService.getWindows() 获取可遍历的 AccessibilityNodeInfo?

iOS VoiceOver 按钮不调用目标方法

javascript - 将类添加到 a 标签内的元素

javascript - gulpfile.js 中的 Bootstrap-sass javascript

html - HTML/CSS 中的响应表,第一个单元格充当整行

javascript - 在 Bootstrap 中放置指纹单选按钮

javascript - 在其他页面中打开特定选项卡

javascript - 从标准 Html5 音频播放器中删除静音/音量条?