【发布时间】:2017-07-04 09:19:41
【问题描述】:
在长达十年的中断之后,我再次涉足 Web 开发。对我来说,不断变化的标准似乎仍然令人困惑,这让我不清楚哪些浏览器支持什么以及最佳实践是什么。
目前,我专注于使用new semantic elements of HTML5。我发现 ASP.NET Core 默认引导模板不使用导航栏的 <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,它不在默认引导模板中。)
让我解释一下:
- 其中一些 aria 属性似乎在描述视觉行为。向盲人描述他们看不到的东西是否有意义?
- 正确应用
<nav>和<main>语义元素后,屏幕阅读器是否已经掌握了快速跳过导航栏的所有必要信息(相当于为有视力的人隐藏它)?
将导航切换机制完全隐藏给看不见的人难道不是更好的选择吗?那么我的问题是,如何去做。可以隐藏按钮using role="presentation" and/or aria-hidden="true"吗?
【问题讨论】:
-
您有我们可以看到的功能示例吗?从表面上看,您提出了一个有效的问题,即当 ARIA 只是一种视觉效果时,是否需要在其中表示某些东西。关键是上下文是关键,当然编码也是如此。通过一个示例,我可以将其加载到屏幕阅读器中或查看代码并给您具体的反馈。
-
@aardrian 也许是the official Bootstrap navbar example?不幸的是,此网页不包含我在问题中提到的
<main>元素,但它可能适合您的目的。在导航栏之后添加它也应该很容易(使用 F12)。 -
@aardrian 至于上下文:默认情况下,引导程序中的导航栏可以在较小的屏幕尺寸(即智能手机)上折叠或展开。在较大的屏幕尺寸上,它始终显示,并且导航栏切换不可见。 (我还在问题中添加了这个上下文。)
标签: html twitter-bootstrap-3 accessibility semantic-markup wai-aria