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

A11y Accessibility issues with SlickGrid #678

Closed
shrhegde opened this issue May 13, 2022 · 4 comments
Closed

A11y Accessibility issues with SlickGrid #678

shrhegde opened this issue May 13, 2022 · 4 comments

Comments

@shrhegde
Copy link

shrhegde commented May 13, 2022

We are using SlickGrid with our Angular JS application and there are below issues with Accessibility:

  1. A11y: While navigating with keyboard, expansion of column width in the grid is not accessible.

  2. A11y: In high contrast mode there is no visible focus in the grid while navigating through keyboard.

  3. A11y: Screenreader does not announce the table name for grid present in the page page when it is on focus.

  4. A11y: Screenreader is not announcing the grid data along with column headers in the grid.

  5. A11y: Narrator is not announcing any information about the grid present on the screen when it is on focus.

  6. A11y: When navigating inside the grid with keyboard, it is getting trapped inside the grid and there is no way to come out of the grid.

  7. A11y: When pagination is enabled on the grid, The Bulb icon present in the right corner of the grid, next/previous buttons, are not keyboard accessible.

  8. A11y: When pagination is enabled on the grid, the icons >> ,<<, bulb icon etc. all such icons are not visible properly.
    image

  9. A11y: When pagination is enabled on the grid, The Name property is not provided for Bulb icon button present in the right bottom corner.
    image

SlickGrid version: 2.3.17
AngularJS: 1.8.x
Operating System: Win11
Chromium Edge: Version 98.0.1108.13 (Official build) dev (64-bit)
Chrome: Version 96.0.4664.110 (Official Build) (64-bit)
Screen Reader: Narrator, NVDA(2021.3.1)

@6pac
Copy link
Owner

6pac commented Aug 1, 2022

hi @shrhegde ,

Yes, accessibility has been a problem with the grid for a while. The main problem is that I'm not at all an expert in accessibilty and it appears to be a quite complex area. I am also aware that these things can evolve quite rapidly, so I'm also concerned that I might make changes in line with an older standard that is not really the most active one at the present day. See #206 for a rundown of my concerns.

I note there are a number of accessibility issues/PRs still open from the last few years.

I'm more than happy to make changes to the grid, but I feel that I need to collaborate with someone who really knows their way around web accessibility and can make reliably correct calls.

I note you are using the A11y tools. Are you just a user of the tools, or do you have a good knowledge of the issues around accessible web design?

Ben Mc (@6pac)

@ghiscoding
Copy link
Collaborator

ghiscoding commented May 8, 2023

@6pac Can I get some timeline on when these bugs will be fixed as these bugs are affecting the accessibility of our application

@shrhegde
Wow I'm just amaze to see such comment in an Open Source project, why don't you just contribute if you want it faster? Please realize that we are all doing work on this project in our spare time, you are not our employer, and getting more contributions would be a lot more helpful for the entire community.

@shrhegde shrhegde closed this as not planned Won't fix, can't repro, duplicate, stale May 8, 2023
@ghiscoding
Copy link
Collaborator

That's too bad that you decided to simply close the issue instead of contributing to the project which could benefit everyone including yourself, but it is what it is.

ghiscoding added a commit that referenced this issue May 9, 2023
ghiscoding added a commit that referenced this issue May 9, 2023
@ghiscoding
Copy link
Collaborator

closed by #764 to be released in next major v4.0

