phetsims / scenery

Scenery is an HTML5 scene graph.
http://scenerystack.org/
MIT License
55 stars 12 forks source link

Node layering and interaction with iOS VoiceOver #1024

Open jessegreenberg opened 4 years ago

jessegreenberg commented 4 years ago

Related to #852 - There is a layering issue with iOS VoiceOver. This was discovered in phetsims/gravity-force-lab#210 with @zepumph.

The screen reader virtual cursor can be on a Node that is behind another in the z-order. If a user gesture is made to initiate dragging of the Node that is in the back, the node in front will receive the input events. This is because the assistive device sends a pointer event at the location of the DOM element which is under the virtual cursor. But the the event target is the Display div. Scenery catches this event and dispatches it normally and so the top most interactive Node receives the event.

We should investigate if there is any way around this. Perhaps we can get information from the DOM event such as the DOM element under the virtual cursor which initiated the event. From here we can look up the trail to the Node the user intended to interact with.

zepumph commented 4 years ago

@jessegreenberg and I aren't going to work on this again until it because an issue with a sim. Removing from meeting.