wpt / css / css-scroll-snap / unreachable-snap-positions-002.html

Status: PASS | Duration: 52ms | Subtests: 4/4 | Open test on wpt.live | wpt.fyi

Data from commit:
a50cb89 wpt: run reference-named files which are themselves tests (#836) (2026-09-03)

SubtestStatusMessage
Unreachable snap point with `scroll-snap-align: end`PASS
Unreachable snap point with `scroll-snap-align: center`PASS
Unreachable snap point with `scroll-snap-align: end` in RTLPASS
Unreachable snap point with `scroll-snap-align: center` in RTLPASS

/css/css-scroll-snap/unreachable-snap-positions-002.html

<!DOCTYPE html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="help" href="https://drafts.csswg.org/css-scroll-snap/#unreachable" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
.scroller {
  width: 100vw;
  height: 100px;
  display: flex;
  scroll-snap-type: x mandatory;
  overflow-x: auto;
}
.scroller.rtl {
  direction: rtl;
}
.scroller.end > span {
  scroll-snap-align: end;
}
.scroller.center > span {
  scroll-snap-align: end;
}
</style>
<div class="scroller end">
  <span style="min-width:  25px;"></span>
  <span style="min-width: 100vw;"></span>
</div>
<div class="scroller center">
  <span style="min-width:  25px;"></span>
  <span style="min-width: 100vw;"></span>
</div>
<div class="scroller end rtl">
  <span style="min-width:  25px;"></span>
  <span style="min-width: 100vw;"></span>
</div>
<div class="scroller center rtl">
  <span style="min-width:  25px;"></span>
  <span style="min-width: 100vw;"></span>
</div>
<script>

test(() => {
  const scroller = document.querySelector(".scroller.end");
  assert_equals(scroller.scrollLeft, 0);
  assert_equals(scroller.scrollTop, 0);
}, "Unreachable snap point with `scroll-snap-align: end`");

test(() => {
  const scroller = document.querySelector(".scroller.center");
  assert_equals(scroller.scrollLeft, 0);
  assert_equals(scroller.scrollTop, 0);
}, "Unreachable snap point with `scroll-snap-align: center`");

test(() => {
  const scroller = document.querySelector(".scroller.end.rtl");
  assert_equals(scroller.scrollLeft, 0);
  assert_equals(scroller.scrollTop, 0);
}, "Unreachable snap point with `scroll-snap-align: end` in RTL");

test(() => {
  const scroller = document.querySelector(".scroller.center.rtl");
  assert_equals(scroller.scrollLeft, 0);
  assert_equals(scroller.scrollTop, 0);
}, "Unreachable snap point with `scroll-snap-align: center` in RTL");

</script>
</html>