Skip to content

Sliders in a page: a range is a slider, and two-thumb sliders work (CHALLENGES 319–320) - #211

Merged
lana-20 merged 2 commits into
mainfrom
web-range-slider
Oct 13, 2026
Merged

lana-20 merged 2 commits into
mainfrom
web-range-slider

Conversation

@lana-20

@lana-20 lana-20 commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Needs mobiumdev/mobium-app#28 (merged) for the Slider Demo's new rows.

CHALLENGES 319 — a web <input type="range"> is a slider. map printed one as 50 (input) and app_fill typed into it (fill 0.2 was clamped and blamed on the page). Now it maps by its label as (slider, 50), app_fill takes a position from 0 to 1 — the one rule for every slider — set from the page's own min, max and step so it lands exactly, and app_type is refused naming app_fill. From the native side, Android's WebView draws it as a seek bar whose text is its label and which reports no progress; it was mapped as SeekBar valued by its label, and now keeps its label as its name and is filled through the page.

CHALLENGES 320 — two-thumb sliders as pages build them. Two ARIA sliders were not in map at all; now they map by label with aria-valuetext/aria-valuenow, and app_fill moves one to a position with its arrow keys, reading the value back after each. Two overlaid ranges: filling the maximum below the minimum moved the minimum and reported success, because the page gives way by focus and the fill never focused a thumb; a range is now focused first, and a crossing fails as not_confirmed, as a thumb the page stops does.

docs/checks/slider-ios.sh (new) asserts every kind on iOS — plain view refused naming a drag (318), adjustable refused naming a drag (234), web range, Price and Hours — 3 of 3 on the iPhone 17 Pro simulator, failing at the range before 319 and at the ARIA sliders before 320. slider.sh gains the web rows and a wait for the screen it maps (a race that passed by timing): 3 of 3 on the Android 15 emulator. Unit tests for each answer; make ci green.

…n (CHALLENGES 319)

map printed MobiumApp's <input type="range"> as "50 (input)", named by its
value, and app_fill typed into it: fill 0.2, the position every native
slider takes, was clamped to a step and failed as "the page rewrote or
refused the value". A range is now a slider: map names it by its label and
reads its value as its state, app_fill takes a position from 0 to 1 and sets
the value from the page's own min, max and step — so it lands exactly, where
a native iOS slider cannot (219) — and app_type is refused naming app_fill.

From the native side, Android's WebView draws the range as a SeekBar whose
text is its label and which reports no progress; it was mapped as "SeekBar"
valued by its label. A seek bar inside a WebView keeps its text as its name,
and app_fill on it goes through the page.

docs/checks/slider-ios.sh asserts every kind of slider on MobiumApp's Slider
Demo on iOS (318, 234, 319): 3 of 3 on the simulator, failing at the range
with main's binary. slider.sh gains the web range on Android and a wait for
the screen it maps, a race that had passed by timing (233): 3 of 3 on the
emulator.
…eys, a range focused before it moves (CHALLENGES 320)

On MobiumApp's Slider Demo, Hours — two role="slider" thumbs on a drawn
track — was not in map: the page's element list had no [role=slider]. And
Price — two ranges on one track — moved the minimum when the maximum was
filled below it, reporting the maximum landed: the page gives way by which
thumb has focus, and the fill never focused one. A range is now focused
before it moves, and a crossing fails as not_confirmed. An ARIA slider maps
by its label with aria-valuetext or aria-valuenow as its value, and app_fill
takes a position of aria-valuemin to aria-valuemax and moves it with its
arrow keys, reading aria-valuenow back after each; stopped by the page short
of the value, it says so, and one whose keys move nothing is refused naming
a drag. slider-ios.sh and slider.sh assert both: 3 of 3 on the simulator
and the emulator, failing at the ARIA sliders with the binary before.
@lana-20
lana-20 merged commit d1248c3 into main Oct 13, 2026
3 checks passed
@lana-20
lana-20 deleted the web-range-slider branch October 13, 2026 22:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant