We are working on enterprise product, which uses Progress Telerik jQuery KendoUI components extensively purchased by our Company. In which Kendo grid is used in many modules of our product.
Now a days we are working on Accessibility (i.e. keyboard and screen reader) as part of out-of-box feature of our product.
The grid has been made accessible so that it can be navigated using the keyboard arrow keys, once it receives focus via Tab Key in order of tab index or Alt + W short cut key. In turn, this has spawned up one issue in terms of keyboard operatibility. You can now tab into the grid, use arrow keys to navigate to the cell containing action buttons and then again tab to the button that you want to activate.
Now due to this, user needing to press the tab key multiple times is an accessibility issue.
Also while referring Grid control demo on https://demos.telerik.com/kendo-ui/grid/editing-inline , we found the same type of behavior when traversing through “Edit” and “Delete” buttons. One of the code snippet developed by us using dojo.telerik.com can be referred on https://dojo.telerik.com/@chiragvidani/ulOzaniX/2
It would be great if this issue is addressed with a good accessible way.
Please find below reply received from on the accessibility forum, when we tried raising the issue to find out the remedial solution:
Reply 1 by "Glen Walker"
Just to make sure we're talking about the right type of component, a grid vs a table, a grid is like a spreadsheet where you can interact with all the cells. I agree that a grid should be a single tab stop so that you can easily navigate to the elements after the grid. However, I have seen implementations that once you're in the grid and in "edit mode", you can tab amongst the cells. This is helpful if the cell contains an element that uses the arrow keys (such as a radio or select) and you want the arrows interpreted by the element and not navigate to the next cell. You then need to get out of "edit mode" (perhaps via the escape key) in order to tab off the grid.
A table, on the other hand, doesn't let you interact with the cell directly but that doesn't mean a cell cannot have an interactive element. That is, you can have links or buttons or inputs in a table cell and it'd still be considered a table and not a grid. It's kind of a fine nuance. A grid lets you interact with the cell itself and a table might let you interact with an element that is in the cell, but not with the cell itself.
There is, of course, more to this than that but I was trying to keep it basic and simple.
So, that being said, do you really have a grid or a table?
Let's say you really have a table instead of a grid, and that one of the cells in your table has several buttons, and that pattern is repeated on every row. You would indeed have a bunch of tab stops, making it difficult to navigate beyond the table.
One possibility is if all the button actions are grouped together, they could be considered a toolbar. A toolbar is one tab stop and you arrow between the buttons, but you'd still have the problem of having a toolbar on every row. A toolbar would reduce the number of tab stops compared to having all separate buttons but you'd still have X number of tab stops for X rows. One for each toolbar.
Maybe a grid in that case would be better. Tab to the grid, tab again to whatever element follows the grid. Tab back to the grid and use the arrow keys to navigate to the desired row. Maybe the row goes into "edit mode" automatically when it receives focus with the arrow and then all the interactive elements in the row get a tabindex of 0.
That might be a bit non-standard and there probably isn't a good "role" to explain the behavior. A bit of usability testing might be required.