6pac added a commit that referenced this issue May 18, 2023
* feat!: Drop jQuery requirement  (#734)

* feat!: Drop jQuery requirement

* fix: addresses all issues found in jQuery removal previous PR #734 (#742)

- fixes some errors that came up while testing the whole thing in Slickgrid-Universal

* feat(plugins): convert slick.draggablegrouping to vanillaJS (#744)

- fix ESLint for Cypress
- also remove jQuery from package.json list of dependencies

* show tooltip if the cell content is taller than the cell height - fixes #740 (#741)

* show tooltip if the cell content is taller than the cell height

The current code does not show a tooltip when word wrap is turned on and the text is taller than the cell height.

* combined height check with width check

* fix: enable AutoScroll with SortableJS for column reordering, fixes #735 (#736)

* fix: enable AutoScroll with SortableJS for column reordering, fixes #735

* chore: add auto-scroll comment for clarity

* chore(ci): run Cypress on the `next` branch as well as `main`

* feat(plugin): convert slick.autotooltips to vanillaJS (#745)

- remove jQuery from plugin and also in the autotooltip example as well

* chore: fix some UI issues in draggable grouping plugin

* feat(plugins): convert copy manager plugins to vanillaJS (#746)

* feat(plugins): remove jQuery from slick.customtooltip plugin (#747)

* feat(plugins): remove jQuery from header buttons/menus plugins (#748)

* chore: apply better code styling to few core files (#749)

* chore: apply better code styling to few core files

* feat(plugins): remove jQuery from ColumnPicker & GridMenu controls (#752)

* feat(plugins): remove jQuery from ColumnPicker & GridMenu controls

* tests: use input checked property instead of attr checked
- the previous code with `attr('checked')` was jQuery oriented and we are going away from jQuery

* feat(plugins): remove jQuery from CellMenu & ContextMenu plugins (#753)

* feat(plugins): remove jQuery from range decorator selection model (#754)

* feat(plugins): remove jQuery from range decorator selection model

* feat(plugins): remove jQuery from CheckboxSelectColumn plugins (#755)

* feat(plugins): remove jQuery from RowMove plugins (#756)

* feat(plugins): remove jQuery from Grid State plugin (#757)

* feat(plugins): remove jQuery from Grid Resizer plugin (#758)

* chore: remove Map polyfill since we will target ES6 (#759)

- Slick.Map polyfill is no longer required since Map is included in ES6 browsers

* feat(plugins): remove jQuery from Row Detail plugin (#760)

* Correct some instances of migration from $.each() to iteration (return needs to become continue)

* chore: remove eval & grep utils and replace with simple ES6 filter

* fix: filter header row should follow grid scroll

* feat(controls): remove jQuery from Slick Pager control (#762)

* fix: scrolling for all containers should work for regular & frozen grids

* fix: add missing aria accessibility (#764)

- closes #586, #587, #588 and #678

* chore: filling the window should be used with slick.resizer, closes #515

* chore: migrate more examples to vanilla JS with DOMContentLoaded

* chore: convert html template to pure DOM create element with JS (#766)

* chore: remove jQuery from all possible examples (#767)

* chore: fix html code showing up in column picker & grid menu picker (#768)

* fix(core): set wheel/touch listeners to passive for better perf (#769)

- this fixes warnings shown in Chrome and other browser console mentioning that we should consider using `passive` event listeners
- also uses a polyfill in case the `passive` option is not supported (for example IE)

* chore: better use of DOM element creation and innerHTML (#770)

- also remove `passive` mode to certain events that use preventDefault since that is not compatible with `passive` mode

* chore: remove jQuery from lib folder, replace with CDN (#771)

* Bugfix/example issues fixes (#772)

* fix: found a few small issues while testing examples with jQuery CDN

* fix: throw error when freezing columns are wider than canvas (#773)

- closes #667
- freezing columns cannot be wider than the actual grid canvas because when that happens, the viewport scroll becomes hidden behind the canvas... so let's throw an error advising the user to make adjustments

* fix: toggling frozen rows should recalc scroll height, closes #737 (#774)

- when changing frozen rows via `setOptions`, it should recalculate each viewports (top/bottom)
- the previous code skipped scroll height recalculation and that caused the issue identified in #737

* feat: Enable hidden property for column. Adds example-column-hidden, method… (#765)

* Enable hidden property for column. Adds example-column-hidden, method getVisibleColumns() and alternate method updateColumns() calling event onBeforeUpdateColumns() for when a hidden property has changed but the column list itself has not changed.

* remove jQuery from example and add frozen rows/hidden cols example

* final changes: add frozen columns example, fix issue with hidden columns on frozen grid boundary, fix gridmenu control to work with .hidden flag on columns)

* changes as suggested in #765

* feat: remove legacy TreeColumns code - now unused (#775)

* remove legacy treecolumns code - now unused

* fix typo and add back apparently unnecessary call to setcolumns() which does in fact do crucial refreshing of grid structure

* chore: fix a small editor problem with percent editor

* chore(release): publish version 4.0.0-beta.0

* chore: add migration guide to v4.0 link in changelog

* chore: remove jQuery from Example 4

---------

Co-authored-by: Marko B. Ludolph <[email protected]>
Co-authored-by: tr4npt <[email protected]>
Co-authored-by: Ben McIntyre <[email protected]>
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

No branches or pull requests

3 participants