1

我正在现有的 html 布局上实现 ARIA 地标角色。我需要更改的代码越少越好。我发现的所有示例都将地标用于整个容器。例如。

<div id="content" role="main">
<p>....</p>
<ul>...</ul>
</div>

在我的模板中,我不想标记为 ARIA 地标的内容周围并不总是有一个容器。有时更容易实现,不标记整个容器,而只在相关内容的开头设置标记。

所以它看起来像这样:

<div role="main"></div>
<p>....<p>
<ul>...</ul>

从语义的角度来看,屏幕阅读器或其他软件并不确切知道内容何时结束,或者可能认为内容为空。这会是个问题吗?

我用 JAWS 屏幕阅读器对其进行了测试,它的行为似乎相同。JAWAS 只寻找地标的开始。这是不行的吗?或者我可以这样使用它吗?

4

3 回答 3

0

同意,它只是标志着内容的开始。既然如此,与其创建一个空的 div,为什么不将 role="main" 放在您考虑开始主要内容的第一个元素上?在上面的示例中,这将是<p>标签。

可以使用 role="main" 的另一种方式是为“跳转到主要内容”链接提供锚点。这也支持将角色放在<p>标签上的方法。

简而言之,如果他们使用跳过链接或使用辅助技术中的快捷方式,您希望他们跳转到哪里?我只看到增强导航的好处,它被认为是一个“里程碑”的角色……这对我来说,提供了一个里程碑。

于 2012-01-24T22:57:35.077 回答
0

我绝不是 WAI-ARIA 方面的专家(虽然最近学习得更多),但我的理解是,读者实际上确实了解包含在角色标记区域内的内容,而不仅仅是标记区域开始的位置。

此外,从这里引用:

应用界标最重要的规则可能是确保所有内容都位于界标区域中,以确保没有内容是孤立的。这样,屏幕阅读器用户可以安全地使用地标导航而不会丢失内容。

为此,您可能需要比您希望的更多地修改您的模板。

于 2013-04-15T11:41:27.203 回答
0

好吧,这里发生了几件事。

首先,虽然屏幕阅读器的行为和行为方式相同会很好,但我的经验是这更像是浏览器大战,所以对于不同的阅读器,role="main" 的使用会有所不同,并且不一定对你有那么大的帮助。

顺便说一句,你是对的 - 就内容何时结束而言,任何角色属性都没有得到认可,到目前为止,我看到的每个人都支持 ARIA(而且只有少数人)。

所以最后,我的建议 - 我认为你应该使用不同的角色。区域角色更为通用,但仍将帮助用户指定重要内容的位置。另一方面,如果您想让它真正通用且跨屏幕阅读器可用,请完全放弃角色概念并添加一个隐藏的 h2 标题标签,该标签说明您想要调用它的任何内容。虽然它并不花哨,但它可以保证工作,并且 a11y 社区中根本没有人会为此大吵大闹。

就是这样,使用像 region 这样的通用角色来标记它,或者更好的是,完全放弃角色的想法并返回样板 h2 标签以获得统一的兼容性。

于 2011-07-27T00:05:11.177 回答