Accessible Angular.js
Accessibility is about people.
& Me
Today
-
Material Design & a11y
- ngAria
- Protractor
- Angular 2
Legend: waffle denotes a major topic in client-rendered app accessibility
Material Design
Material Design for Angular 1.x
Interactivity
Toolbar
Button
Button
Button
Dogs
Cats
Pigs
Reachable Controls
Operable Controls
Semantics
Button
// should be:
ARIA
Fixing ARIA warnings
Focus management
Focus management
Notifying the User (code)
Angular ❤ Open Source
Including ngAria
angular.module('app', ['ngAria'], function($ariaProvider) {
$ariaProvider.config({
ariaHidden: false
...
<body>
<!-- page content here -->
<script src="angular.min.js"></script>
<script src="angular-aria.js"></script>
</body>
ngAria
Adds support to these directives:
- ngModel
- ngDisabled
- ngShow
- ngHide
- ngClick
- ngDblClick
- ngMessages
ngClick
<div ng-click="ohNoYouDidnt()"></div>
ngAria & ngClick
That's a lot of effort...
Just use buttons!
- Node.js command line application
- Runs on WebDriver
- Choose your test framework
- Great for continuous integration
Protractor A11Y Plugin: Setup
Protractor Accessibility
Can I use?
Library |
Pricing |
API Key |
External Request |
No. of Tests |
Chrome Accessibility Developer Tools |
Free |
No |
No |
14 |
Tenon.io |
Free limited accounts, paid subscriptions |
Yes |
Yes |
63 |
Automated Testing Strategies
- Check for Labels
- Validate Roles
- Watched ARIA Properties
- Interactions
- Color Contrast
Event bindings
Angular 2 includes ARIA support
Resources
All links open in new windows
The End.