AngularJS与508标准

4
我正在使用AngularJS创建一个Web应用程序的分析。该应用程序需要符合508标准。
我知道某些辅助功能设备直接读取HTML,并使用元素中的alt和longDescr属性获取网站的内容。
我看到的问题是,如果您查看页面源代码(而不是生成的源代码),当使用Angular的某些功能(如ng-view和ng-include)时,插入页面中的模板内容将不会显示在源代码中,只会显示在生成的源代码中。
我的问题是,通过动态插入模板是否存在符合508标准的问题?
总的来说,AngularJS的功能有多符合508标准?

1
辅助技术,如屏幕阅读器(JAWS、NVDA、VoiceOver等),针对的是实时DOM,而不是原始源代码;动态插入模板本身并不是一个阻碍因素;但仍需要确保模板本身是可访问的,并且插入模板的代码使用适当的技术来通知屏幕阅读器:屏幕阅读器通常不会在未被告知的情况下宣布新内容或更改;因此,警报、菜单、对话框、错误消息和有时字段更新需要特殊处理。我不熟悉Angular在这方面是否有所作为。 - BrendanMcK
谢谢你的答案。辅助技术读取实时DOM这部分是我问题的重点。我可以补充说明,在HTML语法的部分,如果您将"data-"添加到"ng-*"并将{{data}}更改为data-ng-bind,Angular至少可以符合508标准。但是,正如你所说,我仍然需要知道Angular所做的DOM更新是否可以被这些辅助技术检测到。 - pfernandom
1
更改可以被检测到,但通常会被默认忽略,因此更重要的问题是从用户界面的角度来看期望的行为是什么;对于某些用户界面,立即读取它可能是合适的,而对于其他用户界面,则将其保留原样直到用户导航到那里可能是合适的 - 每次更改都读出来可能会过于嘈杂!请查看 WAI-ARIA 的一部分 aria-live 属性;这可以用于向 ATs 发出信号,告诉它们在其内容更改时应读取特定标记。 - BrendanMcK
1个回答

2
在实践中,Angular.js 可以被无障碍地使用,但需要一些工作。
然而,目前的508条款仍参考WCAG 1.0,有些细微的差异。
两者都不太友好于脚本语言,1194.22(第i部分)的508条款文本是:

当页面使用脚本语言显示内容或创建界面元素时,脚本提供的信息必须用功能性文本标识,可以被辅助技术读取。

对于 Angular 来说并不是很实用。
第508条将在某个阶段更新为使用WCAG 2(该标准指定基于JavaScript的界面应可访问),这项工作已进行了多年,但截至2014年12月 规则制定尚未完成

你对这个在2021年的看法是什么? - Paulito.Bandito
Section 508已更新为使用WCAG 2.0,因此JS框架不被排除在外。但是,请参阅https://dev59.com/PWMk5IYBdhLWcg3w6yHh#18861097 - AlastairC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接