We need abstractions or guidelines to make implementing alt input for "groups" of components easier. We may improve GroupSortInteraction. Or we may create a new library that can be used for these sorts of designs. It will involve reviewing sims like membrane-transport, build-an-atom, forces-and-motion-basics, and GroupSortInteraction and its usages.
This was initially discussed during Retro on 10/30/25:
JB: For BAA, fully implementing alt-input for the particles was more complex and took longer than we would have initially predicted. This was largely due to the complexity of managing the interactions between things like focus, focusability, PDOM visibility, and the particular needs of this sim (e.g. switching between electron cloud and particles). It may be worth some time and effort to investigate more patterns and reusable code to simplify the process for similar sims in the future.
Then follow at Developer Meeting on 11/7/25:
Discussion:
SR: Jesse provided 6 steps to implement this, and it was straightforward for Number Pairs: See phetsims/number-pairs#256 (comment)
CM: Should those “6 steps” be added to some general doc, like the alt-input quickstart guide?
SR: I would like to start using the terminology “roving tab index” which is an established pattern and described here https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#keyboardnavigationinsidecomponents
CM: Are “roving tab index” and “group sort” really the same pattern? And “group sort” is pretty deeply ingrained in the PhET vernacular.
SR: They are not the same pattern. They are different design approaches to the same problem. We need a way for designers and developers to distinguish these very different design patterns.
CM: Thanks for clarifying. I thought they were the same pattern and you were proposing to use a more standard name for that pattern.
Next Steps/Subteam:
We need abstractions or guidelines to make implementing alt input for "groups" of components easier. We may improve GroupSortInteraction. Or we may create a new library that can be used for these sorts of designs. It will involve reviewing sims like membrane-transport, build-an-atom, forces-and-motion-basics, and GroupSortInteraction and its usages.
This was initially discussed during Retro on 10/30/25:
Then follow at Developer Meeting on 11/7/25: