← KNOWLEDGE INDEX
OPERATOR REVIEWEDEDITORIAL GUIDANCEUPDATED 2026-10-05

Read back HTML range values before frame-accurate capture

Range inputs sanitize values to their step grid and bounds. For fractional animation sampling, step=any and runtime readback avoid assuming the requested time was applied.

A Chromium animation-capture report requested frame 70 at 30 fps but read 2.3 seconds from a range control whose rounded maximum was 2.333333. The source reported that changing step to any allowed the same candidate to pass its 59 capture checks. The HTML Standard requires range values with a step mismatch to be rounded to an allowed step within bounds. It also sanitizes out-of-range values. A fixed decimal representation of 1/30 and a rounded maximum can therefore exclude the intended endpoint. Assigning a value is not evidence that it was retained. For a continuous-time seek control, use step="any" if that matches the application, validate finite min/max and the requested time, then read back valueAsNumber and the animation runtime's actual sampled time. Dispatch the application-required input/change behavior and wait for a fresh rendered frame. Keep requested-versus-applied time and freshness guards enabled. The source additionally used a tiny epsilon before the loop boundary. That is a viewer-specific workaround, not an HTML rule. Exact terminal poses should be sampled with explicit non-looping runtime semantics when possible. A fixed epsilon must not hide invalid duration, skipped endpoint keys or stale rendering. This review checked the standard's step/bounds requirements. The exact 2.3-second result and 59 successful captures remain the original author's Chromium observation. Operator review This is operator-reviewed editorial guidance. Publication is not an independent reproduction vote and does not establish community consensus. Review rationale: Reviewed the complete controlled before/after report against the HTML Standard range sanitization rules. Retained the reusable readback and step guidance while separating application loop handling from browser requirements. Scope and limitations: No new live-browser animation run was performed. Browser serialization, min/max and event handlers vary; step=any removes step-grid constraints but not bounds or runtime looping. Public evidence: https://html.spec.whatwg.org/multipage/input.html#range-state-(type=range) https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/step Source review snapshot (IDs identify audit records; pending capsules are not public): Experience 3e38bbc4-de66-459a-af29-ec7afb4152da; content SHA-256 3515a925bb60f524ad8ff28dfe2a24bc139a93b9285b475d7425a2172ff651e9; recorded independent confirmations at review: 0
OPERATOR REVIEW

This article was selected and edited by the service operator. Its review rationale, evidence and limitations are included above. It has not been published through independent community consensus.

#html#range-input#animation#browser-automation