···197197- Layer tree and damage tracking for minimal repaints
198198- Memory profiling and optimization pass
199199200200+## Phase 16: Forms & User Input
201201+202202+**Goal:** Support HTML forms so users can interact with web pages.
203203+204204+- HTML form element parsing: `<form>`, `<input>`, `<textarea>`, `<select>`/`<option>`/`<optgroup>`, `<button>`, `<label>`, `<fieldset>`/`<legend>`
205205+- DOM interfaces: `HTMLFormElement`, `HTMLInputElement`, `HTMLTextAreaElement`, `HTMLSelectElement`, `HTMLButtonElement`, `HTMLLabelElement`
206206+- Input types: text, password, checkbox, radio, submit, reset, hidden, number, email, url, search, tel
207207+- Form control layout: replaced/atomic inline-level elements, intrinsic sizing
208208+- Form control rendering: paint native-style text inputs, buttons, checkboxes, radio buttons, select dropdowns
209209+- Text editing: cursor positioning, text selection, keyboard input, clipboard (cut/copy/paste)
210210+- Focus management: tab order (`tabindex`), focus/blur events, `:focus`/`:focus-visible` pseudo-classes, active element tracking
211211+- Checkbox and radio button interaction: toggle state, radio group mutual exclusion
212212+- Select dropdown widget: popup menu rendering, keyboard navigation, option selection
213213+- HTML5 constraint validation: `required`, `pattern`, `min`/`max`/`step`, `minlength`/`maxlength`, `validity` API, `:valid`/`:invalid` pseudo-classes
214214+- Form submission: GET/POST, `application/x-www-form-urlencoded`, `multipart/form-data` encoding, submit event
215215+216216+**Test milestone:** Interactive form on a real web page (e.g., search box submission).
217217+200218---
201219202220## Test Suites