Files
rust_browser/tests/goldens/fixtures/276-insertion-mode-transitions.html
Zachary D. Rowitsch d5234cf546 Implement HTML5 tree builder insertion modes with code review fixes (§13.2.6)
Refactor tree_builder.rs into module directory with 7 files implementing all
23 insertion modes per WHATWG HTML §13.2.6.4 as an explicit state machine.
Includes active formatting elements list with Noah's Ark clause, scope
checking for all 5 scope types, context-sensitive fragment parsing, and
iterative token reprocessing via ProcessResult enum.

Code review fixes: fix formatting element end tag truncation bug (save
node_id before truncate), replace manual element creation in catch-all
StartTag with insert_element_maybe_self_closing, add skip_next_newline for
pre/listing/textarea per spec, add QuirksMode to Document with basic DOCTYPE
detection, refactor all 23 handlers from Token to &Token to eliminate clone
per dispatch, fix self_closing handling for pre/listing/textarea/plaintext,
improve golden test 276 fixture coverage and foster-parent test assertion.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-14 22:12:19 -04:00

23 lines
671 B
HTML

<!DOCTYPE html>
<html>
<head>
<title>Mode Transitions</title>
<style>body { margin: 8px; } table { border: 1px solid black; } td, th { padding: 4px; } h1, h2 { margin: 4px 0; }</style>
</head>
<body>
<h1>Title<h2>Subtitle</h2>
<p>Before table</p>
<table>
<caption>Table Caption</caption>
<colgroup><col></colgroup>
<thead><tr><th>Header</th></tr></thead>
<tbody><tr><td>Cell 1</td><td>Cell 2</td></tr></tbody>
<tr><td><select><option>A</option><option>B</option></select></td><td>Plain</td></tr>
</table>
<p>Paragraph<div>Block splits paragraph</div></p>
<dl><dt>Term<dd>Definition<dt>Term 2<dd>Def 2</dl>
<ul><li>Item 1<li>Item 2</ul>
<p>After table</p>
</body>
</html>