Repository navigation
Describe controls scrolled out of a scroll box as off-screen - #1352
giordano-lucas wants to merge 3 commits into
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 3 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
[Medium impact] The reviewed changes appear safe to merge.
|
|
Warning Your comment is too long (maximum is 65536 characters), so the coverage report was not added. See the job log for how to reduce it.
|
Off-screen controls were found against the page viewport only. A field scrolled out of a small scroll box in view was neither in view nor below the fold, so it vanished from the observation. Controls above or below the box of a scrollable ancestor are now described like the controls below the fold, without an id until scrolled to. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6af70d9 to
dbafbcf
Compare
|
@greptile review |
|
@greptile review |
What
observe()describes the controls above and below the viewport without an id, so a reader knows they exist and can scroll to them. That only looked at the page viewport. A control scrolled out of a small scroll box that is itself in view was neither in view nor below the fold, so it vanished. On uitestingplayground.com/overlapped, "Subject" sits below the visible part of a 100 pxoverflow-y: scrollbox and was missing from the observation.Controls whose center is above or below the box of an ancestor that scrolls vertically (and that they don't escape by positioning) are now described like the controls below the fold: no id, offered once scrolled into view. Only vertical scrolling counts, as for the page. Boxes that clip without scrolling keep hiding what they clip, as before.
Text rows scrolled out of a box (not controls) are unchanged.
Example
Before (main), the Subject field below the box's visible area is missing:
After, it is described without an id, like a control below the fold:
Tests
tests/browser/test_dom_offscreen_controls.py: 9 passed on Python 3.15.1 with locked Patchright 1.64.1. Covers scrolling shadow hosts, controls behind both borders of plain and scaled scroll boxes, and becoming actionable after scrolling.Bench
The bench ran before the last rebase, on a local build of
feat-session-actwith the coverage tasks and all the observe fixes of this series merged (one build; each task below exercises one fix). Base is the same build without the fixes. Jev, 2 runs each, base and head back to back, concurrency 2, load average 28–40 on a shared machine.uitap-overlapped🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.