Skip to content
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

Enabling accessibility for slickgrid #1

Open
wants to merge 1,228 commits into
base: master
Choose a base branch
from

Conversation

heiko-folkerts-msg-david

Enabling accessibility so slickgrid conforms to the WAI authoring practices at https://www.w3.org/TR/wai-aria-practices/#grid

The changes don't fully enable accessibility since many things have to me specified by the application using slickgrid but all possible changes within the grid should be applied. In any case the examples for slick grid are very much more accessible with this changes. tested with NVDA latest versin and Firefox.

6pac and others added 30 commits April 25, 2018 15:17
fix issue #68 editor with activeRow selection
- GridMenu was not working correctly with multiple grids
- Also found event leak, GridMenu should be destroyed on grid destroyed
fix(gridMenu): GridMenu with multiple grids & event leak
bugfix(editor): add a flag to suppress active cell changed on edit #242
- when using checkbox selector as a single row selection, we need a way to hide the "Select All" checkbox
- also added getOptions/setOptions to dynamically change options on the fly
…ct-all

Feature/checkbox selector hide select all
- exposing the init() function helps dealing with i18n translation without losing any Slick.Event attached like onColumnsChanged
feat(picker): Column Picker expose init to use by translation
JS and HTML are text files, so they should be checked be CRLF for Windows and LF for Linux

slick.grid.js was in CRLF
Use text=auto for JS and HTML files
…ec from all trigger calls arg lists as it is added in in the trigger function
ghiscoding and others added 22 commits May 29, 2019 22:35
fix(ie): increase performance in IE, closes #367
* The grid has the right role
* Column headers have role columnheader
* cells have the role gridcell
* The cells have the aria-rowindex and aria-colindex set right.
…us set. This is needed since only one item within a hole data grid should be in the tabbing order.

This is needed for screen reader users to beable to jump behind the grid instead of being caught in the grid when tabbing.
…he current active cell having tabindex set to 0.

The focus sing stuff had to be removed to prevent hidden UI elements from catching the focus and therefore blindfolding screen reader users.
* Navigation using focus mode of the screenreader reads all contents correct.
* Editable cells are correctly announced by the screen reader.
* When navigating editing will not be enabled by just visiting the cell since this traps screen reader users. So for editing when navigating via keyboard the user has to press enter. This should also be more convinnient for all users since navigation with the keyboard is not caught by editable cells.
* FVor debugging the grid still beeps when navigation changes cells. This will be removed later.
* When leaving an editor using enter or escape the next cell or current cell is focussed correctly. Especially the escape key left the focus in nowhere.
…actices: https://www.w3.org/TR/wai-aria-practices/#grid

- Especially the grid now moves to the last cell when using Ctrl+End and the first cell when using Ctrl+Pos1
…cell.

F2 now also seems to work though there is no special code for that key.
The percent bar complete formatter now sets the value as text within the painted span so screen reader uses get the value read. Using the alt or title attribute didn't work for the screen reader.
…and setting the aprociate role as specified by the WAI.

Currently collapsed and expanded rows are not shown correctly but this may be due to example 5 using the collapsing for filtering.
In the formatter a Typo has been fixed.
…tor are shown correctly to screen reader users.
…lected attribute set to denote the selection state.

Currently the recommended keyboard shortcuts for selecting columns and rows are not implemented and don't work.
…w and column selection as specified by the WAI through Strl+Space and Shft+Space.

The selection of columns and rows still doesn't work but removing space from the editing trigger is a prerequisite for that.
@6pac
Copy link
Owner

6pac commented Jun 21, 2019

I'm on board with accessibility changes, but this PR is not clean - it appears to have been created from a repo with significant other changes, and those have leaked into the code. For example, what's up with the TreeColumns?

@heiko-folkerts-msg-david
Copy link
Author

- adding some ARIA stuff that was mixed up within the wrong commit that has been reverted.
- Removing debugging function for beeping
- Removing commented out code.
@heiko-folkerts-msg-david
Copy link
Author

Changes have now been cleaned up. A few comments to the changes that are not concerning ARIA roles directly:

  • I had to change the focus behaviour so that the active cell also gets the focus. Otherwise a screen reade cannot follow the action in the grid correctly. One cannot read the contents when moving in the grid with the keyboard commands.
  • WAI authoring practices state that only one component of a grid should appear in the tabbing order. So I had to change a bunch of tabindex from 0 to -1 to take them out of the tabbing order.
  • If I made any visual changes to the grid this was by mistake. I didn't have a visual person to test on that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.