Balance table parts outside their context - #487
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Table parts that arrive inside cell content currently imply a second table instead of clearing back to the table already in scope. Related transitions leave a column group open before a row, open an orphan implied table inside a paragraph, and let
</template>stop at table structure inside the template.Return table parts to the nearest emitted table in table scope before implying wrappers, prepare orphan implied tables through normal containment, and give template ends a scope that crosses table structure while retaining raw-text feature barriers. Formatting state cleared by a template does not resume outside it. Dropped or renamed logical tables keep the prior behavior because they do not establish an output table context.
Regression coverage includes nested tables, two depths of pushed-out content, rows after columns, paragraphs around orphan parts, templates and raw-text feature barriers, SVG/MathML and integration points, dropped/renamed policies,
HtmlChangeReporter, browser-tree equality, sanitizer idempotence, event balance, and nesting limits 0–5.Validation:
./mvnw clean verifywith Homebrew OpenJDK 11, 17, 21, and 25 after rebasing onto the The element at the nesting limit is written but its end tag is not #485 fix-Djunit.seed=483,342, and20260911Closes #483