Status: FAIL | Duration: 54ms | Subtests: 1/3 | Open test on wpt.live | wpt.fyi
Data from commit:
a50cb89 wpt: run reference-named files which are themselves tests (#836) (2026-09-03)
| Subtest | Status | Message |
|---|---|---|
| scroll properties for elements with css zoom | PASS | |
| scroll{Width, Height} | FAIL | assert_equals: scrollHeight expected 1000 but got 250 |
| scroll{Top, Left} | FAIL | assert_equals: scrollTop after scrollTo expected 500 but got 125 |
/css/cssom-view/scroll-zoom.html
<!DOCTYPE html> <title>scroll properties for elements with css zoom</title> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="author" title="Yotam Hacohen" href="mailto:yotha@chromium.org"> <link rel="author" title="Google" href="http://www.google.com/"> <link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-element-scroll"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <head> <style> .container { height: 100px; width: 100px; overflow: scroll; } .content { height: 250px; width: 250px; background-image: linear-gradient(red, yellow); } #x4_zoom_container { zoom: 4; } </style> </head> <body> <div class="container" id="no_zoom_container"> <div class="content"></div> </div> <div class="container" id="x4_zoom_container"> <div class="content"></div> </div> <div class="container" id="container_with_zoomed_content"> <div class="content" style="zoom: 2;"></div> </div> <div style="zoom: 2;"> <div class="container" id="scroller_in_zoomed_element"> <div class="content"></div> </div> </div> <script> setup(() => { window.noZoom = document.getElementById("no_zoom_container"); window.withZoom = document.getElementById("x4_zoom_container"); window.scrollerWithZoomContent = document.getElementById("container_with_zoomed_content"); window.scrollerInZoomedElement = document.getElementById("scroller_in_zoomed_element"); }); test(function() { assert_true(!!noZoom, "no zoom target exists"); assert_true(!!withZoom, "zoom target exists"); }); test(function() { // We remove zoom effects for scroll height and scroll width so values // should be same for elements with and without zoom // However scroll values should be changed by zoom on content assert_equals(noZoom.scrollHeight, withZoom.scrollHeight, 'scrollHeight'); assert_equals(noZoom.scrollWidth, withZoom.scrollWidth, 'scrollWidth'); assert_equals(noZoom.scrollHeight*2, scrollerWithZoomContent.scrollHeight, 'scroll height for zoomed content'); assert_equals(noZoom.scrollWidth*2, scrollerWithZoomContent.scrollWidth, 'scroll width for zoomed content'); assert_equals(noZoom.scrollHeight, scrollerInZoomedElement.scrollHeight, 'scroll height for scroller in zoomed element'); assert_equals(noZoom.scrollWidth, scrollerInZoomedElement.scrollWidth, 'scroll width for scroller in zoomed element'); }, `scroll{Width, Height}`); test(function() { assert_equals(noZoom.scrollTop, 0, 'scrollTop should be 0'); assert_equals(noZoom.scrollLeft, 0, 'scrollLeft should be 0'); assert_equals(noZoom.scrollTop, withZoom.scrollTop, 'scrollTop'); assert_equals(noZoom.scrollLeft, withZoom.scrollLeft, 'scrollLeft'); noZoom.scrollTo(noZoom.scrollWidth / 2, noZoom.scrollHeight / 2); withZoom.scrollTo(withZoom.scrollWidth / 2, withZoom.scrollHeight / 2); assert_not_equals(noZoom.scrollTop, 0, 'scrollTop should not be 0'); assert_not_equals(noZoom.scrollLeft, 0, 'scrollLeft should not be 0'); assert_equals(noZoom.scrollTop, withZoom.scrollTop, 'scrollTop after scrollTo'); assert_equals(noZoom.scrollLeft, withZoom.scrollLeft, 'scrollLeft after scrollTo'); noZoom.scrollBy(2, 2); withZoom.scrollBy(2, 2); assert_equals(noZoom.scrollTop, withZoom.scrollTop, 'scrollTop after scrollBy'); assert_equals(noZoom.scrollLeft, withZoom.scrollLeft, 'scrollLeft after scrollBy'); }, `scroll{Top, Left}`); </script> </body>