Generate anonymous table cells for non-table-internal children of tables - #781
Open
nicoburns wants to merge 1 commit into
Open
Generate anonymous table cells for non-table-internal children of tables#781nicoburns wants to merge 1 commit into
nicoburns wants to merge 1 commit into
Conversation
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787604682-table-anonymous-cells
branch
from
August 24, 2026 22:41
0011bfd to
4812a18
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1787604682-table-anonymous-cells
branch
from
August 24, 2026 22:54
4812a18 to
7f246ec
Compare
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.
Summary
Fixes the gov.uk homepage search box being unclickable.
Root cause: gov.uk's search component wraps the
<input>in plain block<div>s that are direct children of adisplay: tableelement. Incollect_table_cells, children withDisplayInside::Flow/FlowRoot/Flex/Gridwere silently ignored ("probably a table caption"), so they were never added as layout children of the table grid. The input's wrapper (and the input) therefore got no layout at all —final_layout()stayed0x0— andNode::hit_innerrejects zero-sized nodes, making the search box impossible to click.Fix: per CSS 2.2 §17.2.1, non-table-internal children of a table generate an anonymous table cell around them.
collect_table_cellsnow treats such children like table cells (as their own anonymous single-span cell in the current row, bumping*rowfrom 0 to 1 when they occur before any row), while skipping cell-only handling (colspan/rowspanattributes, border-collapse border zeroing, margin zeroing, first-cell-border capture) for non-cell children.Verified against https://www.gov.uk: the search input now lays out at its rendered size and hit-testing at its center returns the input node; the rendered screenshot is unchanged/correct.
Regression tests added in
tests/blitz-tests/tests/table_anonymous_cell.rs(layout + hit-test, and click-to-focus for an input inside a table's block child).Link to Devin session: https://dioxus.staging.devinenterprise.com/sessions/e0b69caedcd34e829ff73fb7ff216a75
Open in Devin Desktop: https://dioxus.staging.devinenterprise.com/desktop/session/e0b69caedcd34e829ff73fb7ff216a75?variant=devin-insiders
Requested by: @nicoburns
WPT results
71 newly passing, 19 newly failing (net +52).
Full diff (90 changed tests)
Generated by the WPT workflow.