2011-07-26 46 views
1

我在现有的html布局上实施ARIA里程碑式的角色。我需要改变更好的代码越少。我发现的所有例子都使用整个容器的地标。例如, 。咏叹调标志性的角色,仅适用于容器?

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

在我的模板中,并不总是有一个容器围绕我不想标记为ARIA地标的内容。有时候,为了实现,不要标记整个容器,而只是在相关内容的开始处设置标记。

因此,这将是这样的:

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

从视屏幕阅读器或其他软件语义点不知道什么时候该结束的内容或可能认为内容为空。这可能是一个问题吗?

我用JAWS屏幕阅读器测试了它,它似乎表现得一样。 JAWAS只寻找地标的开始。 这是不是一个?或者我可以用这种方式吗?

回答

0

嗯,这里有一些事情正在进行。

首先,虽然这对屏幕阅读器都会表现得很好,并且行为方式相同,但我的经验是,它更像是浏览器战争,所以使用role =“main”会变得不同对于不同的读者,并不一定对你有帮助。

顺便说一句,关于任何角色属性的部分,在内容何时结束方面都没有得到承认,这是我见过的所有支持ARIA的情况(并且只有一些)。因此,最后,我的建议 - 我认为你应该使用不同的角色。区域角色更具通用性,但仍会帮助用户指定重要内容的位置。另一方面,如果你想保持真正的通用性和跨屏阅读器的可用性,那么就把角色概念完全放在一个隐藏的h2头部标签中,然后用它来表示你想要调用它的任何东西。虽然它不是花哨的,但它保证了工作,而且这个社区中的任何人都不会发出什么声音。

所以它就是这样,使用像区域这样的通用角色来标记它,或者更好的是,完全取消角色构想并返回到样板h2标签以获得统一的兼容性。

+0

咏叹调的支持真的很糟糕,它不能被使用吗? 这里看起来不那么糟糕http://www.accessibleculture.org/research/html5-aria-2011/ – yvess

+0

我想补充一点,像'main'和'banner'这样的角色是要定义的* *只有一次。**但根据我的经验,屏幕阅读器无论如何都会循环浏览。这听起来像是一种不同的方法。同时也要注意新的HTML5结构,比如'article','header'等。如果没有更多关于网页内容的信息,很难再提供帮助。以下ARIA角色链接可能会有所帮助:http://www.paciellogroup.com/blog/2010/10/using-wai-aria-landmark-roles/ –

0

同意,它只是标志着内容的开始。既然如此,而不是创建一个空的div,为什么不把角色=“main”放在第一个元素上,你会考虑启动主要内容?在你上面的例子中,这将是<p>标签。

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

总之,如果他们使用跳过链接或在辅助技术中使用捷径,您希望他们跳到哪里?我只在增强导航方面看到了收获,它被认为是“里程碑式”的角色......这对我来说,提供了一个里程碑。

0

我绝对不是WAI-ARIA的专家(虽然最近才学习),但我的理解是,读者事实上了解被标记为角色的区域内的内容,而不仅仅是关于标记区域开始。

此外,从here引用:

可能是将地标最重要的规则是,以确保所有内容驻留在具有里程碑意义的区域,以确保没有内容是孤立的。这样屏幕阅读器用户就可以安全地使用地标导航而不会丢失内容。

要做到这一点,你可能需要修改你的模板比你希望的更多。

相关问题