peter
5051809940
fix(a11y): touch/keyboard reveal tail + single-Escape layer coordination (UX-7/UX-8)
...
UX-8: one Escape must close only the topmost layer, never both an open
popover AND the player beneath it. The popover's Escape listener is on
`document` and fires before the player's on `window`; closing the popover
flushes its layer off the shared stack synchronously, so the player's
`anyLayerAbove()` lookup read "nothing above" and closed too. Add a
consumed-event flag to layerStack (`markEscapeHandled`/`escapeHandled`):
the acting topmost layer stamps the shared KeyboardEvent, and both players
check the stamp before the (now-mutated) stack. Immune to listener order
and mid-dispatch stack mutation. Cover with layerStack.dom.test.ts.
UX-7: the E4 `.reveal` sweep already covered the card action rows; two
residual hover-only traps remained — invisible-but-tappable/Tab-focusable
on touch. Add a group-agnostic `.reveal-hover` recipe (display:none under
`(hover: none)`) paired with each site's own hover/focus-within reveal:
- VideoCard play/Continue/Restart overlay: also reveal on
group-focus-within (keyboard), and drop it on touch — the card tap
already plays/resumes, so no permanent scrim over every mobile thumbnail.
- Carousel prev/next arrows: gone on touch, where the strip swipes.
2026-08-23 21:59:58 +02:00
..
2026-07-21 02:26:40 +02:00
2026-08-11 04:04:06 +02:00
2026-08-11 04:04:06 +02:00
2026-08-19 01:13:40 +02:00
2026-08-15 04:45:32 +02:00
2026-08-15 04:45:32 +02:00
2026-08-22 06:33:48 +02:00
2026-08-09 17:43:42 +02:00
2026-08-21 19:13:38 +02:00
2026-08-21 08:11:18 +02:00
2026-08-21 05:43:36 +02:00
2026-08-09 03:18:04 +02:00
2026-08-09 03:18:04 +02:00
2026-06-12 18:01:43 +02:00
2026-08-08 09:28:23 +02:00
2026-08-11 04:20:10 +02:00
2026-08-20 08:50:47 +02:00
2026-08-23 21:59:58 +02:00
2026-08-08 00:50:05 +02:00
2026-08-15 06:38:19 +02:00
2026-08-15 07:20:18 +02:00
2026-08-21 19:13:38 +02:00
2026-07-21 02:26:40 +02:00
2026-08-15 05:28:59 +02:00
2026-08-22 03:48:23 +02:00
2026-08-21 17:01:41 +02:00
2026-08-18 05:01:27 +02:00
2026-08-14 04:01:38 +02:00
2026-08-14 03:50:43 +02:00
2026-08-15 04:45:32 +02:00
2026-08-15 04:09:30 +02:00
2026-08-15 03:40:35 +02:00
2026-08-08 09:28:23 +02:00
2026-08-11 04:04:06 +02:00
2026-08-13 23:24:59 +02:00
2026-08-22 06:33:48 +02:00
2026-08-22 07:56:05 +02:00
2026-08-09 17:43:42 +02:00
2026-08-11 04:20:10 +02:00
2026-08-15 01:37:05 +02:00
2026-08-15 05:31:55 +02:00
2026-08-15 05:28:59 +02:00
2026-08-22 06:55:16 +02:00
2026-06-19 11:18:20 +02:00
2026-08-19 21:14:49 +02:00
2026-07-27 22:10:03 +02:00
2026-08-21 19:13:38 +02:00
2026-08-11 04:04:06 +02:00
2026-08-19 21:14:49 +02:00
2026-08-19 21:14:49 +02:00
2026-07-21 02:26:40 +02:00
2026-08-11 04:04:06 +02:00
2026-08-14 00:49:09 +02:00
2026-08-22 05:42:45 +02:00
2026-08-22 06:55:16 +02:00
2026-08-22 06:55:16 +02:00
2026-08-22 03:29:15 +02:00
2026-08-19 03:07:25 +02:00
2026-08-15 00:35:22 +02:00
2026-08-15 01:37:05 +02:00
2026-08-22 06:33:48 +02:00
2026-08-22 01:06:22 +02:00
2026-08-22 01:06:22 +02:00
2026-08-09 03:18:04 +02:00
2026-08-22 18:02:55 +02:00
2026-08-21 22:41:57 +02:00
2026-08-21 20:33:55 +02:00
2026-08-11 04:04:06 +02:00
2026-08-09 03:18:04 +02:00
2026-08-19 21:35:52 +02:00
2026-08-20 05:12:33 +02:00
2026-08-20 03:26:19 +02:00
2026-08-22 06:33:48 +02:00
2026-08-20 05:21:13 +02:00
2026-08-20 05:40:59 +02:00
2026-08-23 02:55:59 +02:00
2026-08-11 03:29:08 +02:00
2026-08-21 19:13:38 +02:00
2026-08-18 05:01:27 +02:00
2026-07-18 19:11:38 +02:00
2026-08-09 17:43:42 +02:00
2026-08-23 08:04:00 +02:00
2026-08-23 06:57:33 +02:00
2026-08-22 01:06:22 +02:00
2026-08-21 22:41:57 +02:00
2026-08-22 05:42:30 +02:00
2026-08-22 05:42:30 +02:00
2026-08-22 19:16:30 +02:00
2026-08-23 21:59:58 +02:00
2026-08-19 05:41:52 +02:00
2026-08-09 03:18:04 +02:00
2026-08-21 21:38:49 +02:00
2026-08-20 05:40:59 +02:00
2026-08-20 05:40:59 +02:00
2026-08-20 05:24:11 +02:00
2026-08-20 00:47:09 +02:00
2026-08-23 04:40:09 +02:00
2026-08-23 21:59:41 +02:00
2026-08-20 20:30:30 +02:00
2026-08-21 03:16:40 +02:00
2026-08-23 18:39:22 +02:00
2026-08-23 18:39:22 +02:00
2026-08-23 04:08:28 +02:00
2026-08-23 04:08:28 +02:00
2026-08-21 08:11:18 +02:00
2026-08-22 08:18:25 +02:00
2026-08-23 18:39:22 +02:00
2026-08-23 21:59:41 +02:00
2026-08-21 00:08:19 +02:00
2026-08-23 21:59:58 +02:00
2026-08-12 00:06:21 +02:00
2026-08-13 03:20:01 +02:00
2026-08-09 17:43:42 +02:00
2026-08-15 01:01:03 +02:00
2026-08-22 19:16:30 +02:00
2026-08-22 18:19:08 +02:00
2026-08-22 18:19:08 +02:00
2026-08-17 22:18:07 +02:00
2026-08-17 22:18:07 +02:00
2026-08-23 02:09:14 +02:00
2026-08-23 04:40:09 +02:00
2026-08-23 04:40:09 +02:00
2026-08-22 18:19:08 +02:00
2026-08-21 03:16:40 +02:00
2026-08-23 02:23:09 +02:00
2026-08-23 02:23:09 +02:00
2026-08-23 03:52:21 +02:00
2026-07-27 22:10:03 +02:00
2026-08-11 02:20:52 +02:00
2026-08-11 04:04:06 +02:00
2026-08-09 01:03:53 +02:00
2026-08-19 01:32:26 +02:00
2026-08-19 01:32:26 +02:00
2026-08-09 03:18:04 +02:00
2026-08-22 04:03:58 +02:00
2026-08-23 01:39:29 +02:00
2026-08-19 21:35:52 +02:00
2026-08-17 22:18:07 +02:00
2026-08-17 21:31:22 +02:00
2026-08-14 22:58:42 +02:00
2026-08-14 22:58:42 +02:00
2026-08-22 04:03:58 +02:00
2026-08-18 03:02:34 +02:00
2026-08-11 04:04:06 +02:00
2026-08-11 04:04:06 +02:00
2026-08-22 06:33:48 +02:00
2026-08-22 06:33:48 +02:00
2026-08-22 01:06:22 +02:00
2026-08-22 01:06:22 +02:00
2026-08-15 01:04:59 +02:00
2026-08-09 17:43:43 +02:00
2026-08-09 17:46:13 +02:00
2026-08-15 01:37:05 +02:00
2026-08-09 17:43:42 +02:00
2026-08-09 03:18:04 +02:00
2026-08-11 02:20:52 +02:00
2026-07-21 02:26:40 +02:00
2026-08-23 01:53:33 +02:00
2026-08-23 01:53:33 +02:00
2026-06-19 11:18:20 +02:00
2026-08-23 21:59:58 +02:00
2026-08-11 04:04:06 +02:00
2026-08-21 19:53:14 +02:00
2026-07-27 22:40:11 +02:00
2026-08-19 01:32:26 +02:00
2026-08-11 04:04:06 +02:00
2026-08-11 04:04:06 +02:00
2026-07-27 22:10:03 +02:00