Improve accessibility through automatic semantic ordering
shyndman opened this issue · 0 comments
shyndman commented
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 SemanticsNode
s 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?
- Is there another way to keep a child's
- 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?