Name the table's local after the class it applies, and let a broken chain show itself
CI / full-gate (push) Successful in 2m51s

This commit is contained in:
2026-09-09 14:18:36 +02:00
parent 4ae9326741
commit 098359e298
7 changed files with 20 additions and 19 deletions
+3 -3
View File
@@ -282,7 +282,7 @@ Revisit only if the stated reason stops holding.
`min-height: 100dvh`, not a `100dvh` box with `overflow: hidden`: the sidebar is `position: sticky`
at full height and the topbar sticks with it, so the nav stays reachable — on a narrow screen the
hamburger is the only way into it, and with no script a long page would otherwise strand the reader.
Two things only the document scroller gets: **keyboard paging** unconditionally (Space, PgDn and
Two things only the document scroller gets: **keyboard paging** unconditionally (Space, PgDn and
End reach a bounded region only once focus is inside it, which without script needs a focusable
descendant) and **scroll restoration** on back/forward. The inverse default clipped a page silently
in every engine — nothing in a test or a console says content is unreachable below the fold.
@@ -293,8 +293,8 @@ Two things only the document scroller gets: **keyboard paging** unconditionally
takes that height with **`.scroll-region`** and carries the flex chain down to it, because only the
page knows its own tree. The shell must never go looking through a page for a component it
recognises — a rule keyed on `.table-wrap` works for a table the content slot holds directly and
silently clips one nested any deeper. `data-table` takes `fills: true` for exactly this, since its
wrapper is host markup a page cannot put a class on. The `visual.spec.ts` scroll test presses **End** rather than sending a
silently clips one nested any deeper. `data-table` takes `scrollRegion: true` for exactly this, since
its wrapper is host markup a page cannot put the class on itself. The `visual.spec.ts` scroll test presses **End** rather than sending a
wheel event (Firefox's synthetic wheel does not reach the document) and rather than
`scrollIntoView`, which a script can apply to an overflow-hidden box that no reader can scroll.
- **`ICON_NAMES` (`src/ui/icons.ts`) is a host-owned registry, not a frozen plugin contract**, so it