-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adds Voice Over Accessibility support and Keyboard Nav #3850
Conversation
Response to
|
|
@JLLeitschuh OK it must have been some weird caching thing in Chrome. Looks good to me now! |
I've tried setting up outline CSS to make it more stylistically consistent, but it doesn't seem to want to work in Chrome. When I set |
Outline on Chrome in OSX is being incredibly buggy. |
OK, so... what's our way forward? |
What I'm in the process of finishing up:
Hopefully the last three will get completed tomorrow. |
ecfcf87
to
96c1d77
Compare
cc9d5ee
to
790ea3a
Compare
#3987 Created a conflict that needs to be resolved. |
790ea3a
to
2379d51
Compare
Adds accessibility tags to the i18n service.
Adds a few helper functions to assist with focus management. Makes the focus return promises and queue Focus methods return promises that resolve themselves when the focus either suceseeds or fails. Additionally, the promises queue and cancel eachother when mutiple focus events are requested before the timeout is purged.
c26795e
to
7327182
Compare
- Adds aria roles to the grid to allow screen readers to understand what text to read out. - Adds screen reader only css element - Allows you to make a dom element have content exclusively for a screen reader. - Adds an accessibility demo to help with testing
- Adds appropriate aria labels to the pagination controls. - Styles Pagination Buttons using Bootstrap. - Adds focus managment on the buttons so that when they are disabled focus shifts to the center input box.
The filter controls can now be accessed using the tab keys and the remove filter button automatically moves the focus to the input when it is disabled. They also support OSX Voice over reading. Additionally all of the google accessibility audit rules pass. The focus input now provides a default aria label on the input that can be overridden in the filter settings.
All applicable roles have been applied to the header. OSX Screen reader correctly reads out all of the header information about each column.
- When the grid opens the focus is automatically set to the first element in the list. When the menu closes the focus is automatically reutnred to the menu button that opened that list except for when the column is hidden. When the column is hidden the focus is set to the master grid menu. - Also adds the ability to have screen reader only buttons in the menus. The example of this is the 'close' menu item that only appears when the focus is over it. - Updates e2e tests to reflect menu item addition. - The menu now has an additional item that is visible to screen readers only and only becomes visible when focused. This adds one item to all of the tests that are counting the number of elements that are 'displayed'.
As you navigate the grid using cell nav the browser should now read out the cell that is currently focused. Fixes angular-ui#3896 Partially angular-ui#3815
- Adds `ui-grid-one-bind-aria-labelledby` and `ui-grid-one-bind-aria-labelledby-grid` directives to one bind. - Fixes a one bind test not being initialized correctly
- Also adds the ability to use the ng-aria in examples - Documents Accessibility and adds e2e tests - Adds details regarding how to try out the accessibility features using OSX Voice over. Also adds e2e tests so to ensure that focus is managed correctly during navigation around the grid.
- This turns on Protractor's built in chromeA11YDevTools. - This also requires a reload to occur after the last e2e test runs in order to prevent a Stale Element Refrerence. More info: angular/protractor#2363
7327182
to
cad6b5f
Compare
LGTM |
Adds Voice Over Accessibility support and Keyboard Nav
Accessibility
gridUtil
to make setting focus on elements easier inside of directives.Requirements
In order to take full advantage of the accessibility and keyboard support angular aria must be included as a dependency to the app. Aria adds the tabindex to dom elements that need them and adds keypress handlers so that the enter key triggers the ng-click action.
Review Specifics
Before merging it would be nice if you were to review the following.
Related #2840