Javascript 使用JS添加WAI-ARIA属性

Javascript 使用JS添加WAI-ARIA属性,javascript,wai-aria,wai,Javascript,Wai Aria,Wai,在工作中,我一直在使用WAI-ARIA属性优化我帮助为我们的一个客户(我不能说是谁)开发的一个符合ADA的站点。我一直在想,创建一个小的JS库是否会更容易,它可以像添加“role=button”到我设计成按钮的锚点,向我想要“tabable”的元素添加“tabindex=0”等等 我想知道在JS中添加WAI-ARIA属性是一种好的做法,还是不赞成这种做法。一些可访问性评估工具在评估页面时不会运行页面的JS,因此它会认为这些都是难点,而实际上并非如此。这可能会有所帮助 还请注意,如果您使用role

在工作中,我一直在使用WAI-ARIA属性优化我帮助为我们的一个客户(我不能说是谁)开发的一个符合ADA的站点。我一直在想,创建一个小的JS库是否会更容易,它可以像添加“role=button”到我设计成按钮的锚点,向我想要“tabable”的元素添加“tabindex=0”等等

我想知道在JS中添加WAI-ARIA属性是一种好的做法,还是不赞成这种做法。一些可访问性评估工具在评估页面时不会运行页面的JS,因此它会认为这些都是难点,而实际上并非如此。

这可能会有所帮助
还请注意,如果您使用role=按钮,它需要(即提供适当的键盘交互行为)

我认为,为了您的利益,最好将所有的ARIA内联,而不是依靠脚本来添加它

如果存在其他脚本错误、连接断开、有阻塞脚本等,则您的库可能无法发挥作用,并且您的修复工作将丢失

我还想在上面Steve所说的关于在链接上使用
role=button
的基础上再接再厉。尤其是当你认为一个视觉样式(使链接看起来像按钮)对屏幕阅读器使用是没有意义的(对于许多ARIa角色来说是有益的)。我更详细地讨论了其他键盘交互的问题,但是当你试图把一个链接变成按钮时,这里有一个要考虑的问题:

按enter键可以触发超链接(
)。但按下回车键或空格键可以触发真正的
。当超链接具有焦点且用户按下空格键时,页面将滚动一屏。一些辅助技术的用户会期望基于所使用元素的行为


此外,我还警告不要将
tabindex=0
放在您希望可选项卡化的元素中,除非它是交互式元素。例如,不要把它放在标题(
)上,因为屏幕阅读器(例如)已经允许按标题导航了。感谢您发表的见解深刻的帖子@aardrian。我使用
的唯一问题是,为了让它们去任何地方或做任何你需要添加一些不必要的JS的事情,我觉得当
标签至少可以带你去一个没有JS的新URL,如果你的视觉样式按钮只是超链接的话(它们将用户带到另一个页面,无需脚本干预),然后不要更改角色。只需保留超链接,应用您的样式,不要强调。这样,您就不会将链接转换为按钮,而只是让它仍然充当链接。我希望这会澄清一些问题。谢谢,这确实会澄清一些问题,但如果我使用
将滚动到屏幕上更远位置的元素的动画,该怎么办与“页面的其他部分”的id相同的页面?该页面是否算作按钮功能?