178 karma · joined September 30, 2018
You could do the same trick by hiding the visible DOM from the screen reader and creating an invisible DOM explicitly for the screen reader. If your DOM structure is wrong for the screen reader I would suggest doing this.
Feel free to steal and improve, we only enable the clown-car mode when the desired scrollable area is larger than what a browser can support. With our implementation scrolling is still handled by the browser, but the scroll location can be subtly recomputed as you go from time to time. We only do this when interacting with the scrollbar directly to avoid weird artifacts like scrolling feeling faster than normal.
The cell nodes need be browsable and selectable by the screen readers caret. You could do what many other DOM based grids do and add an "accessibility mode" but I believe accessibility should be the default and not a mode people turn on as a checkbox. Let me know if you want to chat, I'm always happy to share what I know. I'm by no means an expert but I've definitely picked up a thing or two.
Disclosure: I am the primary developer of Glide Data Grid.
- No we don't support a11y yet, but we do have a plan for it.
- Yes this is all canvas except for the overlays
- It doesn't do filtering/sorting for you, but you can implement it
- You can override rendering
- You can theme the default rendering
If you have any more questions I am happy to answer! If you need a data grid I genuinely hope this helps you and we will be maintaining and improving this grid for years to come I am sure.
Full disclosure: I am another YC founder. Fly did not ask me or encourage me to post this in any way.
Grid + Flex + Block + Absolute covers all layout needs. It's funny to me because conceptually these ideas have been around on desktop/mobile layout systems forever. That they are only now making it to the web is insane.
Basically this puts Facebook in a real tight situation, I honestly wonder how they will survive it.