Skip to content

Commit 072346f

Browse files
Use visual viewport instead of initial viewport in screenshot algorithm (#1951)
SHA: 1d4b691 Reason: push, by whimboo Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 59de6f6 commit 072346f

1 file changed

Lines changed: 33 additions & 20 deletions

File tree

index.html

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<!DOCTYPE html><html lang="en-us" data-issue-url="https://github.com/w3c/webdriver/" data-issue-param-milestone="Level 1"><head>
22
<meta charset="utf-8">
3-
<meta name="generator" content="ReSpec 35.6.1">
3+
<meta name="generator" content="ReSpec 35.8.0">
44
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
55
<style>
66
span.example-title{text-transform:none}
@@ -176,7 +176,7 @@
176176
.mdn .samsunginternet_android::before{background-image:url(https://www.w3.org/assets/logos/browser-logos/samsung-internet/samsung-internet.svg)}
177177
.mdn .webview_android::before{background-image:url(https://www.w3.org/assets/logos/browser-logos/android-webview/android-webview.png)}
178178
</style>
179-
<meta name="revision" content="cc4c0d2b52cc99b0d6c6d60fad8b481f51bffa33">
179+
<meta name="revision" content="1d4b69147a6b0e87f6d2402e608a1501113d3bf2">
180180
<meta name="description" content="WebDriver is a remote control interface
181181
that enables introspection and control of user agents.
182182
It provides a platform- and language-neutral wire protocol
@@ -289,15 +289,15 @@
289289
],
290290
"profile": "web-platform"
291291
},
292-
"gitRevision": "cc4c0d2b52cc99b0d6c6d60fad8b481f51bffa33",
293-
"publishISODate": "2026-02-06T00:00:00.000Z",
294-
"generatedSubtitle": "W3C Editor's Draft 06 February 2026"
292+
"gitRevision": "1d4b69147a6b0e87f6d2402e608a1501113d3bf2",
293+
"publishISODate": "2026-03-19T00:00:00.000Z",
294+
"generatedSubtitle": "W3C Editor's Draft 19 March 2026"
295295
}</script>
296296
<link rel="stylesheet" href="https://www.w3.org/StyleSheets/TR/2021/W3C-ED"></head><body data-cite="WEBIDL CSSOM-VIEW GEOMETRY-1 fileapi HTML INFRA URL WEBIDL DOM FETCH" class="h-entry"><div class="head">
297297
<p class="logos"><a class="logo" href="https://www.w3.org/"><img crossorigin="" alt="W3C" height="48" src="https://www.w3.org/StyleSheets/TR/2021/logos/W3C" width="72">
298298
</a></p>
299299
<h1 id="title" class="title">WebDriver</h1>
300-
<p id="w3c-state"><a href="https://www.w3.org/standards/types#ED">W3C Editor's Draft</a> <time class="dt-published" datetime="2026-02-06">06 February 2026</time></p>
300+
<p id="w3c-state"><a href="https://www.w3.org/standards/types#ED">W3C Editor's Draft</a> <time class="dt-published" datetime="2026-03-19">19 March 2026</time></p>
301301
<details open="">
302302
<summary>More details about this document</summary>
303303
<dl>
@@ -11692,12 +11692,12 @@ <h1 id="title" class="title">WebDriver</h1>
1169211692

1169311693
<p>Screenshots are a mechanism for providing
1169411694
additional visual diagnostic information.
11695-
They work by dumping a snapshot of the <a href="#dfn-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-viewport-4">initial viewport</a>'s
11695+
They work by dumping a snapshot of the <a href="#dfn-visual-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-visual-viewport-1">visual viewport</a>'s
1169611696
framebuffer as a lossless PNG image.
1169711697
It is returned to the <a href="#dfn-local-ends" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-local-ends-18">local end</a> as a Base64 encoded string.
1169811698

1169911699
</p><p>WebDriver provides the <a href="#dfn-take-screenshot" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-take-screenshot-2">Take Screenshot</a> <a href="#dfn-commands" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-commands-60">command</a>
11700-
to capture the <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/document-sequences.html#top-level-browsing-context" id="ref-for-index-term-top-level-browsing-contexts-28">top-level browsing context</a>'s <a href="#dfn-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-viewport-5">initial viewport</a>,
11700+
to capture the <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/document-sequences.html#top-level-browsing-context" id="ref-for-index-term-top-level-browsing-contexts-28">top-level browsing context</a>'s <a href="#dfn-visual-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-visual-viewport-2">visual viewport</a>,
1170111701
and a <a href="#dfn-commands" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-commands-61">command</a> <a href="#dfn-take-element-screenshot" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-take-element-screenshot-2">Take Element Screenshot</a>
1170211702
for doing the same with the visible region of an <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-element" id="ref-for-index-term-element-42">element</a>'s
1170311703
<a href="#dfn-bounding-rectangle" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-bounding-rectangle-4">bounding rectangle</a> after it has been <a href="#dfn-scrolls-into-view" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-scrolls-into-view-7">scrolled into view</a>.
@@ -11706,15 +11706,15 @@ <h1 id="title" class="title">WebDriver</h1>
1170611706
given a <a href="#dfn-bounding-rectangle" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-bounding-rectangle-5">rectangle</a>:
1170711707

1170811708
</p><ol>
11709-
<li><p>If either the <a href="#dfn-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-viewport-6">initial viewport</a>'s width or height
11709+
<li><p>If either the <a href="#dfn-visual-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-visual-viewport-3">visual viewport</a>'s width or height
1171011710
is 0 <a href="#dfn-css-pixels" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-css-pixels-11">CSS pixels</a>,
1171111711
return <a href="#dfn-error" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-error-272">error</a> with <a href="#dfn-error-code" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-error-code-245">error code</a> <a href="#dfn-unable-to-capture-screen" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-unable-to-capture-screen-1">unable to capture screen</a>.
1171211712

11713-
</p></li><li><p>Let <var>paint width</var> be the <a href="#dfn-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-viewport-7">initial viewport</a>'s width –
11713+
</p></li><li><p>Let <var>paint width</var> be the <a href="#dfn-visual-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-visual-viewport-4">visual viewport</a>'s width –
1171411714
<a href="#dfn-min" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-min-5">min</a>(<a href="#dfn-x-coordinate" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-x-coordinate-6">rectangle x coordinate</a>,
1171511715
<a href="#dfn-x-coordinate" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-x-coordinate-7">rectangle x coordinate</a> + <a href="#dfn-width-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-width-dimension-4">rectangle width dimension</a>).
1171611716

11717-
</p></li><li><p>Let <var>paint height</var> be the <a href="#dfn-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-viewport-8">initial viewport</a>'s height –
11717+
</p></li><li><p>Let <var>paint height</var> be the <a href="#dfn-visual-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-visual-viewport-5">visual viewport</a>'s height –
1171811718
<a href="#dfn-min" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-min-6">min</a>(<a href="#dfn-y-coordinate" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-y-coordinate-6">rectangle y coordinate</a>,
1171911719
<a href="#dfn-y-coordinate" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-y-coordinate-7">rectangle y coordinate</a> + <a href="#dfn-height-dimension" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-height-dimension-4">rectangle height dimension</a>).
1172011720

@@ -12230,7 +12230,7 @@ <h1 id="title" class="title">WebDriver</h1>
1223012230

1223112231

1223212232
<p>Although WebDriver does not define a primitive
12233-
to ascertain the visibility of an <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-element" id="ref-for-index-term-element-45">element</a> in the <a href="#dfn-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-viewport-9">viewport</a>,
12233+
to ascertain the visibility of an <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-element" id="ref-for-index-term-element-45">element</a> in the <a href="#dfn-viewport" class="internalDFN" data-link-type="dfn" id="ref-for-dfn-viewport-4">viewport</a>,
1223412234
we acknowledge that it is an important feature for many users.
1223512235
Here we include a recommended approach
1223612236
which will give a simplified approximation of an <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-element" id="ref-for-index-term-element-46">element</a>'s visibility,
@@ -12734,6 +12734,7 @@ <h1 id="title" class="title">WebDriver</h1>
1273412734
</li><li><dfn id="dfn-scrollintoviewoptions" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn"><a href="https://drafts.csswg.org/cssom-view/#dictdef-scrollintoviewoptions"><code>ScrollIntoViewOptions</code></a></dfn>
1273512735
</li><li><dfn id="dfn-logical-scroll-position-block" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn"><a href="https://drafts.csswg.org/cssom-view/#dom-scrollintoviewoptions-block">Logical scroll position "<code>block</code>"</a></dfn>
1273612736
</li><li><dfn id="dfn-logical-scroll-position-inline" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn"><a href="https://drafts.csswg.org/cssom-view/#dom-scrollintoviewoptions-inline">Logical scroll position "<code>inline</code>"</a></dfn>
12737+
</li><li><dfn id="dfn-visual-viewport" tabindex="0" aria-haspopup="dialog" data-dfn-type="dfn"><a href="https://drafts.csswg.org/cssom-view/#visual-viewport">visual viewport</a></dfn>
1273712738
</li></ul>
1273812739

1273912740
</dd><dd>The following terms are defined in [<cite><a class="bibref" data-link-type="biblio" href="#bib-mediaqueries-4" title="Media Queries Level 4">mediaqueries-4</a></cite>]:
@@ -13981,6 +13982,8 @@ <h1 id="title" class="title">WebDriver</h1>
1398113982
<a class="index-term" href="#dfn-visibility-hidden">Visibility state hidden</a>
1398213983
<span class="print-only">§E.</span></li><li>
1398313984
<a class="index-term" href="#dfn-visibility-visible">Visibility state visible</a>
13985+
<span class="print-only">§E.</span></li><li>
13986+
<a class="index-term" href="#dfn-visual-viewport">visual viewport</a>
1398413987
<span class="print-only">§E.</span></li><li>
1398513988
<a class="index-term" href="#dfn-wai-aria-role">WAI-ARIA role</a>
1398613989
<span class="print-only">§E.</span></li><li>
@@ -14281,7 +14284,7 @@ <h1 id="title" class="title">WebDriver</h1>
1428114284
<dl class="bibliography"><dt id="bib-accname-1.1">[accname-1.1]</dt><dd>
1428214285
<a href="https://www.w3.org/TR/accname-1.1/"><cite>Accessible Name and Description Computation 1.1</cite></a>. Joanmarie Diggs; Bryan Garaventa; Michael Cooper. W3C. 18 December 2018. W3C Recommendation. URL: <a href="https://www.w3.org/TR/accname-1.1/">https://www.w3.org/TR/accname-1.1/</a>
1428314286
</dd><dt id="bib-csp3">[CSP3]</dt><dd>
14284-
<a href="https://www.w3.org/TR/CSP3/"><cite>Content Security Policy Level 3</cite></a>. Mike West; Antonio Sartori. W3C. 6 February 2026. W3C Working Draft. URL: <a href="https://www.w3.org/TR/CSP3/">https://www.w3.org/TR/CSP3/</a>
14287+
<a href="https://www.w3.org/TR/CSP3/"><cite>Content Security Policy Level 3</cite></a>. Mike West; Antonio Sartori. W3C. 11 March 2026. W3C Working Draft. URL: <a href="https://www.w3.org/TR/CSP3/">https://www.w3.org/TR/CSP3/</a>
1428514288
</dd><dt id="bib-css-cascade-4">[CSS-CASCADE-4]</dt><dd>
1428614289
<a href="https://www.w3.org/TR/css-cascade-4/"><cite>CSS Cascading and Inheritance Level 4</cite></a>. Elika Etemad; Tab Atkins Jr. W3C. 13 January 2022. W3C Candidate Recommendation. URL: <a href="https://www.w3.org/TR/css-cascade-4/">https://www.w3.org/TR/css-cascade-4/</a>
1428714290
</dd><dt id="bib-css-device-adapt">[CSS-DEVICE-ADAPT]</dt><dd>
@@ -14321,11 +14324,11 @@ <h1 id="title" class="title">WebDriver</h1>
1432114324
</dd><dt id="bib-infra">[INFRA]</dt><dd>
1432214325
<a href="https://infra.spec.whatwg.org/"><cite>Infra Standard</cite></a>. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: <a href="https://infra.spec.whatwg.org/">https://infra.spec.whatwg.org/</a>
1432314326
</dd><dt id="bib-mediaqueries-4">[mediaqueries-4]</dt><dd>
14324-
<a href="https://www.w3.org/TR/mediaqueries-4/"><cite>Media Queries Level 4</cite></a>. Florian Rivoal; Tab Atkins Jr. W3C. 25 December 2021. CRD. URL: <a href="https://www.w3.org/TR/mediaqueries-4/">https://www.w3.org/TR/mediaqueries-4/</a>
14327+
<a href="https://www.w3.org/TR/mediaqueries-4/"><cite>Media Queries Level 4</cite></a>. Tab Atkins Jr.; Florian Rivoal. W3C. 19 February 2026. CRD. URL: <a href="https://www.w3.org/TR/mediaqueries-4/">https://www.w3.org/TR/mediaqueries-4/</a>
1432514328
</dd><dt id="bib-page-visibility">[PAGE-VISIBILITY]</dt><dd>
1432614329
<a href="https://www.w3.org/TR/page-visibility/"><cite>Page Visibility (Second Edition)</cite></a>. Jatinder Mann; Arvind Jain. W3C. 29 October 2013. W3C Recommendation. URL: <a href="https://www.w3.org/TR/page-visibility/">https://www.w3.org/TR/page-visibility/</a>
1432714330
</dd><dt id="bib-pointer-events">[POINTER-EVENTS]</dt><dd>
14328-
<a href="https://www.w3.org/TR/pointerevents/"><cite>Pointer Events</cite></a>. Jacob Rossi; Matt Brubeck. W3C. 4 April 2019. W3C Recommendation. URL: <a href="https://www.w3.org/TR/pointerevents/">https://www.w3.org/TR/pointerevents/</a>
14331+
<a href="https://www.w3.org/TR/pointerevents4/"><cite>Pointer Events</cite></a>. Patrick Lauke; Robert Flack. W3C. 25 February 2026. W3C Working Draft. URL: <a href="https://www.w3.org/TR/pointerevents4/">https://www.w3.org/TR/pointerevents4/</a>
1432914332
</dd><dt id="bib-promises-guide">[PROMISES-GUIDE]</dt><dd>
1433014333
<a href="https://www.w3.org/2001/tag/doc/promises-guide"><cite>Writing Promise-Using Specifications</cite></a>. Domenic Denicola. W3C. 9 November 2018. TAG Finding. URL: <a href="https://www.w3.org/2001/tag/doc/promises-guide">https://www.w3.org/2001/tag/doc/promises-guide</a>
1433114334
</dd><dt id="bib-rfc1928">[RFC1928]</dt><dd>
@@ -14359,7 +14362,7 @@ <h1 id="title" class="title">WebDriver</h1>
1435914362
</dd><dt id="bib-uax44">[UAX44]</dt><dd>
1436014363
<a href="https://www.unicode.org/reports/tr44/tr44-36.html"><cite>Unicode Character Database</cite></a>. Ken Whistler. Unicode Consortium. 27 August 2025. Unicode Standard Annex #44. URL: <a href="https://www.unicode.org/reports/tr44/tr44-36.html">https://www.unicode.org/reports/tr44/tr44-36.html</a>
1436114364
</dd><dt id="bib-ui-events">[UI-EVENTS]</dt><dd>
14362-
<a href="https://www.w3.org/TR/uievents/"><cite>UI Events</cite></a>. Gary Kacmarcik; Travis Leithead. W3C. 7 September 2024. W3C Working Draft. URL: <a href="https://www.w3.org/TR/uievents/">https://www.w3.org/TR/uievents/</a>
14365+
<a href="https://www.w3.org/TR/uievents/"><cite>UI Events</cite></a>. Xiaoqian Wu. W3C. 21 February 2026. W3C Working Draft. URL: <a href="https://www.w3.org/TR/uievents/">https://www.w3.org/TR/uievents/</a>
1436314366
</dd><dt id="bib-uievents-key">[UIEVENTS-KEY]</dt><dd>
1436414367
<a href="https://www.w3.org/TR/uievents-key/"><cite>UI Events KeyboardEvent key Values</cite></a>. Travis Leithead; Gary Kacmarcik. W3C. 22 April 2025. W3C Recommendation. URL: <a href="https://www.w3.org/TR/uievents-key/">https://www.w3.org/TR/uievents-key/</a>
1436514368
</dd><dt id="bib-unicode">[Unicode]</dt><dd>
@@ -14371,7 +14374,7 @@ <h1 id="title" class="title">WebDriver</h1>
1437114374
</dd><dt id="bib-wai-aria-1.2">[wai-aria-1.2]</dt><dd>
1437214375
<a href="https://www.w3.org/TR/wai-aria-1.2/"><cite>Accessible Rich Internet Applications (WAI-ARIA) 1.2</cite></a>. Joanmarie Diggs; James Nurthen; Michael Cooper; Carolyn MacLeod. W3C. 6 June 2023. W3C Recommendation. URL: <a href="https://www.w3.org/TR/wai-aria-1.2/">https://www.w3.org/TR/wai-aria-1.2/</a>
1437314376
</dd><dt id="bib-webdriver-bidi">[WebDriver-BiDi]</dt><dd>
14374-
<a href="https://www.w3.org/TR/webdriver-bidi/"><cite>WebDriver BiDi</cite></a>. James Graham; Alex Rudenko; Maksim Sadym. W3C. 28 January 2026. W3C Working Draft. URL: <a href="https://www.w3.org/TR/webdriver-bidi/">https://www.w3.org/TR/webdriver-bidi/</a>
14377+
<a href="https://www.w3.org/TR/webdriver-bidi/"><cite>WebDriver BiDi</cite></a>. James Graham; Alex Rudenko; Maksim Sadym. W3C. 17 March 2026. W3C Working Draft. URL: <a href="https://www.w3.org/TR/webdriver-bidi/">https://www.w3.org/TR/webdriver-bidi/</a>
1437514378
</dd><dt id="bib-webidl">[WEBIDL]</dt><dd>
1437614379
<a href="https://webidl.spec.whatwg.org/"><cite>Web IDL Standard</cite></a>. Edgar Chen; Timothy Gu. WHATWG. Living Standard. URL: <a href="https://webidl.spec.whatwg.org/">https://webidl.spec.whatwg.org/</a>
1437714380
</dd><dt id="bib-xpath">[XPATH]</dt><dd>
@@ -24012,9 +24015,7 @@ <h1 id="title" class="title">WebDriver</h1>
2401224015
</li><li>
2401324016
<a href="#ref-for-dfn-viewport-3" title="§ 12.5.1 Element Click">§ 12.5.1 Element Click</a>
2401424017
</li><li>
24015-
<a href="#ref-for-dfn-viewport-4" title="§ 17. Screen capture">§ 17. Screen capture</a> <a href="#ref-for-dfn-viewport-5" title="Reference 2">(2)</a> <a href="#ref-for-dfn-viewport-6" title="Reference 3">(3)</a> <a href="#ref-for-dfn-viewport-7" title="Reference 4">(4)</a> <a href="#ref-for-dfn-viewport-8" title="Reference 5">(5)</a>
24016-
</li><li>
24017-
<a href="#ref-for-dfn-viewport-9" title="§ C. Element displayedness">§ C. Element displayedness</a>
24018+
<a href="#ref-for-dfn-viewport-4" title="§ C. Element displayedness">§ C. Element displayedness</a>
2401824019
</li>
2401924020
</ul>
2402024021
</div><div class="dfn-panel" hidden="" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-display" aria-label="Links in this document to definition: display">
@@ -24306,6 +24307,18 @@ <h1 id="title" class="title">WebDriver</h1>
2430624307
<li>
2430724308
<a href="#ref-for-dfn-logical-scroll-position-inline-1" title="§ 12. Elements">§ 12. Elements</a>
2430824309
</li>
24310+
</ul>
24311+
</div><div class="dfn-panel" hidden="" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-visual-viewport" aria-label="Links in this document to definition: visual viewport">
24312+
<span class="caret"></span>
24313+
<div>
24314+
<a class="self-link" href="#dfn-visual-viewport" aria-label="Permalink for definition: visual viewport. Activate to close this dialog.">Permalink</a>
24315+
24316+
</div>
24317+
<p><b>Referenced in:</b></p>
24318+
<ul>
24319+
<li>
24320+
<a href="#ref-for-dfn-visual-viewport-1" title="§ 17. Screen capture">§ 17. Screen capture</a> <a href="#ref-for-dfn-visual-viewport-2" title="Reference 2">(2)</a> <a href="#ref-for-dfn-visual-viewport-3" title="Reference 3">(3)</a> <a href="#ref-for-dfn-visual-viewport-4" title="Reference 4">(4)</a> <a href="#ref-for-dfn-visual-viewport-5" title="Reference 5">(5)</a>
24321+
</li>
2430924322
</ul>
2431024323
</div><div class="dfn-panel" hidden="" role="dialog" aria-modal="true" id="dfn-panel-for-dfn-media-type" aria-label="Links in this document to definition: media type">
2431124324
<span class="caret"></span>

0 commit comments

Comments
 (0)