Repository navigation
spec(AST-094): a thumb that sets a value takes no wheel or trackpad scroll (FR43) - #8905
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
AI review status for this pull request.
|
There was a problem hiding this comment.
This pull request changes normative text in the current spec:AST-094 record (FR43's thumb exception, DEC-23 and the new FR43 verification state), so approval waits on an engineering owner deciding whether a control's thumb, such as Slider's, takes no wheel or trackpad scroll. Any engineering owner, including the author, records that decision by commenting /approve-spec 9c7dc36a12edce1529dfcc7ef82580a93522b839 on this pull request. Two small fixes in the same record are also needed:
- FR43's verification row adds the slider-thumb state but names no failure for it, such as a wheel or trackpad scroll over a control's thumb that changes its value or does not reach the scroll under it.
- DEC-23 should say it narrows DEC-21's wheel and trackpad mapping for a pan, and "stays the page's" would read more precisely as the native scroll under the thumb.
[Automated review]
| | FR41 | Browser tests with real touch input (`spec:AST-013` FR10) | a tap; a long press on a ContextMenu trigger, a DropdownMenu trigger the caller renders, a row with a context menu, and a slider thumb; a long press on a checkbox row's label and on plain text; a cancelled press; mouse and keyboard selection; a pen long press; a mouse long press, which makes no context request | a tap that selects, a hold with an action that starts a selection or callout, a label or plain text whose long press does not select natively, a suppression that outlives the press, or a change to native selection elsewhere or to mouse, keyboard, or assistive-technology selection fails | | ||
| | FR42 | Default-theme geometry tests under a coarse and a fine pointer, and hit-testing between adjacent targets | every component at phone width with a finger and with a mouse; a dense toolbar; a chip and its remove button; a Switch beside a label link | a default-theme box that grows under touch or at phone width other than with its text, or, where no component or module record sets the hit area, a touch target under 44 px where neighbors allow it or a hit area that overlaps a neighbor's target, fails | | ||
| | FR43 | Browser tests with a mouse, a trackpad, a pen, a finger, and the keyboard, and resource counts | a pan by drag and by wheel; a ctrl-wheel pinch; a long press, a right click, and Shift+F10; a mouse press; a handle drag; a row swipe with a mouse and a trackpad; a component with no gesture | a gesture missing under a mouse or pen, a mouse-drag swipe action, a pen pinch, an edge pan under a mouse, a trackpad, or a pen, a press delay under a fine pointer, an idle listener in a component with no gesture, or added stylesheet bytes, fails | | ||
| | FR43 | Browser tests with a mouse, a trackpad, a pen, a finger, and the keyboard, and resource counts | a pan by drag and by wheel; a slider's thumb under a wheel and a trackpad scroll; a ctrl-wheel pinch; a long press, a right click, and Shift+F10; a mouse press; a handle drag; a row swipe with a mouse and a trackpad; a component with no gesture | a gesture missing under a mouse or pen, a mouse-drag swipe action, a pen pinch, an edge pan under a mouse, a trackpad, or a pen, a press delay under a fine pointer, an idle listener in a component with no gesture, or added stylesheet bytes, fails | |
There was a problem hiding this comment.
The new state has no failure entry. The row names a failure for each of FR43's other gesture exceptions, but none for a thumb whose value moves under a scroll, and "a gesture missing under a mouse or pen" can be read as failing the intended no-wheel thumb. Consider adding "a wheel or trackpad scroll over a control's thumb that changes its value, or that does not reach the scroll under it" to the failure column.
| neighbor's target. On the web, a pan also | ||
| takes wheel and trackpad scrolling; a pinch takes a ctrl-wheel; one shared | ||
| takes wheel and trackpad scrolling, except a control's thumb, such as a | ||
| slider's, which takes none, so a scroll over it stays the page's (DEC-23); |
There was a problem hiding this comment.
"stays the page's" reads loosely for a slider inside a scrolling sheet, which hands its wheel to that sheet first (AST-025 FR14). "Goes to the scroll under it" would say what is meant.
| retuning, which a theme does through the knobs; DEC-11's rejected alternative, public | ||
| per-component roles, stays rejected. | ||
|
|
||
| ### DEC-23 — A control's thumb takes no wheel |
There was a problem hiding this comment.
DEC-21 still maps "wheel and trackpad scrolling for a pan" with no exception. One sentence here, such as "This narrows DEC-21's wheel and trackpad mapping for a pan", keeps the two decisions consistent, the way DEC-15 names DEC-11.
|
Posted by Cindy's agent on her behalf. Current records already decide this, so it can be approved once DEC-23 cites its basis. As written, FR43 would let a page scroll passing over a slider change its value. That would be a fine-pointer behavior change nobody decided:
|
|
Done in ddadeef: DEC-23 now records itself as a consistency decision on |
There was a problem hiding this comment.
Approval of this pull request waits on an engineering owner: it changes normative text in the current spec:AST-094 record (FR43's exception for a thumb that sets a value, DEC-23 and the new FR43 verification state), and no exact-head spec-owner approval exists yet. Any engineering owner, including the author, records that decision by commenting /approve-spec <full head SHA> with the full SHA of the head they approve, and a new commit needs a new approval. One fix in the same record is still needed, so making it first saves an approval round:
- DEC-23's "(
spec:AST-017FR59, FR41)" reads, in this record's citation style, as AST-017's FR41 (release artifacts); "(spec:AST-017FR59; FR41)" cites AST-094 FR41 as intended.
[Automated review]
| A consistency decision: a thumb that sets a value, a slider's or a switch's | ||
| where it pans, takes no wheel or trackpad scroll, so a scroll over it goes to | ||
| the scroll under it and never changes the value (FR43). Touch work keeps | ||
| released mouse behavior (`spec:AST-017` FR59, FR41), and a native range input |
There was a problem hiding this comment.
In this record a claim list after another record's id belongs to that record (FR43's spec:AST-057 AR2, DEC-7; FR25's spec:AST-017 DEC-23 and FR3), so this cites AST-017's FR41, "Release artifacts use closed schemas and invent no fields", rather than AST-094 FR41. FR41 itself switches back with a semicolon, as in its own spec:AST-017 FR59; DEC-9:
| released mouse behavior (`spec:AST-017` FR59, FR41), and a native range input | |
| released mouse behavior (`spec:AST-017` FR59; FR41), and a native range input |
…R43, DEC-23) FR43 gives every pan wheel and trackpad scrolling, with no exception, so a slider's thumb, which tracks a drag through a pan, would read a page scroll passing over it as a change of value. FR43 now excepts a control's thumb: a scroll over it stays the page's. DEC-23 records why, and FR43's verification row names the case. meta#8669 is the implementation.
…nd a scroll goes to the scroll under the thumb FR43's verification row names the failure for its new state: a scroll over a control's thumb that changes its value or does not reach the scroll under it. DEC-23 says it narrows DEC-21's wheel and trackpad mapping for a pan. A scroll over the thumb goes to the scroll under it, which inside a scrolling sheet is the sheet, not the page.
…EC-1, scoped to a thumb that sets a value DEC-23 cites its basis: touch work keeps released mouse behavior (spec:AST-017 FR59, FR41), and a native range input ignores the wheel (DEC-1). FR43's exception and DEC-23 cover only a thumb that sets a value, a slider's or a switch's where it pans.
…itter reads the trackpad's phases (FR43, DEC-24) Sheets share touch's rubber band on form and required sheets, the pager moves at most one page per swipe, and a row follows the fingers and only closes within one gesture.
…es; BottomSheet line states the finger gap
519bc3e to
a0bf771
Compare
|
/approve-spec a0bf771 |
Exact decision needed
This comes from Astryx's UIKit-parity work (
spec:AST-094), which brings iOS's touch behavior to the web components. FR43 said a pan takes wheel and trackpad scrolling alike. Read literally, a few quick mouse-wheel notches would move or close a sheet, and a page scroll that passes over a slider would change its value. Two answers are needed: which scroll input drives a pan, given that the web reports no trackpad contact or phase, and whether a thumb that sets a value takes any. Slider's every-pointer change, #8669, needs the second.Existing authority searched
FR3, FR19, FR36, FR37, FR41, FR43, DEC-1 and DEC-21 in
spec:AST-094;spec:AST-017FR59;spec:AST-057DEC-7;component:Slider;component:BottomSheet; and the gesture host's per-recognizer scroll types. Touch work keeps released mouse behavior (AST-017 FR59, AST-094 FR41), and native parity (DEC-1) matches a range input, which ignores the wheel. No record told a trackpad from a mouse wheel or said where a trackpad gesture starts and ends. All 51 other open pull requests that edit AST-094 were checked at this head, and none changes FR43, DEC-23 or DEC-24.Decision
formorrequiredsheet stretches on FR3's rubber band and springs back; aninfosheet closes on a flick or past its close distance; a mouse wheel never moves a sheet.wheelDelta(Chromium and WebKit). Elsewhere every scroll counts as a mouse wheel's.Rejected alternatives
Claim scope and non-goals
In scope: which scroll input a pan takes and where a trackpad gesture starts and ends; the surfaces that follow it (BottomSheet, the shared pager, swipe rows); and a thumb that sets a value. Touch input, a pinch's ctrl-wheel, and keyboard and focus behavior stay outside this decision.
Evidence and implementation relationship
Writing rubric results
component:BottomSheetline under affected records names the finger's one-for-one drag below rest as an implementation gap.Scope
Validation
Local gates at a0bf771:
pnpm check:knowledge(records aligned), Prettier,git diff --check, andpnpm check:repo.