polite-media 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,72 @@
3
3
  Notable changes, newest first. Versions follow [semver](https://semver.org); while
4
4
  this is `0.x`, a minor bump may still break things and will say so here.
5
5
 
6
+ ## 0.5.0 (2026-09-12)
7
+
8
+ ### Breaking
9
+
10
+ - **`data-polite-media` no longer has to be the video's direct parent.** The library writes its
11
+ state to the nearest `[data-polite-media]` ancestor, and `video.css` and `layer.css` match the
12
+ video as a descendant of the box rather than a child. The poster rules are unchanged: a poster is
13
+ still a direct child, so a logo deeper in the box is still left alone. One box holds one video, and
14
+ boxes must not nest, because the box's ready state reveals every video inside it. If your CSS
15
+ extended `[data-polite-media] > video`, drop the `>`.
16
+
17
+ - **`image.css` hides only lazy images.** An eager image may be the LCP element, and a deferred
18
+ module cannot reveal it before first paint, so the stylesheet now leaves `loading="eager"` (and
19
+ images with no `loading`) alone. To fade one anyway, write `data-polite-reveal="eager"` on it.
20
+ `revealImages()`'s `allowEager` option is ignored and warns, because the opt-in has to be where
21
+ the stylesheet can see it.
22
+
23
+ ### Added
24
+
25
+ - **`registerAll()` and `revealImages()` take no argument** and default to
26
+ `'[data-polite-media] video'` and `'img[data-polite-reveal]'`, which is what both known consumers
27
+ had written out.
28
+
29
+ - **`polite-video:blocked`, and `data-polite-blocked` on the box**, while the browser refuses
30
+ `play()` until a gesture. The retry was already there; what was missing was any way for a host to
31
+ know it was waiting, so a play affordance could not be shown. Fires once per refusal, not on every
32
+ retried attempt, and the attribute is removed once playback starts.
33
+
34
+ ### Fixed
35
+
36
+ - **A pause was lost from `<html>` on a client-side navigation.** A router such as Astro's
37
+ `<ClientRouter />` replaces the root element's attributes with the next document's, and the pause
38
+ state was only written on the first registration of a page load. The videos stayed paused, but
39
+ `data-polite-paused` and a declared `aria-pressed` said otherwise. Both are now re-asserted on
40
+ every `register()`.
41
+
42
+ - **`polite-video:ready` fired again each time a video scrolled back into view.** The frame was
43
+ still on screen, so nothing had been revealed. It now fires once per reveal; a retraction (reduced
44
+ motion, Save-Data, a source fallback) still announces the re-reveal.
45
+
46
+ ### Documentation
47
+
48
+ - The README now lists all four places the library changes an element you authored: `preload`
49
+ (twice), `muted`, and `src` plus `load()` when a `<source>` list is resolved.
50
+
51
+ ## 0.4.3 (2026-09-06)
52
+
53
+ ### Fixed
54
+
55
+ - **An image below the fold arrived without its fade.** The stylesheet's failsafe reveals a marked
56
+ image after `--polite-failsafe` (default `5s`) whatever JavaScript does, and it was firing on
57
+ images `revealImages()` had already claimed. A lazy image that had not loaded yet reached
58
+ `opacity: 1` while still in flight, so when the picture finally arrived there was nothing left to
59
+ fade. Measured on a live page: eleven images revealed that way five seconds in, none of them
60
+ loaded.
61
+
62
+ The library now marks an image it owns with `data-polite-managed` and the stylesheet stands down
63
+ for those. A claimed image is safe without the failsafe because the module always resolves one, on
64
+ `decode()` and failing that on `load` or `error`; if a teardown gives up on a claim, the mark is
65
+ removed and the stylesheet takes the image back.
66
+
67
+ ### Added
68
+
69
+ - **`data-polite-managed` on an `<img>`**, for as long as `revealImages()` owns its reveal. Part of
70
+ the public CSS API like the other attributes the library writes.
71
+
6
72
  ## 0.4.2 (2026-09-06)
7
73
 
8
74
  ### Fixed
package/README.md CHANGED
@@ -11,7 +11,7 @@ npm install polite-media
11
11
  ```
12
12
 
13
13
  ```html
14
- <!-- data-polite-media goes on the video's direct parent -->
14
+ <!-- data-polite-media goes on the box that holds poster and video -->
15
15
  <div class="your-own-box" data-polite-media>
16
16
  <img src="poster.avif" alt="" />
17
17
  <!-- decorative: the video is not in the tab order, the poster's alt carries any meaning -->
@@ -122,7 +122,7 @@ one before it arrives.
122
122
  import { revealImages } from 'polite-media/image';
123
123
  import 'polite-media/image.css';
124
124
 
125
- revealImages('.card img');
125
+ revealImages(); // every img[data-polite-reveal] on the page
126
126
  ```
127
127
 
128
128
  ### Warming the next page's hero
@@ -143,7 +143,7 @@ warmOnIntent('a[data-hero]', (link) => ({
143
143
 
144
144
  ## The attributes
145
145
 
146
- Seven in total. The distinction that catches people is the middle column: two of
146
+ Nine in total. The distinction that catches people is the middle column: two of
147
147
  the ones you write are live on their own, and one is inert until you call
148
148
  something.
149
149
 
@@ -154,14 +154,17 @@ something.
154
154
  | `data-polite-pause-control` | your `<button>` | **yes**, no call anywhere on the page |
155
155
  | `data-polite-ready` | the box, or the image | written by the library |
156
156
  | `data-polite-failed` | the box | written by the library |
157
+ | `data-polite-blocked` | the box | written by the library |
157
158
  | `data-polite-paused` | `<html>` | written by the library |
158
159
  | `data-polite-active` | `<html>` | written by the library |
160
+ | `data-polite-managed` | the `<img>` | written by the library |
159
161
 
160
162
  `data-polite-reveal` is the one to be careful with. `image.css` hides a marked
161
- image immediately, so marking one you never pass to `revealImages()` leaves it
162
- hidden until the failsafe shows it, five seconds later and without a fade. The
163
+ lazy image immediately, so marking one you never pass to `revealImages()` leaves
164
+ it hidden until the failsafe shows it, five seconds later and without a fade. The
163
165
  console names any image in that state, so widen the selector or drop the
164
- attribute.
166
+ attribute. An eager image is never hidden; give the attribute the value `eager`
167
+ to opt one into the fade anyway.
165
168
 
166
169
  `data-polite-active` is on `<html>` for as long as at least one video is
167
170
  registered. A pause control is markup on every page, but it must not offer to
@@ -176,9 +179,14 @@ stop something that was never registered, and nothing else lets CSS answer that:
176
179
  }
177
180
  ```
178
181
 
179
- The bottom four are yours to style against and never to write yourself. They are
182
+ The bottom six are yours to style against and never to write yourself. They are
180
183
  the public CSS API, along with `--polite-fade` and `--polite-failsafe`.
181
184
 
185
+ `data-polite-blocked` is on the box while the browser refuses `play()` until a
186
+ gesture, which MDN reports as `NotAllowedError`. The library keeps retrying on its
187
+ own; the attribute is there so your CSS can show a play affordance in the
188
+ meantime, and it is removed once playback starts.
189
+
182
190
  ### Composing your own animation with the reveal
183
191
 
184
192
  Gating an animation of your own on `data-polite-ready` works, and needs one thing
@@ -212,21 +220,20 @@ it could have mattered.
212
220
  arrived once JS ran, a page whose bundle failed would stack that over the
213
221
  poster. Authored, the safe state is the default.
214
222
 
215
- That box must be the video's **direct parent**. This is the one rule with a
216
- silent failure mode: the library writes `data-polite-ready` to
217
- `video.parentElement`, while the stylesheet matches
218
- `[data-polite-media][data-polite-ready] > video`. Put the attribute a level
219
- too high and the two never meet, every rule misses, and the video is visible
220
- from the start with no error anywhere. The library warns on the console when
221
- it can detect this.
223
+ The video may sit anywhere inside that box: the library writes its state to
224
+ the nearest `[data-polite-media]` ancestor, and the stylesheet matches the
225
+ video as a descendant. One box holds one video, and boxes must not nest,
226
+ because the box's ready state reveals every video inside it: a second one
227
+ would appear before it had painted. With no box above the video at all,
228
+ nothing hides it and the library warns on the console.
222
229
 
223
230
  3. The poster is ideally the video's **frame 0**, which is what makes the handoff
224
231
  invisible, but only together with cutting rather than fading. See
225
232
  [The fade](#the-fade).
226
- 4. Poster and video are direct children of the box. The box may hold anything
227
- else it likes, a scrim, a caption, a pause control, and those are left alone.
228
- But **every** direct-child `img` or `picture` is treated as the poster and
229
- hidden on reveal, so a logo or badge belongs deeper, not beside the video.
233
+ 4. The poster is a direct child of the box. The box may hold anything else it
234
+ likes, a scrim, a caption, a pause control, and those are left alone. But
235
+ **every** direct-child `img` or `picture` is treated as the poster and hidden
236
+ on reveal, so a logo or badge belongs deeper, not beside the video.
230
237
  5. Order several `<source>` elements narrowest first: the first one that claims
231
238
  the viewport wins. **You do not need an unconditional fallback.** Two queries
232
239
  meant to partition the viewport often do not quite meet, and
@@ -249,14 +256,14 @@ it could have mattered.
249
256
  ```js
250
257
  // polite-media/video
251
258
  register(video, { until, observe, startWhen }); // manage a video
252
- registerAll(target, { until, startWhen }); // manage everything a selector names
259
+ registerAll(target?, { until, startWhen }); // every [data-polite-media] video by default
253
260
  unregister(video); // stop managing it, release everything
254
261
  unregisterAll(); // tear down the whole page
255
262
  configure({ ... }); // before the first register, or it throws
256
263
  pauseAll(); resumeAll(); // WCAG 2.2.2 control, emits pausechange
257
264
 
258
265
  // polite-media/image
259
- const stop = revealImages(target, { allowEager }); // reveal on decode
266
+ const stop = revealImages(target?); // reveal on decode; every marked image by default
260
267
  stop(); // cancel anything pending
261
268
 
262
269
  // polite-media/warm
@@ -272,9 +279,15 @@ Types: `ConfigureOptions`, `RegisterOptions`, `RevealImagesOptions`,
272
279
  `WarmOptions`, `WarmSource`, `VideoTarget`, `ImageTarget`, `AtOnce`,
273
280
  `PoliteVideoEventDetail`, `PoliteImageEventDetail`, `PolitePauseEventDetail`.
274
281
  Event names ship as constants
275
- (`POLITE_VIDEO_READY`, `POLITE_VIDEO_FAILED`, `POLITE_IMAGE_READY`,
276
- `POLITE_VIDEO_PAUSECHANGE`), because a mistyped event string still compiles
277
- against lib.dom's `type: string` overload.
282
+ (`POLITE_VIDEO_READY`, `POLITE_VIDEO_FAILED`, `POLITE_VIDEO_BLOCKED`,
283
+ `POLITE_IMAGE_READY`, `POLITE_VIDEO_PAUSECHANGE`), because a mistyped event
284
+ string still compiles against lib.dom's `type: string` overload.
285
+
286
+ `polite-video:ready` fires once per reveal. A video that scrolls away and back
287
+ keeps its last frame on screen, so it is not announced again; one whose reveal
288
+ was retracted, by reduced motion, Save-Data or a source fallback, is announced
289
+ again when it re-reveals. `polite-video:blocked` fires once when the browser
290
+ refuses `play()` until a gesture, and not again on each refused retry.
278
291
 
279
292
  `polite-video:pausechange` is the odd one out: a user pause is page-wide rather
280
293
  than about one video, so it is dispatched on `document` with
@@ -353,7 +366,9 @@ register(video, {
353
366
  when the video is `inset: 0` inside the element that carries the layout.
354
367
 
355
368
  `registerAll(target)` takes the same shapes `revealImages` does (a selector, an
356
- element, or any collection) and registers each. It does not accept `observe`:
369
+ element, or any collection) and registers each; called with nothing it takes
370
+ `'[data-polite-media] video'`, which is what every known caller had written out.
371
+ It does not accept `observe`:
357
372
  each observed element maps to exactly one video, and `register` refuses a second
358
373
  video on a target it already watches, with a warning.
359
374
 
@@ -400,10 +415,14 @@ with `'interaction'`, so "wait for the visitor, and also wait for the buffer"
400
415
  could not be expressed at all.
401
416
 
402
417
  Two consequences. A page whose `load` never fires never starts its videos, and
403
- `requireBuffered` is one of two places the library changes markup you authored:
404
- `prefetch()` also promotes `preload` to `'auto'` for any video within a
405
- configured `prefetchMargin`. `until` composes with all of it, and a video waits
406
- for every gate that applies to it.
418
+ `requireBuffered` is one of four places the library changes the element you
419
+ authored. `prefetch()` also promotes `preload` to `'auto'` for any video within
420
+ a configured `prefetchMargin`; `muted` is set before every `play()`, since muted
421
+ is the one condition autoplay can rely on; and when a `<source>` list is
422
+ resolved, `src` is assigned the chosen file and `load()` is called, so
423
+ `currentSrc` reflects that choice and the `<source>` children are no longer
424
+ consulted. `until` composes with all of it, and a video waits for every gate
425
+ that applies to it.
407
426
 
408
427
  ### `pauseBelow`
409
428
 
@@ -621,9 +640,11 @@ drops any entry whose element has left the document on its next pass.
621
640
  - Caps how many videos run at once, on any viewport, not just small ones.
622
641
  - Falls through to the next `<source>` when one can't be decoded.
623
642
  - Honours `prefers-reduced-motion` live, and Save-Data on the next reconcile.
624
- - Recovers from bfcache restores, tab refocus and blocked autoplay.
643
+ - Recovers from bfcache restores, tab refocus and blocked autoplay, and says so
644
+ while it waits.
625
645
  - Ships a pause control hook for [WCAG 2.2.2][wcag].
626
- - Emits `polite-video:ready`, `polite-video:failed` and `polite-video:pausechange`.
646
+ - Emits `polite-video:ready`, `polite-video:failed`, `polite-video:blocked` and
647
+ `polite-video:pausechange`.
627
648
 
628
649
  ## What it deliberately doesn't do
629
650
 
@@ -640,9 +661,12 @@ candidates you already build, and generates none.
640
661
  every image inside it, including ones the library then declines to fade, so each
641
662
  one waits out the failsafe instead of fading.
642
663
 
643
- **Eager images are revealed instantly rather than faded.** LCP excludes elements
644
- at `opacity: 0` and revealing one doesn't restore its candidacy. Pass
645
- `{ allowEager: true }` to fade anyway.
664
+ **Eager images are never hidden, so they cut rather than fade.** LCP excludes
665
+ elements at `opacity: 0`, and a deferred module cannot reveal one before first
666
+ paint, so `image.css` hides only `loading="lazy"` images and the module marks an
667
+ eager one ready at once. To fade an eager image anyway, write
668
+ `data-polite-reveal="eager"` on it: the choice has to be in the markup, where
669
+ the stylesheet can see it, which is why the old `allowEager` option is gone.
646
670
 
647
671
  **An image needs a backdrop.** Video degrades to its poster; a lone image
648
672
  degrades to nothing, so its container must carry a visible `background-color`.
@@ -653,9 +677,23 @@ so with scripting off the photos arrive unfaded instead of never arriving. And
653
677
  because no media query can see a bundle that fails while scripting is on, the
654
678
  stylesheet reveals any marked image after `--polite-failsafe` (default `5s`)
655
679
  regardless. A missed selector or a dead bundle costs you the fade, not the
656
- picture. The failsafe applies to every marked image, including managed ones,
657
- because an earlier design that exempted them could send an already-revealed image
658
- back to hidden.
680
+ picture.
681
+
682
+ **The failsafe is only for images nothing is going to reveal.** It stands down
683
+ for two kinds: one already revealed, and one `revealImages()` has claimed, which
684
+ the library marks with `data-polite-managed`. Both matter.
685
+
686
+ Leaving it on a revealed image let it, not the reveal, decide `opacity`, because
687
+ an animation outranks every normal declaration in the cascade; Firefox then held
688
+ a decoded image at zero for the full five seconds. Leaving it on a claimed one is
689
+ worse and quieter: a lazy image below the fold reaches `opacity: 1` while it is
690
+ still in flight, so when the picture finally arrives there is no fade left to run.
691
+ Measured on a live page, eleven images were revealed that way five seconds in,
692
+ none of them loaded.
693
+
694
+ A claimed image is safe without it because this module always resolves one: on
695
+ `decode()`, and failing that on `load` or `error`. If a teardown gives up on a
696
+ claim, the mark is removed and the stylesheet takes the image back.
659
697
 
660
698
  ## Why it exists
661
699
 
@@ -702,11 +740,12 @@ Framework-agnostic by construction: no framework dependency, standard DOM only,
702
740
  developed against Astro projects.
703
741
 
704
742
  **Tested on Chromium, Firefox and WebKit**, all three driven by Playwright
705
- against real media on every change, alongside 222 unit tests. Other engines are
743
+ against real media on every change, alongside 233 unit tests. Other engines are
706
744
  unexercised rather than unsupported.
707
745
 
708
746
  **iOS Safari is outside the matrix**, and Playwright's WebKit does not stand in
709
- for it. The path that rests on it is the retry after a refused `play()`, which
747
+ for it. The path that rests on it is the retry after a refused `play()`, announced
748
+ as `polite-video:blocked` so it can be seen in the field, which
710
749
  rejects with `NotAllowedError`; the library follows MDN's documented remedy of
711
750
  surfacing a control and waiting for a gesture.
712
751
 
@@ -180,7 +180,9 @@ export declare function register(video: HTMLVideoElement, options?: RegisterOpti
180
180
  export type VideoTarget = Target<HTMLVideoElement>;
181
181
  /**
182
182
  * Registers every video a target names, so the common case is one line and
183
- * matches `revealImages` on the image side rather than being a second idea.
183
+ * matches `revealImages` on the image side rather than being a second idea. With
184
+ * no target it takes every video inside a `[data-polite-media]` box, which is
185
+ * what every known caller passed by hand.
184
186
  *
185
187
  * `observe` is deliberately not accepted. Each observed element maps to exactly
186
188
  * one entry, so handing the same wrapper to several videos would silently
@@ -190,7 +192,7 @@ export type VideoTarget = Target<HTMLVideoElement>;
190
192
  * Idempotent, because `register` is: safe to call on every navigation of a
191
193
  * client-side router, where module scripts do not re-run.
192
194
  */
193
- export declare function registerAll(target: VideoTarget, options?: Omit<RegisterOptions, 'observe'>): void;
195
+ export declare function registerAll(target?: VideoTarget, options?: Omit<RegisterOptions, 'observe'>): void;
194
196
  /**
195
197
  * Stops managing a video and releases everything it owned: the observer entry,
196
198
  * any pending pause timer, its listeners, and the page-level listeners once it
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../src/coordinator.ts"],"names":[],"mappings":"AAUA,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3D;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA4ED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAcvD;AAwDD,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAuhBD,wBAAgB,SAAS,IAAI,IAAI,CAsFhC;AA+OD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI,CA0DrF;AAED,kEAAkE;AAClE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEnD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAM,GAC7C,IAAI,CAEN;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAwBxD;AAoED,wBAAgB,QAAQ,IAAI,IAAI,CAG/B;AAED,sDAAsD;AACtD,wBAAgB,SAAS,IAAI,IAAI,CAGhC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAQpC;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,IAAI,IAAI,CAQpC;AAED,0EAA0E;AAC1E,wBAAgB,OAAO,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAErF"}
1
+ {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../src/coordinator.ts"],"names":[],"mappings":"AAWA,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3D;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA4ED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAcvD;AAwDD,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAkjBD,wBAAgB,SAAS,IAAI,IAAI,CAsFhC;AAiPD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI,CA6DrF;AAED,kEAAkE;AAClE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEnD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,MAAM,GAAE,WAAyC,EACjD,OAAO,GAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAM,GAC7C,IAAI,CAEN;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAwBxD;AAiED,wBAAgB,QAAQ,IAAI,IAAI,CAG/B;AAED,sDAAsD;AACtD,wBAAgB,SAAS,IAAI,IAAI,CAGhC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAQpC;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,IAAI,IAAI,CAQpC;AAED,0EAA0E;AAC1E,wBAAgB,OAAO,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAErF"}
@@ -1,5 +1,5 @@
1
1
  import { connectionAllowsMedia, mediaQuery, motionAllowed } from './env.js';
2
- import { POLITE_VIDEO_PAUSECHANGE, POLITE_VIDEO_FAILED, POLITE_VIDEO_READY, } from './events.js';
2
+ import { POLITE_VIDEO_BLOCKED, POLITE_VIDEO_PAUSECHANGE, POLITE_VIDEO_FAILED, POLITE_VIDEO_READY, } from './events.js';
3
3
  import { revealWhenPainted } from './reveal.js';
4
4
  import { isUnusable, manageSources, resetSourceWarnings } from './sources.js';
5
5
  import { resolveTargets } from './targets.js';
@@ -276,7 +276,7 @@ function pauseAfterGrace(entry) {
276
276
  * because the useful listener is usually on a container, not on each video.
277
277
  */
278
278
  function emit(entry, type) {
279
- entry.video.dispatchEvent(new CustomEvent(type === 'ready' ? POLITE_VIDEO_READY : POLITE_VIDEO_FAILED, { bubbles: true, detail: { video: entry.video } }));
279
+ entry.video.dispatchEvent(new CustomEvent(type, { bubbles: true, detail: { video: entry.video } }));
280
280
  }
281
281
  /**
282
282
  * Reveal state goes on the container, not the `<video>`, because the poster is an
@@ -285,7 +285,7 @@ function emit(entry, type) {
285
285
  */
286
286
  function markReady(entry) {
287
287
  entry.host.setAttribute('data-polite-ready', '');
288
- emit(entry, 'ready');
288
+ emit(entry, POLITE_VIDEO_READY);
289
289
  }
290
290
  function clearReady(entry) {
291
291
  entry.cancelReveal?.();
@@ -293,6 +293,10 @@ function clearReady(entry) {
293
293
  entry.host.removeAttribute('data-polite-ready');
294
294
  }
295
295
  function armReveal(entry) {
296
+ // Still revealed from before it scrolled away, so the frame is on screen and re-arming would
297
+ // only announce `ready` a second time. Only a retraction, which removes the attribute, re-arms.
298
+ if (entry.host.hasAttribute('data-polite-ready'))
299
+ return;
296
300
  entry.cancelReveal?.();
297
301
  entry.cancelReveal = revealWhenPainted(entry.video, () => markReady(entry));
298
302
  }
@@ -358,11 +362,10 @@ let warnedNothingToReveal = false;
358
362
  /**
359
363
  * The one misconfiguration that is otherwise undetectable.
360
364
  *
361
- * `host` is derived as the video's parent, while video.css keys off
362
- * `data-polite-media` authored on that same element. Nothing forces the two to
363
- * agree, so putting the attribute one level too high leaves every rule
364
- * unmatched: the video is visible from the start, the poster never hides, and
365
- * the library looks installed while doing nothing at all.
365
+ * video.css hides a video only inside an authored `[data-polite-media]` box. With
366
+ * none above the video, `host` falls back to its parent, every rule misses, the
367
+ * video is visible from the start, the poster never hides, and the library looks
368
+ * installed while doing nothing at all.
366
369
  *
367
370
  * Checked here rather than at registration because stylesheets have certainly
368
371
  * applied by the time a video starts. The visual test is what separates a genuine
@@ -381,8 +384,9 @@ function warnIfNothingToReveal(entry) {
381
384
  if (style.opacity !== '1' || style.visibility !== 'visible')
382
385
  return;
383
386
  warnedNothingToReveal = true;
384
- console.warn("polite-media: no data-polite-media on this video's parent, so revealing it does " +
385
- 'nothing. Put the attribute there, or hide the video with your own CSS.', entry.video);
387
+ console.warn('polite-media: no data-polite-media on any box around this video, so revealing it does ' +
388
+ 'nothing. Put the attribute on the box holding poster and video, or hide the video with ' +
389
+ 'your own CSS.', entry.video);
386
390
  }
387
391
  /**
388
392
  * Nothing decodable is left. The poster stays and the host is told, rather than
@@ -390,10 +394,25 @@ function warnIfNothingToReveal(entry) {
390
394
  */
391
395
  function markFailed(entry) {
392
396
  clearReady(entry);
397
+ clearBlocked(entry);
393
398
  entry.host.setAttribute('data-polite-failed', '');
394
- emit(entry, 'failed');
399
+ emit(entry, POLITE_VIDEO_FAILED);
395
400
  unregister(entry.video);
396
401
  }
402
+ /**
403
+ * The browser refused to start playback until a gesture, which MDN reports as `NotAllowedError`.
404
+ * The retry rungs handle recovery; this tells the host, the only party that can offer a play
405
+ * affordance. The other rejection, nothing buffered yet, is transient and not announced.
406
+ */
407
+ function markBlocked(entry) {
408
+ if (entry.host.hasAttribute('data-polite-blocked'))
409
+ return;
410
+ entry.host.setAttribute('data-polite-blocked', '');
411
+ emit(entry, POLITE_VIDEO_BLOCKED);
412
+ }
413
+ function clearBlocked(entry) {
414
+ entry.host.removeAttribute('data-polite-blocked');
415
+ }
397
416
  /**
398
417
  * Waits for the next user gesture, then re-runs the arbiter.
399
418
  *
@@ -440,7 +459,9 @@ function tryPlay(entry) {
440
459
  // muted is the only condition it can rely on. Set rather than trusted, which
441
460
  // also covers markup whose property was changed after parse.
442
461
  entry.video.muted = true;
443
- void entry.video.play().catch(() => {
462
+ void entry.video.play().then(() => clearBlocked(entry), (error) => {
463
+ if (error?.name === 'NotAllowedError')
464
+ markBlocked(entry);
444
465
  armGestureRetry();
445
466
  if (entry.retryArmed)
446
467
  return;
@@ -761,19 +782,23 @@ function detachLifecycle() {
761
782
  gestureArmed = false;
762
783
  }
763
784
  /**
764
- * Keeps `aria-pressed` current on any pause control that already declares it.
785
+ * Puts `<html>` and every declared pause control in step with `userPaused`.
765
786
  *
766
- * Maintained rather than added, because MDN describes two valid patterns and
767
- * setting it unconditionally would break one of them: `aria-pressed` is for a
768
- * control whose label stays constant, while a control that swaps its label
769
- * between "Pause" and "Play" should not carry it at all -- a screen reader would
770
- * announce "Play, pressed". Declaring the attribute in markup is the author
787
+ * `aria-pressed` is maintained rather than added, because MDN describes two valid
788
+ * patterns and setting it unconditionally would break one of them: `aria-pressed`
789
+ * is for a control whose label stays constant, while a control that swaps its
790
+ * label between "Pause" and "Play" should not carry it at all -- a screen reader
791
+ * would announce "Play, pressed". Declaring the attribute in markup is the author
771
792
  * saying which pattern they are in.
772
793
  *
773
794
  * Restricted to a button role because that is the only role `aria-pressed` is
774
795
  * valid on, so this cannot emit ARIA that a validator would reject.
775
796
  */
776
797
  function reflectPaused() {
798
+ if (userPaused)
799
+ document.documentElement.setAttribute('data-polite-paused', '');
800
+ else
801
+ document.documentElement.removeAttribute('data-polite-paused');
777
802
  for (const control of document.querySelectorAll('[data-polite-pause-control][aria-pressed]')) {
778
803
  if (control.matches('button, [role="button"]')) {
779
804
  control.setAttribute('aria-pressed', String(userPaused));
@@ -833,7 +858,6 @@ function restorePaused() {
833
858
  if (userPaused || !readStoredPause())
834
859
  return;
835
860
  userPaused = true;
836
- document.documentElement.setAttribute('data-polite-paused', '');
837
861
  reflectPaused();
838
862
  }
839
863
  /**
@@ -891,7 +915,7 @@ export function register(video, options = {}) {
891
915
  const entry = {
892
916
  video,
893
917
  target,
894
- host: video.parentElement ?? video,
918
+ host: video.closest('[data-polite-media]') ?? video.parentElement ?? video,
895
919
  ratio: 0,
896
920
  gated: Boolean(options.until),
897
921
  hadGate: Boolean(options.until),
@@ -906,6 +930,10 @@ export function register(video, options = {}) {
906
930
  byTarget.set(target, entry);
907
931
  reflectActive();
908
932
  attachLifecycle();
933
+ // A client-side router replaces <html>'s attributes and the control with the next page's while
934
+ // this module, and a pause made before the swap, survive. So it is re-asserted per registration.
935
+ if (userPaused)
936
+ reflectPaused();
909
937
  getObserver().observe(target);
910
938
  getPrefetchObserver()?.observe(target);
911
939
  if (options.until) {
@@ -928,7 +956,9 @@ export function register(video, options = {}) {
928
956
  }
929
957
  /**
930
958
  * Registers every video a target names, so the common case is one line and
931
- * matches `revealImages` on the image side rather than being a second idea.
959
+ * matches `revealImages` on the image side rather than being a second idea. With
960
+ * no target it takes every video inside a `[data-polite-media]` box, which is
961
+ * what every known caller passed by hand.
932
962
  *
933
963
  * `observe` is deliberately not accepted. Each observed element maps to exactly
934
964
  * one entry, so handing the same wrapper to several videos would silently
@@ -938,7 +968,7 @@ export function register(video, options = {}) {
938
968
  * Idempotent, because `register` is: safe to call on every navigation of a
939
969
  * client-side router, where module scripts do not re-run.
940
970
  */
941
- export function registerAll(target, options = {}) {
971
+ export function registerAll(target = '[data-polite-media] video', options = {}) {
942
972
  for (const video of resolveTargets(target))
943
973
  register(video, options);
944
974
  }
@@ -1012,10 +1042,6 @@ function setPaused(paused) {
1012
1042
  if (userPaused === paused)
1013
1043
  return;
1014
1044
  userPaused = paused;
1015
- if (paused)
1016
- document.documentElement.setAttribute('data-polite-paused', '');
1017
- else
1018
- document.documentElement.removeAttribute('data-polite-paused');
1019
1045
  reflectPaused();
1020
1046
  reconcile();
1021
1047
  // Announced last, once the videos have actually stopped or restarted. Firing
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../src/coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../src/coordinator.ts"],"names":[],"mappings":"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"}