Skip to content

Semantics traversal order needs to be implemented on iOS engine. #14570

@gspencergoog

Description

@gspencergoog

The Semantics traversal order API has been implemented in the framework and on Android, but the iOS engine work still needs to be completed.

The engine now receives, for each semantics node, a "nextNodeId" which is the next node in the traversal order. On Android this calls setTraversalBefore to indicate the order, but on iOS there isn't a similar facility.

The place in the code that orders accessibility nodes is here. It currently orders them geometrically (upper left to lower right), but we don't want that (it doesn't respect directionality, or the custom ordering API in the framework).

In addition, it orders them only on the basis of ordering the children of each node, and not globally: the custom ordering is completely orthogonal to the widget hierarchy, and could order any semantics node after any other.

I think that an approach similar to the one given in stackoverflow here is a possible solution, but I don't know enough iOS development to know for sure.

This is part of implementing #12187

Metadata

Metadata

Assignees

Labels

a: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)engineflutter/engine related. See also e: labels.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions