传统上,Angular 不鼓励开发人员以“正确的方式”编写用户界面——创建不可访问的自定义元素指令(例如 ngClick on a div
)太容易了,并且没有提供可访问性支持。然而,随着 Angular 1.3x 和 ngAria 模块的发布,它得到了改进。现在,通过在您的应用程序中包含 ngAria,某些 ARIA 属性会自动应用,因此您不必管理它们。
例如,该ngClick
指令现在适用tabIndex="0"
并且ngKeypress
(只要未禁用这些选项),因此创建不可访问的点击事件并不容易。ngAria 也将很快添加role="button"
以传达可点击元素的目的:这可以被其他角色覆盖。有关更多信息,请参阅此拉取请求:https ://github.com/angular/angular.js/pull/10318
ngAria 可以提供帮助的另一种方式是添加aria-disabled
任何使用ng-disabled
. 这可确保默认情况下可以访问框架禁用的自定义控件,例如:
<md-button ng-disabled="true">
使用 ngAria,这变成:
<md-button ng-disabled="true" aria-disabled="true">
有关受支持属性的完整列表,请参阅 ngAria API 文档:https ://docs.angularjs.org/api/ngAria
ngAria 将继续发展(我希望它只是被烘焙而不是模块),但很高兴看到核心框架最终支持可访问性。
我们每个人仍然需要牢记可访问性并负责任地编写代码,但 Angular 不应再妨碍您了。Alistair 对这个问题的回答有很棒的资源:我肯定会参考那些关于键盘焦点管理、在 HTML 中使用 ARIA 等的技巧。您还可以参考 ngAria 的新 Angular.js 开发人员指南:https ://docs.angularjs.org/guide/accessibility
还有一件事:如果有人对 ngAria 有想法,请务必创建一个 Github 问题或提交一个拉取请求!这是一个社区驱动的努力。