fw-10 step 03 — Price the right-hand column

Goal

Virtualization is a trade, and most engineers price only one side.

Tasks

  1. Test each: find-in-page, screen-reader navigation, anchor links / scrollIntoView, tab order, text selection across rows, print, browser scroll restoration. Record which break.
  2. Implement aria-setsize / aria-posinset and an appropriate grid role. Verify with a real screen reader, not by inspection.
  3. DOM growth leak: recycle rows incorrectly so the DOM grows; find it in a heap snapshot.
  4. Compare with the platform. Build the same list using content-visibility: auto + contain-intrinsic-size, with every row in the DOM. Measure initial layout, memory, and scroll smoothness against your virtualizer. Note which platform behaviours it preserves.
  5. Write the recommendation: at what row count, for what content, would you choose each?

Done when

  • A table of what breaks, with mitigation or "none reliable"
  • content-visibility comparison measured at two list sizes
  • A written threshold recommendation you would defend in review