Fix navigation issues when semantic tree is not aligned with syntactic tree #1325
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The PR fixes a number of issues for the explorer, when the semantic structure is not aligned with the syntactic tree. As example consider the following equation with the
empheqpackage:In the current version the left brace is a "child" of the first row. Conversely, the right brace has the first row as "parent". The issue is that semantic children do not necessarily have to live in the DOM tree rooted in their semantic parent. Likewise, the semantic root is not necessarily the first speech element in the DOM. We now compute:
rootNodeby using the root id given in thedata-semantic-structureelementfirstChildby iterating throw thedata-semantic-ownslist until we find a node which hasdata-speech-nodeparentNode(inmoveUp) by looking for the actual parent id in the tree.In addition the
nextSiblingandprevSiblingmethods are fixed to actually ignore elements that are not speech nodes. As an example consider themc^2above in MathSpeak, where the elided times is now ignored.