You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While working on #1615 with @jessegreenberg, we found a couple of scary problems with InteractiveHighlighting that most likely have not exposed themselves since PhET doesn't support DAG or multi-displays with its usages of InteractiveHighlighting nodes. I'll jot down a few problems for when we hit this in the future and need to support it.
DAG: Each time we look through the list of display values, that is not a unique list, so we may encounter multiple Displays and do work to change the same display multiple times, for example on pointer enter:
. This likely isn't buggy, but it is creating multiple instances of Focus and could lead to downstream issues.
Multi-displays: _onInteractiveHighlightingEnabledChange will add the activation listener to the Node if ANY display's display.focusManager.pointerHighlightsVisibleProperty is true, but the activationListener does not see if the particular display in the list has that value set to true, so basically if any Display is pointer highlights visible, this Node will activate for all displays. Likely checking on that value in all listener event callbacks (move/enter/down/release/cancel/etc) is best, but we want to make sure we are complete in that, and base it on the trail.
I'm not planning to work on this any time soon.
The text was updated successfully, but these errors were encountered:
While working on #1615 with @jessegreenberg, we found a couple of scary problems with InteractiveHighlighting that most likely have not exposed themselves since PhET doesn't support DAG or multi-displays with its usages of InteractiveHighlighting nodes. I'll jot down a few problems for when we hit this in the future and need to support it.
scenery/js/accessibility/voicing/InteractiveHighlighting.ts
Line 339 in 9c8bcc6
_onInteractiveHighlightingEnabledChange
will add the activation listener to the Node if ANY display'sdisplay.focusManager.pointerHighlightsVisibleProperty
is true, but the activationListener does not see if the particular display in the list has that value set to true, so basically if any Display is pointer highlights visible, this Node will activate for all displays. Likely checking on that value in all listener event callbacks (move/enter/down/release/cancel/etc) is best, but we want to make sure we are complete in that, and base it on the trail.I'm not planning to work on this any time soon.
The text was updated successfully, but these errors were encountered: