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

Improve accessibility through automatic semantic ordering #50

Open
shyndman opened this issue Feb 10, 2021 · 0 comments
Open

Improve accessibility through automatic semantic ordering #50

shyndman opened this issue Feb 10, 2021 · 0 comments
Labels
enhancement New feature or request

Comments

@shyndman
Copy link
Owner

shyndman commented Feb 10, 2021

The README has a description of how to get a screenreader to announce grid items in a sensible order, independently of how they appear visually. This is roughly equivalent to how CSS Grid Layout works (ie, it doesn't do much, but you can direct behavior yourself).

It occurred to me that we can do a much better job than this, since we may be able to automatically introduce SemanticsNodes to mirror placement. For example, introducing a SemanticsSortKey subclass that orders by column first, then row (and considers directionality?).

I'm not exactly sure how this would work yet. Things that would need figuring out:

  • How are semantics nodes introduced without using Semantics widgets?
  • Should the grid introduce a SemanticsNode, so that children are kept explicit (explicitChildNodes = true)
    • Is there another way to keep a child's sortKey from merging with its parent?
    • What is the implication of this, if the nodes would merge in other circumstances, like with Text widgets?
  • How should the automatic child SemanticsNodes work?
    • We would need for placement to have taken place, in order to resolve to explicit column/row placement for the sort key.
    • How are they introduced?
  • How does directionality fit in?
  • Should this be default behavior?
    • If so, how do you turn it off? And vice versa?
@shyndman shyndman added the enhancement New feature or request label Feb 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant