Files
ArtPlayer/refactor/baselines/keyboard-info-lock-partial.json
T

2122 lines
121 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"task": "CORE-23",
"status": "partial-info-lock",
"capturedAt": "2026-09-11T12:15:30.853Z",
"parentCommit": "faaa3e8c2d84a9b7864e81e06cbe5bb66c517bd6",
"source": {
"packages/artplayer/src/accessibility/button.ts": "e5afa7aade56116082f54678c44961157950fa550d66e21a4e1ff9bb5369a6f8",
"packages/artplayer/src/accessibility/focus.ts": "2fa16941ac3632cb1e4b466e9a7e29700ef97b7eb2facd4330c59ec0a9320594",
"packages/artplayer/src/accessibility/keyboard.ts": "2d82122732f84f39e59c6852ca081614caa6430a82b32c4749e297826c77eb12",
"packages/artplayer/src/accessibility/moved-focus.ts": "c3d2a7d496381b2a86819b82fbd26cc940a1204fdf19408ccc8db267741d96c9",
"packages/artplayer/src/accessibility/player-focus.ts": "e8fd5222cbfc38cd4938324c83d9f5cef3d01a439464e1570d63a5131c84f20a",
"packages/artplayer/src/accessibility/slider.ts": "533d5e6d806c32a84a578b43ed50993d30b4a414b5a85a34bbc68c37c5673a44",
"packages/artplayer/src/accessibility/suspend-focus.ts": "d95c6097236be66e252165287435cca01b50553d64259add6b011721e4bbc644",
"packages/artplayer/src/bootstrap/browser.ts": "8d401627e8ea1c87fb44204227b04177a70cc7a0f79f95fb5dc73fe828e46a8c",
"packages/artplayer/src/capture/frame.ts": "eb25d81ec2d40a239103c63cfd80333705251291f2c2da77c740b4d413ea9cd9",
"packages/artplayer/src/component/dom.ts": "740f63e6e5942c444b9f05605880f8d56a77b066dbe5c4791da74f78cb96c668",
"packages/artplayer/src/component/focus.ts": "91b085394e8a70164cee4de9fd454b081d309e21528d9c2cb065a09a2e4f911c",
"packages/artplayer/src/component/resources.ts": "ff158ef0db8ba13343ff6ba329713820cfe2f5c2c446a7873a6cfff782855edf",
"packages/artplayer/src/component/selection.ts": "1f0bd089415da28db862647ffd1a0b4af752576465fb616d4b97ae4f8dcae3a7",
"packages/artplayer/src/component/types.ts": "d7b0e7008b0f6c82e3e97ac43e0188598dca4f740a860e7a60b3b38a46f4565d",
"packages/artplayer/src/config/index.ts": "a56b4d3d6942cfa3e2b47f909fc5ad87e6e3202fd61b29c7afd7649049e31d05",
"packages/artplayer/src/contextmenu/aspectRatio.ts": "a25464e14216b2be392fcb3fdda2439e6d6f98d1962f0acbba30e3bd53bcb2d4",
"packages/artplayer/src/contextmenu/close.ts": "84b7a96df910e6f38140df8b1e73519d209a7331e9be9f42d076ae791757024f",
"packages/artplayer/src/contextmenu/flip.ts": "42c192d23e347d74e0bb814697a4d59eac20afbec102a282d5aa15780cab5f72",
"packages/artplayer/src/contextmenu/index.ts": "4fd292a931b5bda9f16a1c2bedd50cd0d8c0b8fb6010ffc5faaad2c197d2d9e5",
"packages/artplayer/src/contextmenu/info.ts": "f37cf0104510c13a130d2f55114c8f7ff15cc1b51863f97e60825442bdb2bf01",
"packages/artplayer/src/contextmenu/playbackRate.ts": "e177f4017ea9291794fb4023715c81bfc01f927324ab9bd0e32c741e4a3b0ca7",
"packages/artplayer/src/contextmenu/types.ts": "a93fc90f4e17b731e8f6b486a507117810b61c1f1b0d9e775eba27dabeaeee1d",
"packages/artplayer/src/contextmenu/version.ts": "0553a716be0ba49f614059c41eef6dc694a9641fca79e6448b1b30382c6b582b",
"packages/artplayer/src/control/airplay.ts": "539bcc3671c7fe428ab95f9fea8a4943444066bcb742c7cf71591ba347642547",
"packages/artplayer/src/control/builtins.ts": "2a0e12a9741713c92938e1d2009149bbbde498284aa85c63f270d02b27dc22b1",
"packages/artplayer/src/control/fullscreen.ts": "7f8a9e8915abf9cbb9dda05b5c68523a47cc0ccf9ef5e0d9b82bc5c362fe346d",
"packages/artplayer/src/control/fullscreenWeb.ts": "9cb30987a3d2cbb334a80d3f2c41f39fd339bf37a9524c7ed0145cf5c98f1859",
"packages/artplayer/src/control/index.ts": "0d8e5a281f2eeba06c4cc4ac5a042847df53db1a19fdf140efea17d6ab2c0b78",
"packages/artplayer/src/control/layout.ts": "b5134a9d0cb5ad128b1fb229dce79a306b944f750d8620e224a99f5791e6cab5",
"packages/artplayer/src/control/pip.ts": "b829a7c83c5efa6751c2e434345e077339c9f5bc5022af9973f181ca8ce7f7ce",
"packages/artplayer/src/control/playAndPause.ts": "20ed88bcc7ac7622e02a7c4e6be518582c05f0d7c571a97a54b851d79dcf13c5",
"packages/artplayer/src/control/progress.ts": "629c622864619e2515b2eacb1bdfcf523ccce7ce680c8fdf51812e8e50a0cc7e",
"packages/artplayer/src/control/progress/interactions.ts": "da03600375451ecf8c152be5afcc5f1a4f8b759e837bbd54b7faaf8f8b228497",
"packages/artplayer/src/control/progress/keyboard.ts": "03d1d47e6641ea08f765d731f10a6aad35f7c3edc16aa97df822c5f9a7f75eb0",
"packages/artplayer/src/control/progress/position.ts": "a3794ab5ac5dafa5fd61e56acb12c94998bd4b9065dbf0fa4739c6bba1094aa1",
"packages/artplayer/src/control/progress/view.ts": "60ee16d5170be81b8132bb56dd0bc0eaf23e50f5c268d0697c9187b38a14aba9",
"packages/artplayer/src/control/resources.ts": "16fd7c53ac8f47b333041c4f298313390dc102523d47767b8a16f39a2564ba74",
"packages/artplayer/src/control/screenshot.ts": "11a1e3da919e476e7882abc3f74aaa809c3e9fc1de4346ec808731f78b6f27e2",
"packages/artplayer/src/control/selector-keyboard.ts": "6a749f48b23cda62148298e648bb380a6067cc18c7be4258b9ec85c382a56165",
"packages/artplayer/src/control/selector.ts": "a6f0c564c674530da9a0e4ed8762c6dfb81fa89373d64313e1020550731441f6",
"packages/artplayer/src/control/setting.ts": "10ee1118858c41f2e97a6df70d6d5dc978757d0e5d79ec36c11e743e6df86726",
"packages/artplayer/src/control/time.ts": "fa572092e0848878689367fb536e9658d13888d0a0d476babc5acd165af0f8d3",
"packages/artplayer/src/control/types.ts": "a03d6810ce078d358d4a8d1db8ce1246bc59c8429dcdeb0640766a29719df08f",
"packages/artplayer/src/control/volume.ts": "45474d8d7f43d59263aa42e774eaaafeb45530ec24b81a5f589f6c906954568b",
"packages/artplayer/src/display/fullscreen-abandoned.ts": "1715b30d336976921b4957b444418702b7d93dbf1debce47429269638d15810f",
"packages/artplayer/src/display/fullscreen-adapter.ts": "71da10ec21c7706a8264badedac9022c74b865887931e9e369168fe3233c3b2f",
"packages/artplayer/src/display/fullscreen-request.ts": "c6292ded96aab0f2dbc978af251f6cd9f5fd074819529ca498077db8d14e1bfe",
"packages/artplayer/src/display/mini-drag.ts": "73d2f48f868c0ba4d8d5e5df40cbbdb4698c26540f3973b178d9cd374008f1cb",
"packages/artplayer/src/display/mini-focus.ts": "9a6b8280e8a443c87479a5806d1c85c2794038c38abc6f7ac8b85b63dc11086a",
"packages/artplayer/src/display/mini-layout.ts": "3835fe3d314da2fc624cbeb0e79fcdfa5393f08d87dfde730d2eac4e827f405b",
"packages/artplayer/src/display/mini-view.ts": "bbe69e4419ffc0f6c744cb730a51778f23c311a0fac157223bcf8d8bf0f3edc7",
"packages/artplayer/src/display/mini.ts": "a6fed598428bbf8d52931f21bb68b7560a3643d2576f7e7bfbae98b2f7cdd1e5",
"packages/artplayer/src/display/native-fullscreen.ts": "323401f2b3ea5186da981a1215b1b9e7dcf4ef4261a8e885fe8ff0c090de6a7a",
"packages/artplayer/src/display/native-pip.ts": "647879ae027cc0ebe684daa31d75511dd882e123e4ca8da2942e659bae3719f2",
"packages/artplayer/src/display/orientation-native.ts": "909980ba837471d9b456545a18fb0ab19f0990e8788936f0580a4b332cd4baee",
"packages/artplayer/src/display/orientation-types.ts": "0d68d2bc99d04db1e2fdf16b74e406e31f8b7e03fd9b6ea271773ed263ffa890",
"packages/artplayer/src/display/orientation-web.ts": "aea55c3b9e8c708fe5559f07cf8f0afd7ad37ac5b1a43bf519245c3072ec4129",
"packages/artplayer/src/display/placement.ts": "dbe4491ebd0f46b4efe13ac567e476fcd9ca5b84da675f19025935b5e3f8d733",
"packages/artplayer/src/display/sizing-types.ts": "da9b3d957dafaca9331f7319257dd8156b3c3e7b6db11f33f11ded48512450ad",
"packages/artplayer/src/display/sizing.ts": "c19856976320f1f35ff5a1049d19a940768300e095270b336dd12861b200da2a",
"packages/artplayer/src/display/types.ts": "e88c868fd370fcc9dc612489992d446a8d0558bd87c26c5c05fdd73d8a3d1b02",
"packages/artplayer/src/display/video-fullscreen-state.ts": "5fcb5e6b80ac45577664ef67e0460e0ceefd4022cafacdd7434c376a86d619be",
"packages/artplayer/src/display/video-fullscreen.ts": "b425bf0df462524b5d3accc9e3df383c6635676c152bf4bef09c477a90662728",
"packages/artplayer/src/display/web-fullscreen.ts": "bc091e6dcfb28784dd40ea619ce1fb9061b9e85dcc5bf2b6a303679eee5c727d",
"packages/artplayer/src/display/webkit-pip.ts": "3617927b4bb8fa46f651d0e584141f804ae438e2b4531cc2e9cf9f7eeb027550",
"packages/artplayer/src/dom/event-path.ts": "e952ea847a2e844a79c5c1b83035e03917e0294b80b1eb8af3b3bec0d2f7d333",
"packages/artplayer/src/dom/measure.ts": "84a599351d26a790c5a8f6e7d271486a0a68d5b58457d8ce754d540b54902b96",
"packages/artplayer/src/dom/presentation.ts": "500bded394579dd8194778f73cc44d0724f0a59cb5400957491928534ed091c6",
"packages/artplayer/src/dom/styles.ts": "734e0a4e04d666417a18ac09ed6271ee7630c399d52d7f510a1c19fd6e7b3493",
"packages/artplayer/src/dom/tree.ts": "3bc517ab9fa5317a1445156d53afb27182685eb3b4c0ac2ff41bbde55c9eecb6",
"packages/artplayer/src/events/clickInit.ts": "bd1ba29fe0af4332ceb19297797c4c942a3a74bfd901998d6b93293f1b309300",
"packages/artplayer/src/events/core-types.ts": "a607a3b2eea1b031f23ec0f620f1f4cd68799c4a77138a1443ecb196b00d1662",
"packages/artplayer/src/events/gestureInit.ts": "9e9d1ac0da7f87e89dd0d86fa2820b980e9cb810782d6ab30017de8686fc910b",
"packages/artplayer/src/events/global-types.ts": "3f4672d7af959cfa34ba39aa84ce614f422901437686bba98b14f578df40021c",
"packages/artplayer/src/events/globalInit.ts": "6f6ea497a20a8fd0746b1f020caff76ad6817cd70a1a90fbaea12f992b6d03a7",
"packages/artplayer/src/events/hoverInit.ts": "d1250e0dd35a8ba8067275986acbe6320c22adf1a977ec1009c0c012ed1563fe",
"packages/artplayer/src/events/index.ts": "30d2286316dbd351e93f5a2234dcca84bf68ca28c05921169cca70c2e0b1ecf9",
"packages/artplayer/src/events/listener-registry.ts": "fb062df5151c4e8e970de469f1c7d9af948f72214d32c293c81a5feeb8406124",
"packages/artplayer/src/events/moveInit.ts": "da97591723f8b94a34702559b7ee67a35f172aa696d37dfbecd472581ad3de35",
"packages/artplayer/src/events/resizeInit.ts": "719e27d11d2f93fcbe8368393c9190e251fc86dd0c3c2919f60e9b3b1edd0192",
"packages/artplayer/src/events/scheduling-types.ts": "0fd98e94397064f32cae4c004d9932c006d2db69a7d6d9374ff174d74ff93cd4",
"packages/artplayer/src/events/subscriptions.ts": "98573ed6cce73a73467c0e7fdb8ddc45e66b6bdf684c38886749453b2002a1d8",
"packages/artplayer/src/events/types.ts": "df03625039605314a96ef15b5e3777cbb9d444fd317e1a2fbeaaa0f1e83f6b0f",
"packages/artplayer/src/events/updateInit.ts": "6f174db14d20319f03a76e6ea267a3d71973faac44a92483badfa4420791817a",
"packages/artplayer/src/events/viewInit.ts": "d77b83eab802ff0046a4966e28b810a25592bcada49f526adae37556c1e4c3e9",
"packages/artplayer/src/events/viewport.ts": "6196fccb8b08ae22bde732c4389d9aceb5d727a63efd87b6d3914e338aadc46f",
"packages/artplayer/src/hotkey.ts": "d8e477bf451143e566e1f743a5f253dcf00beb23544709794779f275e11498e8",
"packages/artplayer/src/i18n/ar.ts": "dc65797d0ab631709132a88a95b0864d5bc1f63c043339d29439b2cc991a07b5",
"packages/artplayer/src/i18n/cs.ts": "130973860e3623945cb45a54c9f380bd6252e37385e93af80979bc0a19cad878",
"packages/artplayer/src/i18n/es.ts": "7d8ae63e38efc6321b6496d1a9a478f19ed7ad2ad81ef6c32f38fe1d61f4e7cb",
"packages/artplayer/src/i18n/fa.ts": "34f85eea6750047ca8b26f738f6a7032fee6b9d381c5323c7fe522ec4a1608d5",
"packages/artplayer/src/i18n/fr.ts": "edf5b311da32025a17de99b54504289ccf8064924776258118b693cd0dc94c1c",
"packages/artplayer/src/i18n/id.ts": "8a30918a66804961345455a4da2d778dab189c88106eb4dcf6a9a273410a7392",
"packages/artplayer/src/i18n/index.ts": "09c6f5bce58e4118dde10e8b2a2d3808785b7fde913a54dd189e0b473e21266a",
"packages/artplayer/src/i18n/pl.ts": "d165a2047bf8211ea6e61c6a987d8e7338c1a7989fe184ec2bf19c7dc37d8ad7",
"packages/artplayer/src/i18n/publish.ts": "5b216bbe313b3cda56a5da41fba4fb9d095eeec0dc903fcf284ddd8f94926e99",
"packages/artplayer/src/i18n/ru.ts": "0bd814ce1f63ab7532c9347aff8e44b11c9699324e9fba2a8667db6b7cc26589",
"packages/artplayer/src/i18n/tr.ts": "acc7367f7c9b2b7a1bdbeaf33d7d41396b31fbe4506a9d5d3bd3fe356908924f",
"packages/artplayer/src/i18n/vi.ts": "c7874d6b6e5e1121f15db96ce73926a772b02b0bb594d5e517de59ed2e23ace1",
"packages/artplayer/src/i18n/zh-cn.ts": "0b1ce684db923c6df1ff0349924c0aae659c31fca7e84d15e960ce972e7a0b0b",
"packages/artplayer/src/i18n/zh-tw.ts": "0c89f997ca07b170c76e4753b4f061faad4afa34c242300dd8ee737502a5aad3",
"packages/artplayer/src/icons/airplay.svg": "8c75a40f1bfacee2be2a425e132ff51f3712eba60679010f7b1349d4a04374bc",
"packages/artplayer/src/icons/arrow-left.svg": "8b9d544b7bd728d01747005fc7a2d63f822eed3b605393e2435b6733861b585f",
"packages/artplayer/src/icons/arrow-right.svg": "68c63d6d5810173ec9192c9e96ee7b6aefdc3b79d3c1329fb4d6c750f859fe10",
"packages/artplayer/src/icons/aspect-ratio.svg": "987752a87701523057d8dfa7c45a6a139c4542b96fdcfaf8665722bbeb41f3b2",
"packages/artplayer/src/icons/check.svg": "963ce0aee2337fdee951aa6c917cc75ee0b4e75158887ccc16baebfd3925942b",
"packages/artplayer/src/icons/close.svg": "ebabfe8044f48d5df4d13f4f906a163fd55a4d6f1dedb3b5ba95601209bc8888",
"packages/artplayer/src/icons/config.svg": "e1884d5411296b5cd1bfec7803b558b0afa5ab64478393977b07a662e2e0f15c",
"packages/artplayer/src/icons/defaults.ts": "31df862d754922fe5d68b20911c477d7c22893a6a67b5dcb1a48d3b437a0b23a",
"packages/artplayer/src/icons/error.svg": "b40c01e511a599c9dd369aeb9a3b2a0d1a76ef3c5ede8124cbbc23f8e4e7248c",
"packages/artplayer/src/icons/fast-forward.svg": "abef6fe4d75ffa74d3a84683373b4702a4eda2a5b4045952f969ee62cc68b0be",
"packages/artplayer/src/icons/flip.svg": "474a9d53a97add71e3fb7bc6530a68580ce63a1d83f9b75d1c2908a7cf494152",
"packages/artplayer/src/icons/fullscreen-off.svg": "71125ac56586897e2c0e52035a4d65cff34cf52043a95b45d186e0d268671399",
"packages/artplayer/src/icons/fullscreen-on.svg": "d46cdf265cac729c9b7382722ebe7a4c76d71ad4e5a27c2d5ed8323fd595ebf5",
"packages/artplayer/src/icons/fullscreen-web-off.svg": "52a6862ecd7cba12ab7042de5064c498bc2e9f86b430358c912401fafe4f4a98",
"packages/artplayer/src/icons/fullscreen-web-on.svg": "5cfaae62b61456251e771bff01356fad8376ebedb10a4b8819740f60e6e5a073",
"packages/artplayer/src/icons/index.ts": "7152126328f6e485ee92b6d924c34776518b4a3925b2887867b516f7523b15cc",
"packages/artplayer/src/icons/loading.svg": "485472153890eff3ed49963f7bf7d841f66ca2f40894c01d6e8bcf1bf4ad1c58",
"packages/artplayer/src/icons/lock.svg": "431e9a25fae051016be0efa286387ec3e5f7651c3ecf569bf0ece9842f57156c",
"packages/artplayer/src/icons/pause.svg": "57405dba81dd3d9f329d957fdc704101cbb6f6654325eb0083c03324c4453a68",
"packages/artplayer/src/icons/pip.svg": "1e922140e0941e5b9ef53dc0b4776813e1c470ea229fe3ec786fd148148c3352",
"packages/artplayer/src/icons/play.svg": "41a961c629a55cb25a813e115a25204e492d4e935a0879177e65d6e1ddfd6796",
"packages/artplayer/src/icons/playback-rate.svg": "872deecac0365ab04aeb5ccb1cdd9a0c88589a1442709fdac7c0ed12a241ff2b",
"packages/artplayer/src/icons/screenshot.svg": "538b5cd0c6b20afb98bd850e15019072d652d191075c2869f2fc0f28b597b131",
"packages/artplayer/src/icons/setting.svg": "2976b00d1f03e78f28d0e55ebcb01d5a0746ec1a6ff8de97a5e8294bacdd1fad",
"packages/artplayer/src/icons/state.svg": "620a127f74bb5e249993bd7008c027373263eacb4a44af8adeaa0d7523346887",
"packages/artplayer/src/icons/switch-off.svg": "95a8d81a4a3bfcf7c016d5f71d46a72be73c5e94790c55fd1d31023416ef5deb",
"packages/artplayer/src/icons/switch-on.svg": "cccd0f9c1e54d9ac50c323360da944d8ff44633a82ff17889914b6bc8b1652ae",
"packages/artplayer/src/icons/unlock.svg": "fc058db3d99a475fb9ffbbbb6248978a95990a9c532b83d0955ac28eaa626c60",
"packages/artplayer/src/icons/volume-close.svg": "f7e100fd9e9f3f6e06afe5bc994d5d9305ee4d1ee23fae37e4108cf286dab379",
"packages/artplayer/src/icons/volume.svg": "3a78f40d8b48595e8f15d9189e4d767e0c7abbf0338d3f2db1ac810049dd3942",
"packages/artplayer/src/image/load.ts": "b4f1517243249d5fb017b89f993660e8b148906bbf28d08fe5c9f6d3a41e1e88",
"packages/artplayer/src/index.ts": "20cfe3738b3ce7e11b69721a5f0bdad9db77807417d8e421397a40dfade4c047",
"packages/artplayer/src/info.ts": "6594ff3ee5643d63fec874631865d0e35b4ebdcf8aeafdd9fd3d9c595cfa3713",
"packages/artplayer/src/info/keyboard.ts": "d49cb5e438461f30e2cb256d2e4eeee90854e50c275076748d32160f01a3afbf",
"packages/artplayer/src/info/poll.ts": "d26ff67d9eadf1e032445371dde6f15293a7fc0b2ae6b87c3815e4b4e1ed5dda",
"packages/artplayer/src/input/gesture-controller.ts": "1ebbd18184771a623b02ec19c363f84dcc72fdb7cd82bcf2adc97f4a138cb2b4",
"packages/artplayer/src/input/gesture-direction.ts": "65737f60e177338ebb3337a13ca75aeae77d77e94bc21495ddb829cc30de33a7",
"packages/artplayer/src/input/gesture-types.ts": "5ed25db69e0d9579a2fc0ab6faadf00fa073ad73a1ea5aa48096b4430c71141a",
"packages/artplayer/src/input/hotkey-defaults.ts": "c28e14821e5c7f7ac92a302e92439ab68fe77d5ef7d90a36b147b7c979ab96c6",
"packages/artplayer/src/input/hotkey-types.ts": "c7232470d725f3700481ab98bf9203403a67f1ab82e72394baa9c3ad6f3c9a4b",
"packages/artplayer/src/input/keyboard-focus.ts": "270c9dba40c0eb6d9fb36118b53e7f1d42a301ba4514917849523b6a05ed9e11",
"packages/artplayer/src/input/long-press.ts": "110cf16cf9dae845597377ebbc43249e103cbc0ece56f89e44ec6ecc7f3819b0",
"packages/artplayer/src/input/pointer-focus.ts": "802087098c786135eefa6727f13177ffe4a98e2abf48fad0e356b91e26960077",
"packages/artplayer/src/input/pointer-types.ts": "63e679498f8f42f6842f63e910c38717ac3438d58df3a75ef5b77c009b7931d4",
"packages/artplayer/src/layer.ts": "4014268eed043d5dd7b925cdeef6245e357cda67192a1301c5612ef98cdbec12",
"packages/artplayer/src/libs/screenfull.js": "2332b50c0c6364d5c99080be0f5739255e4b9e465d2cca40f761adce9a1908f8",
"packages/artplayer/src/lifecycle/instance.ts": "3168f7db4271bae7a242e80798546b755ac15443e15dd9ebb7675f5a259299d8",
"packages/artplayer/src/lifecycle/resources.ts": "399ea5e84545c973f8967e8ffd7326dad7b3168ca6f96f77286995a5b62ee389",
"packages/artplayer/src/lifecycle/scope.ts": "e2188e8544b27cf8c7ac149e7146af628a2d6166c82b719a247adef5d85be5db",
"packages/artplayer/src/lifecycle/template-rollback.ts": "7a83da6739bcec1587b02f8157934988910d7f9103fe489a0d6f4f65290c3d77",
"packages/artplayer/src/loading.ts": "216fa5e2af5be5fcbf95a1578c869553a02f625683a98333d4a404f9a70df9f5",
"packages/artplayer/src/mask.ts": "500b8c2fb5ded63d5acab3c984fc9757f28a8b6cbd4d5beeac8c5a6d73ca63e4",
"packages/artplayer/src/media/events/forward.ts": "6b1b7e80036bfb523b51843dc6ec6d83c2b949cefb9cef085b2d679a444e46d8",
"packages/artplayer/src/media/events/listen.ts": "4eb7e943c1ebca77da8025d83b7d408276187cd02860b7793284344378bd0fe0",
"packages/artplayer/src/media/events/playback.ts": "2c68e4f6274a0dc65e56d42c928e500fc1d63bf3e03bbdd8a83c3f3ed7ae8ee4",
"packages/artplayer/src/media/events/readiness.ts": "3ba74f26dd9ff0729967097c2cb6f329a9cea57745bfe8173f9173e0d134476a",
"packages/artplayer/src/media/events/reconnect.ts": "876027b5116d0d3628755705682b30630f4b713199ed8015541932d81d2944be",
"packages/artplayer/src/media/events/types.ts": "02bd29ad8b158fa04ce5c1524e397260ef24b94c2cf1f053e7bd02b23e5d29dd",
"packages/artplayer/src/media/hosts.ts": "498d1cde31bf9ee12af1f13523eb0a4553adb285264529378abba5b629829e9a",
"packages/artplayer/src/media/playback.ts": "b0364027e1ea26e44e435a938e93c022836885c2622cda6bc3a7ca791d3c2964",
"packages/artplayer/src/media/position-revision.ts": "ba074cce7e7c6bda84aa234de8eb315e5ca482aa9b06250896f9ac6251192851",
"packages/artplayer/src/media/types.ts": "96d4a7f066cbb6fb9138165dd736b4ca500cb19c827bd7702134d61c44cc0e87",
"packages/artplayer/src/notice.ts": "4faa700323a8fdfd91a59491a5f57da2dee9bd1f2de0d900ed16e9809a208c94",
"packages/artplayer/src/option/defaults.ts": "f357ef80cf32085fcbc3409d92dfa27b31c13fbcf823f576052c0347911c0cca",
"packages/artplayer/src/option/resolve.ts": "53a73627cd540e3f21349c0a43beda35ea5195647a31e3f5b30ac292390b4b1b",
"packages/artplayer/src/option/runtime.ts": "d1bcc7682da05a74d7af173304e47f71ba9eb59e5351436040e9dbdef5c58fa8",
"packages/artplayer/src/option/types.ts": "f2ce01c01acf45fac6cbb34685b8e6c321bcad6b0da2526f3f189eb5962ea0e5",
"packages/artplayer/src/player/airplayMix.ts": "bfa30e1dcd7cbaef97e977344e8a35524fad6bd23089cd8e45945e3b32b4bf04",
"packages/artplayer/src/player/aspectRatioMix.ts": "9e5e7365d469aeaef65a6010cb92734702191f9086b2f21d98c9f0ad7f356898",
"packages/artplayer/src/player/attrMix.ts": "d82150611a69423ed46bf673f44c3e0f61e80425026effd486a6951b6c0dd90c",
"packages/artplayer/src/player/autoHeightMix.ts": "5848e34cd826f5d4cc81d076c83fb3bcea0aed1228cd93a1edb6b8ca402ad175",
"packages/artplayer/src/player/autoSizeMix.ts": "6373a8ea7fff4cd875d17c5d3df6dc37764055ab77850a6c6348526969071cbb",
"packages/artplayer/src/player/cssVarMix.ts": "0d023f28b7a8b4c1a5e2c4dd5672ef4294c86bce0013babd9d52efa32a443b2a",
"packages/artplayer/src/player/currentTimeMix.ts": "cc374abeb85b203b9f31c566a6b9e53a4a1723d609fccc7b0c9c210993b79e75",
"packages/artplayer/src/player/durationMix.ts": "60a9d665cf302dcb6b3e37e2f057e31720935e5e588fd7709231f691f6014191",
"packages/artplayer/src/player/eventInit.ts": "a915c5a618e70b1ab10536b1273ba0fea4ec11d3a2ca629b538e90b5ad2b55f9",
"packages/artplayer/src/player/flipMix.ts": "a1519c83f8c9437a9b7e99a59e38a3d931032c579f4085226fc0955c7c9eab67",
"packages/artplayer/src/player/fullscreenMix.ts": "b339bebb4c87f7b75232d7e0d637ebe25bd09a0a0428ba87339a16af5daa71aa",
"packages/artplayer/src/player/fullscreenWebMix.ts": "75b83a6093c7887ca8725f63c55503d0bf3aafdbbf2347b579120cb257503555",
"packages/artplayer/src/player/index.ts": "359943c88dc99863e510fc0d51f8e8ee2397217e68045f755d4e9538579bdaec",
"packages/artplayer/src/player/loadedMix.ts": "6a4c4a08ed74346dad3e138b1dda22c8c9c12f175fe6d00da41b89c78cbe2c18",
"packages/artplayer/src/player/miniMix.ts": "d68a0c4f6c6059d5831d2d1fd4823b8d3cbce95eefd6d36d38670d6d8720f44e",
"packages/artplayer/src/player/optionInit.ts": "7c1c47679ee6201d0e0d203fc7b449a09309e7b24a0a1099ad259a70fc1b1a35",
"packages/artplayer/src/player/pauseMix.ts": "5bbb68eab7dcf2170c944cabb8d4b82be4e6d7623e37ad6ea464b81c1028bc0b",
"packages/artplayer/src/player/pipMix.ts": "63dfb29ffd66ce7d081b24f8e8bf697c041675b49ab8919e206d2df5132de236",
"packages/artplayer/src/player/playMix.ts": "60249fcacdc5b1bc6f33bcd806e8a4f5472cea21d40550b042794a75027fe34a",
"packages/artplayer/src/player/playbackRateMix.ts": "e185c6ff52cd567f7fd7c30553bbd6c65517324d1d16c4948c3623ef457ef536",
"packages/artplayer/src/player/playedMix.ts": "5b6b89bf8dec1efb19cd51e46af1505bae006bdb3fb798e9dec7e3fb5cf0acaa",
"packages/artplayer/src/player/playingMix.ts": "968c9f6e6d23c233c77d62a593db64adcc6d1a2411f5f1c61a35c6996d6a54d9",
"packages/artplayer/src/player/posterMix.ts": "d569dc24e8e64efe398bd76942bfaf563ffbf64d2a7387ea2e1cb1cf511183d4",
"packages/artplayer/src/player/properties.ts": "76806d6273545ff556cf9c6d341b59b9041455a8ecbe1fd40510e841c0d5710b",
"packages/artplayer/src/player/qualityMix.ts": "980ff584c8a5793f5ec9f049f144df31d184d7c9acef49fbe9d504b7657a96bb",
"packages/artplayer/src/player/rectMix.ts": "a741ee09fa3271df84363c5d73eac1b2e5adb39491f95f8112af81f1219ffed4",
"packages/artplayer/src/player/screenshotMix.ts": "1754bbce09f713204c120cd4657b52c06eb09eb1fe3244f84474e5967cd68e50",
"packages/artplayer/src/player/seekMix.ts": "e6e1bf00e8441f1ce58d2a67a66f7e5e98c86d78620ff10a5e6268d54f13fadb",
"packages/artplayer/src/player/stateMix.ts": "e45b3209a93ab14665d19c5740d5c632187e9fe234b019a2a0263e26884ab3b2",
"packages/artplayer/src/player/subtitleOffsetMix.ts": "e7866cf3a6d9fe271a4c34973f7a961542a738e89a3647df85197cee5853ce8b",
"packages/artplayer/src/player/switchMix.ts": "b47e174ef0edb2b96ff29f2ddd3c9f2dd2a38713db2a81002b18c89ce71994e9",
"packages/artplayer/src/player/themeMix.ts": "5bf11bcf8b77cd5d5f2970bc3edcee315c693c1be3d567770d5107a5951cb48f",
"packages/artplayer/src/player/thumbnailsMix.ts": "6c097d7d00779a6d0d3d65cf9ffd126624a48c9bdb98396c84c39f4de4bdf712",
"packages/artplayer/src/player/toggleMix.ts": "a3050136248e7d0b942387484c61286ac2b33a90724b1dc3460f5061be76f247",
"packages/artplayer/src/player/typeMix.ts": "c2a234a9c09f0269a4bd0659087635995945075ac70a5cf2478c8a135fc1b2fe",
"packages/artplayer/src/player/urlMix.ts": "726a42899261879e03c8b1d4f716458bf3e6e614cecc3bb8d7a581afc2b7866d",
"packages/artplayer/src/player/volumeMix.ts": "d830bb27b984e0ab2f687943fb49abcbd0331d71fe96049fd81edbddaa64f07f",
"packages/artplayer/src/plugins/auto-playback/prompt.ts": "58c6dcaf540296ee6f6bdeeda38ee7302aca2b06ddb152b716c0c2bf9c6c96b4",
"packages/artplayer/src/plugins/auto-playback/records.ts": "133a4ba2fd2d3df724d96eb203d05cffb0b82ecb8de72403974f7979bd37ce01",
"packages/artplayer/src/plugins/autoOrientation.ts": "4a13b0c010ea7a5002e66c422260ed24bb0d18b3ed41ce10974ac7ca2804cc09",
"packages/artplayer/src/plugins/autoPlayback.ts": "e349010813bbcd53503383b707c5f6e6e60d8ade6442d020fe6ba07a128c3122",
"packages/artplayer/src/plugins/builtins.ts": "4631c9775732982dfdc87e16b1bd6b41a350be36fb27e0a9132c11a85b0c016d",
"packages/artplayer/src/plugins/fastForward.ts": "74c03e3fcfe2f87dcb0ef1a5da5410cb96322509fd07e32930128584c54f62b5",
"packages/artplayer/src/plugins/index.ts": "4c97f354769bbcb338263f321876a90745a87a9af2d267e216bd3d9d007f268a",
"packages/artplayer/src/plugins/lock-keyboard.ts": "d59ac2fc9d0daf48c7946e0b49698a74e01f5f55e903c1b090fbda5516cbd16f",
"packages/artplayer/src/plugins/lock.ts": "8f5fe4469787b7b2a0a302d0fbd925f8eb6d1b261cae6e17367e4d97666a096c",
"packages/artplayer/src/plugins/miniProgressBar.ts": "21b4850fcaf6b0e82d5e62ca7aca60c179c578f7ff6d5606e6025628ff4b1cc7",
"packages/artplayer/src/plugins/registration.ts": "9891686c32aeaa33c48ca500cf30ab24ffbb0835c6248769b4c645a5ff20129b",
"packages/artplayer/src/plugins/types.ts": "6823098d5ec1bf053f60ddfdd36bfcd3f06f3b528cc5dd30fd676a1318dac590",
"packages/artplayer/src/scheme/index.ts": "dc4a3b5e08478cf72b46b0b59c023359ad5f79b891ea8a6a119ce24a5251821a",
"packages/artplayer/src/setting/activity.ts": "699ceed4bdeddb6d48eacf79c8dbf737f5d2d8c4983be70205322b14807a91b7",
"packages/artplayer/src/setting/aspectRatio.ts": "a16eb58fadf77f0a9009cf162d957ffd59d9b8fde83cc193d510fd642e3456cb",
"packages/artplayer/src/setting/checkpoint.ts": "9d3bff311f9b15c067ca49661af4f48de939f266b8077e7c2f0d66edef22dde6",
"packages/artplayer/src/setting/events.ts": "f7a3347ca146232caf2a8c9a5a18731cf7bc91dca4cd36370e0265c6eb70df53",
"packages/artplayer/src/setting/flip.ts": "e72a4ae33300d9e48880897a4f85a04fa6d9a5fff7b06ecaf9081cfb1bb14404",
"packages/artplayer/src/setting/index.ts": "f6319af15ebe3600a466123dd9d343b86a8d6ed201693ac7ac86dc1d674d477f",
"packages/artplayer/src/setting/keyboard-focus.ts": "2717ce081f9bace0af287759571aadaab7e95c4be3b109a3168311a439b7d158",
"packages/artplayer/src/setting/keyboard-item.ts": "d94bfc0266486615ddb79b9eee3886f48891ebb2e5f465652ef98f142ada89d2",
"packages/artplayer/src/setting/keyboard.ts": "14781e4308b2ea7043314e88fb40f379a3dcfb4c97f10508b96b3455a05c3286",
"packages/artplayer/src/setting/layout.ts": "584604e8fffaeaf1d633d1ed45e64d94595c2a56976e3a3f7ede01839b83a37d",
"packages/artplayer/src/setting/model.ts": "c47348f0f9494c4ce8ea5561bcde6eb698fb11e9197ccdc1ca1359a6d5e370dd",
"packages/artplayer/src/setting/panels.ts": "64d48720971763985a2a652a18c2ed2f32300c3553d56b52049ae40c4dfceae1",
"packages/artplayer/src/setting/playbackRate.ts": "2e70e0d2a33cb0ec9fcdd6d22424979fed7b2e01f87015d6be4e520d5cf4e88a",
"packages/artplayer/src/setting/registration.ts": "c29db62b5d90e0efa4a926c753015e65e96a47add3f5b8840ee51017052edf7c",
"packages/artplayer/src/setting/render.ts": "ed73745f2c7e2d76bbe8ce7202336e5f4de217dc8f0806b769127cb25316faba",
"packages/artplayer/src/setting/resources.ts": "64c28cc2cb08cb87b0864ab957d7999bc94931be4788f282d6f190b8806a81fd",
"packages/artplayer/src/setting/selection.ts": "a642e630924eaf4ad91705fad1fa6e6dc946b32970d809a23da274399fce20ef",
"packages/artplayer/src/setting/subtitleOffset.ts": "86513835d4e542ac39e9d551507473e3e14c71fd0d5ea725267008ecbff6ab83",
"packages/artplayer/src/setting/types.ts": "21a07d75a28bbbe20b3e107b6f1a09cb6f8ef2773ea10a4bd7caa88956e9b99c",
"packages/artplayer/src/setting/update.ts": "79326cb55c52243a7aa8df347a3b081dcd84eb7932fc6162061cc0d9f7078add",
"packages/artplayer/src/source/listen.ts": "c0596b98258c1544c8e4b762509646428450e56588da36908cb8583b8b716c37",
"packages/artplayer/src/source/operation.ts": "a6cb65594a5b28247e3a6889fe0a2f47a34aeb08cdde5f0125800a87862cd559",
"packages/artplayer/src/source/restore-position.ts": "da98a47e8419b33069191e51fc94cc9652302ee4f3eff8ccc7a6dbd4c4c0e2bc",
"packages/artplayer/src/source/switch.ts": "16f5418d73a1d6e89fbb797afcd79af13857861ba25cca9046c16b70ad31d431",
"packages/artplayer/src/source/types.ts": "e5fa3a9cd6b84dffbbb02f61aad966d6046204d857de3e4564c795f02a0259ff",
"packages/artplayer/src/storage.ts": "9c0a0f3d8ac18261db6e49b2ea14322d1d53bfec3531c7337b85005e708fef30",
"packages/artplayer/src/style/accessibility.less": "eb9cfe282c64a059d2e102280750bcd33ac33726fa09042eb9875f534335efef",
"packages/artplayer/src/style/artplayer.less": "4e8513138d5d10c05b66986977d24ed17f1de3c0df3816dec6d90db7a97b5da3",
"packages/artplayer/src/style/aspectRatio.less": "091931a0cdc83e65a669332811ef3276b85bca9e55f7fff42aa46893d728c1ef",
"packages/artplayer/src/style/backdrop.less": "6c2cd0fa200d1f3525df98c3c56dbdc553445724aece3feb0386949245813343",
"packages/artplayer/src/style/bottom.less": "6fb307d8449fd04b804d5e72ea0f175f8aa9c9dd2bf1efbf756f800b39ac97ab",
"packages/artplayer/src/style/contextmenu.less": "70f6c7e26dc96652b659c7bf6fdad92737ed477dea69d253c57dc7266c76586d",
"packages/artplayer/src/style/controls.less": "eb6d4bf4e4ff903d724d45f3ff60f0cf10c02e622fba195555a8179100cdce87",
"packages/artplayer/src/style/danmuku.less": "e4215ee9fa2f1d0599e7311a2415cc975138265b7c6af0448d27d21b6c9e3511",
"packages/artplayer/src/style/flip.less": "5d3c7a81df9be455c2f683ebf48f39597d218dc2144addacb72ee1736bac3b7f",
"packages/artplayer/src/style/fullscreen.less": "dd350d3a0fc556d59b622a53c786b8c2a583e8fb28176e4b9e91baff90479496",
"packages/artplayer/src/style/fullscreenWeb.less": "d74e785c2fbbb2976e131620e751326f622f2916eceff9f2333059ca3296cdc9",
"packages/artplayer/src/style/hideCursor.less": "09a4607c8b0005dc199828172aa8dda395f861e407769b9696d793476c4a7823",
"packages/artplayer/src/style/hint.less": "ae9f3115dfdb1e2d7b8249497c080e6a25f9667f915f6e89820338d67bbc2d85",
"packages/artplayer/src/style/icon.less": "52d8f75c1d193e6160f57ca6997c3f9135adad8eb2338ed60c1eb8e5fe443be5",
"packages/artplayer/src/style/index.less": "7fece0bc5b5a106d051eb80152d5e4558f2e73953c4c33175aa901b9695be61b",
"packages/artplayer/src/style/index.ts": "856afc037ffcd4d18c4b54901ddbb30e310014553fe9d19560e34fb54b8378c1",
"packages/artplayer/src/style/info.less": "fa56d1b8c8936218e581b2426026e4ba85cd5fea20d045c4f69aca96be4059be",
"packages/artplayer/src/style/inject.ts": "9cddbe51b5de0da74f27c045ab982b509c3854cc6b81eeb02a6b974914760a4d",
"packages/artplayer/src/style/layers.less": "9653c581190bb22d60a706109819cd010908898740701c9526957b5682991c5f",
"packages/artplayer/src/style/loading.less": "185b0f05274196ba71fdb1d088b55af568f3342a495490c99c3f0e058a40659e",
"packages/artplayer/src/style/mask.less": "d1239a171b71ea6184cb4aee6660d74d6ffc0c48f7c47c3cf5fbe52d2e93ac92",
"packages/artplayer/src/style/mini.less": "8be782a3054154ab908b1cce650b6131330cf0f0e936b749accb4b2dfe605a27",
"packages/artplayer/src/style/mixins.less": "c6be95aa682f266749fe37cb89796fbec6488abc537174f817da79bdac6e00b5",
"packages/artplayer/src/style/mobile.less": "ff3f64fca5d2dd7ddd50385d88d9b2fa1a645909488ab7a0978ba4f1670b7c0e",
"packages/artplayer/src/style/notice.less": "72a935c0effc557a9d7ab3baccb2c3b77fc3a1783450b4e3178a40a5325fe369",
"packages/artplayer/src/style/plugins.less": "ea345094ea5708dd3a3c290f357dbb301b38af35464d213c47e3ec6c60eaadca",
"packages/artplayer/src/style/poster.less": "36b38fe138f8c9537ff4e93f7ec4f2dbdba1ec41d243d741ddf1da7c6581e546",
"packages/artplayer/src/style/progress.less": "59b9d95d49dbcb1be40752d7086239b6de5925b0574da231199d999e22ff4990",
"packages/artplayer/src/style/selector.less": "44585c6b0179e34d21eeefce6d3494faacc0e9d108079426876e8847fd441513",
"packages/artplayer/src/style/setting.less": "5618eb443ab6368bc4a18e9a379ce6552629555cdca6074e753aa6fd7baf9bf9",
"packages/artplayer/src/style/subtitle.less": "273cacb63ec0214ba434dcf19a4a455dbbdd408fb2d1749de4878804c1371e41",
"packages/artplayer/src/style/variables.less": "703739b2bdfc77bfde063d8788ef6b6a55b8730764baae8e7d755b7c54d8ecc7",
"packages/artplayer/src/style/video.less": "b89c6f6e27592d49825c68c9ab98d46e81cb1e5add855863f89d19637f98e35f",
"packages/artplayer/src/style/volume.less": "6e99bbe0dbcb40667ef99789b65812dc9c94ce8a1071c00d2edec5eba041c434",
"packages/artplayer/src/subtitle/index.ts": "b4ead680dc82fa47c53d1ec7e5fb8bf94abbf55730d5d1130ad8d544cb42adc8",
"packages/artplayer/src/subtitle/parse.ts": "7db540c5edb1d2312eed82757fd15a7ce6a28996ba20d0087e56730f21dede74",
"packages/artplayer/src/subtitle/render.ts": "96493fc35680af635a8db225a8bf002208df79ed48b1d4ee6cc73587543add5c",
"packages/artplayer/src/subtitle/request.ts": "543c964571bd5ab984bc1adc9f64a8917dd134ed2892ad10b30ed9c859f34119",
"packages/artplayer/src/subtitle/state.ts": "9f79b982d66747170bc39bdaf99b65676310965f23da62a4dec15547c756a56b",
"packages/artplayer/src/subtitle/track.ts": "707f4c43af4ebf4b87521f6f577168460e739274d0cec28b9efe5704d2540d18",
"packages/artplayer/src/subtitle/types.ts": "615e389b4bb36196a69a059eb04cf7e519cdac13d2da15e4374fede2f3b6631b",
"packages/artplayer/src/template.ts": "0ea9155b9292d4c528a464d3c97996ee5a1c9c4aabc2959a744989085db2251b",
"packages/artplayer/src/template/html.ts": "351c472bfd01fa5ba1a4e347ed31bd5faaf823d9b4c5cab1ce8c651e3b175021",
"packages/artplayer/src/template/nodes.ts": "1572746a636647e4d313cc8752d3a110ff81fddb390ad7b0feb6a0db0d42b9d4",
"packages/artplayer/src/template/types.ts": "2bf906b4a209e17dae4d79225e758e2e53772e93f19f188d0131051ea2a0143a",
"packages/artplayer/src/thumbnails/layout.ts": "6630439242a880f53fcb374b7b15c7f486405aab8a0fad651b137f02971eeb59",
"packages/artplayer/src/utils/compatibility.ts": "1fd2a5b17ee3245712eda961d3c0a15caf3c428010112e48231890176ce1e5e2",
"packages/artplayer/src/utils/component.ts": "8f82a43a5871a1b595d145831f1993755f114a74865faf2f2761b41bb4164c4a",
"packages/artplayer/src/utils/dom.ts": "72f3539dabf296df37ab4cc7ade0c8ac9480f399987101589450c787e7d6719b",
"packages/artplayer/src/utils/emitter.ts": "26a93d3ff35b53e71a5f3bb22c252a854559d8151ede50a66a28d9eefae6c008",
"packages/artplayer/src/utils/error.ts": "ba303c7d4e4228919088f9d608fa364596f5853ee646eda2008deee354866f38",
"packages/artplayer/src/utils/file.ts": "ea71d7fc0e818d473bf5a596211ba9d571e4febdf1878014eadefa8d0a98d4cc",
"packages/artplayer/src/utils/format.ts": "891df5b7542b713aef46bf2b93924f42e68eee574afd802db3e6c62ff2655ede",
"packages/artplayer/src/utils/index.ts": "5211af833dddb2937d25dcc772740d62f9d5c5039ce5505bffff0796d4afd756",
"packages/artplayer/src/utils/property.ts": "c737d4582a4382f4038d12dafdf8b43418e508c9b8b859b2f0cc17c20f370343",
"packages/artplayer/src/utils/subtitle.ts": "f058851d11a418e321a8a498472b67fa535fec2c7b5d3df739b6b4f263d00337",
"packages/artplayer/src/utils/time.ts": "b8ce3d50865f6c343e8e3ce9f5c87de565a87b4e9fbcbccbe7030e30e80b93fe"
},
"publicTypes": {
"docs/assets/ts/artplayer.d.ts": "b78e811fbae9434e54598d00060e220b6f2fe0943de5328fc796183b96fc2aa6",
"packages/artplayer/public/artplayer.cts": "0e91e907d021db02a68004603e6190505fdc0806d873ebb6af171aa089a81da7",
"packages/artplayer/public/artplayer.mts": "f6292596a9ccb1d43a6d6a12c35f859b1889ad15924c5ae0f9f280941aade313",
"packages/artplayer/public/artplayer.ts": "26a42ac66811e70f68a8ebe62cbf304eb1993451b3e658961be98e7106162527",
"packages/artplayer/public/component.ts": "aa1c43be67322781b4b355b143bc69d9f29d22e578e4974d6a13e957a7c0334f",
"packages/artplayer/public/config.ts": "c4fd8681bf32b10c743e3e561c532520c8f32e43fd765524850b15e55cb91c72",
"packages/artplayer/public/cssVar.ts": "e027d82fb4f01c9ce7559cf679b2d5ee1962d3f7e5b4dd64ca21f472b933efb6",
"packages/artplayer/public/emitter.ts": "9c62551cdcc6dd3966bed8a7a85dd477435db977c91a294d2ac8f162f9592537",
"packages/artplayer/public/events.ts": "af191f862af4ec8933b09113b8c074603ae254a8b70460d0f3006646cd74ae42",
"packages/artplayer/public/i18n.ts": "864eff1a723b81990ad90eeabd3f5c1166f395ec6eaeb5f37299036ee6430417",
"packages/artplayer/public/icons.ts": "0d8e8e52e52130dd4a29bab551dd7a2a954797e42e92a6e068c85d583e23e6a4",
"packages/artplayer/public/language.cts": "2248040d86a8e34626755c4ecf53ea0174706c653073cf0e15884a030d173120",
"packages/artplayer/public/language.mts": "c391e863012c77769e661afbf8fa949e9373aa88d17f58cbba7f5696edb8077f",
"packages/artplayer/public/legacy/language.ts": "c452ffd764ff9b29b819b3475c42395d2ea7a33560d8c186ef5df3844b9524c3",
"packages/artplayer/public/option.ts": "850e5264219b8b438c80694402225b690b131786677a5da0d22739ec2352d263",
"packages/artplayer/public/playback.ts": "1ceaed3aa1cef511fe8b20f4874647f6065c723ad805b742a0a9247e16bb1bb5",
"packages/artplayer/public/player.ts": "f1e50257df2ea592d0a0e1f36078dda77eaf2cf3b3d795307501396562d99f28",
"packages/artplayer/public/plugin.ts": "2a57e148fda00ee687da5036b890b0f611cb94bb403a1ed52602179060259d35",
"packages/artplayer/public/quality.ts": "7ed6ed78cea52991b2f6ddd2bd3b7bd8c5146fdfff7486fe8b814c3e632f1567",
"packages/artplayer/public/runtime.cts": "52cfff1daeb6841a90212c8fa8d46ca46d6650bb7ed1b59b62115d854b8ad652",
"packages/artplayer/public/runtime.mts": "1b09bc0ee0f0ee2f788689eaff441bdeda1fab0ce783e71b61b9792d81072b03",
"packages/artplayer/public/runtime.ts": "ec4b1d56993eb482a77eb0f94b701047549d009e6ba6433f27e7d464fef30c2b",
"packages/artplayer/public/runtime/component.ts": "840213299c942fe058eb5436977ceec066b9dccda24c55ae9f464b399c979e39",
"packages/artplayer/public/runtime/construction.ts": "24cc5cda1f614314db382271a9b0d5583b781894cfdf6c548700b1b5270467ee",
"packages/artplayer/public/runtime/events.ts": "52848f57d35eb1037cf74c8877521edf99a015bcd77f30ef6bbcba1807a99bfe",
"packages/artplayer/public/runtime/media.ts": "8828f80953aec3e95328cefe691661e8897cb27cb309483cf806ec45a8549ae3",
"packages/artplayer/public/runtime/option.ts": "bb672e49ffe74a6fc78543217f6de80d7d738890146df0857c709d4dc283e4ce",
"packages/artplayer/public/runtime/player.ts": "a4a24794e26cfb9e4310bf0f459a7a407e85bf81b4f3a4feb6294331af8036fb",
"packages/artplayer/public/runtime/plugin.ts": "9ad482f2a77914a91450419680b8af6b314b926f0831c2f7f6d7c466690f95c9",
"packages/artplayer/public/runtime/services.ts": "8e4648d8c61bff47343f9e1c2b995af69fc00947264b826109ceadcbaf553254",
"packages/artplayer/public/runtime/setting.ts": "c48d20957b57f79f985ef76a2950cc8a5cfa25dafa8ec5939e562661778e6218",
"packages/artplayer/public/runtime/subtitle.ts": "13241c4f9a87517aa2cf7b3e0bb8cedaa12fa0b4d3f8934285797583b752557e",
"packages/artplayer/public/runtime/template.ts": "da9975513a1938e7f386f4f65f718f0fc595164bfeac8f0cd99a3e97a54919a1",
"packages/artplayer/public/runtime/utils.ts": "cab9916f5224a3b047812b9f759cc9cc62105662599744067a6955020ab36916",
"packages/artplayer/public/setting.ts": "d12a75b656fff70cbb30be4bffec46d9c4273636e8722bce971a4d2b188712a1",
"packages/artplayer/public/subtitle.ts": "d25b470e47d6a9bd696d9c1ad8adb58e56a208f05695186d513bc8c43c2e8acf",
"packages/artplayer/public/template.ts": "68aed9e97d006d6be4fabb8504ca84dafab770b0925f4d6e7319e67c82f21b0d",
"packages/artplayer/public/utils.ts": "494ec447ab467a07ddd7a2c2abf778b3fce69fd28a09aaa8ced9759f8de2e3f6",
"packages/artplayer/types/COMPATIBILITY.md": "a7da9e102a116104b513df4f7451247b7759bc502d3375f30bd5b14a541826e0",
"packages/artplayer/types/README.md": "1bd9868e773610e6312fd48a1c5aa20772d29df0af40c3db66e75b7ab4a1aee0",
"packages/artplayer/types/artplayer.d.cts": "3685065e4263abcfd9d953176e461d5b3eb990b0363b54689a7f55deba770fef",
"packages/artplayer/types/artplayer.d.mts": "b664fec51ee5c5381f2ceab25d99d52aee56feab04a2ee7b4ea5b2145ea5fa0e",
"packages/artplayer/types/artplayer.d.ts": "5d0162adf7ac6d0f2bb9b5cfe361f28657c4d9c540cadbf36eba3cc954ce50f8",
"packages/artplayer/types/component.d.ts": "ae5bc1ddeaa1ee1ebbc62573e32423993727079205c64751a5a314170e588a32",
"packages/artplayer/types/config.d.ts": "36f9a84cd436f17701a0d11d3417fc1fe0414e0c52c80083b94a85dfc329e37e",
"packages/artplayer/types/cssVar.d.ts": "93217860fff2ebf750f606d95ddd22220a58837119e63bdf2f5f78fd7488458b",
"packages/artplayer/types/emitter.d.ts": "7e1f9a2a8ce65feb95734f1ed52d1334e57aa388bbef2a43d8bc53a9b6f6623c",
"packages/artplayer/types/events.d.ts": "f83624c9268a284477e8bd793fe3562a2363b72f2a44d5c64fe8c6a6cede8830",
"packages/artplayer/types/i18n.d.ts": "31381ca70774b7cb50e32305b83adc7a554e4de7944fb2949e07b612c393f851",
"packages/artplayer/types/icons.d.ts": "326a67ba7bdcf52862c5b2a269e540140aff98d05c7b96196485a77f84fe5960",
"packages/artplayer/types/language.d.cts": "f7928e108cf7b7814c2d75cb0a525333e95873fca6cd6d89a740450656b9c1cd",
"packages/artplayer/types/language.d.mts": "6619a26d604b7cccbe2f596243d87ae37cfaae33b8b52874ec071d9787446f9e",
"packages/artplayer/types/legacy/language.d.ts": "c7abda4d506fd933c350e9030290bf9e64347a921d683a66115da1995ebe0a81",
"packages/artplayer/types/option.d.ts": "ccf2c8ddc537dc65c9682d39f044726e23bff18f476b622512d7e6a4b949b5f6",
"packages/artplayer/types/playback.d.ts": "58705c273df6e76a77a6575e769a9ec6c013785c25080f2551aa22415788d870",
"packages/artplayer/types/player.d.ts": "92b00211b70ac71336e495899df972a0519dd138111846044fe4e0f967966177",
"packages/artplayer/types/plugin.d.ts": "fc3594a41c51d8248713e33c486fb1f6a518ac5c7ce31be6988a6cd8d052c5f3",
"packages/artplayer/types/quality.d.ts": "1ac1a48b4f74ff9ba1ce60443e1463d50d1c6a2e5d87d63dc7d2a8eb7f4c2c34",
"packages/artplayer/types/runtime.d.cts": "7ee988dfea9a0ac71a34a656f96f7b74e78aa92547cfdfab7ff7e1139a77d4a3",
"packages/artplayer/types/runtime.d.mts": "dcb85f59a8b7714918ced0c1d18c2bb24e8b80b56d8c594e019dcbdb5ad88b08",
"packages/artplayer/types/runtime.d.ts": "9c6ccd39a1be293f17ae46dae8ea077053e12635ee79d73a5e3b3a559230fcff",
"packages/artplayer/types/runtime/component.d.ts": "1b4c0cee44568649e80140fe778febfcae88af0ac85515f1cbeff78ab0c6d14f",
"packages/artplayer/types/runtime/construction.d.ts": "7a87bedf6f7ffff0c46078aa5f1551e0077d35574e286516121f5f935e2d9ce4",
"packages/artplayer/types/runtime/events.d.ts": "a1e2f9d387475453eaf95c2a5ee79e228636c0bb859bda3fcc46da46574a0c31",
"packages/artplayer/types/runtime/media.d.ts": "8fc89401be7fe25542c169d07dd5675f10916ed20be8493e19695966cf3864a8",
"packages/artplayer/types/runtime/option.d.ts": "6e334e1a76fdcc40b4665c02523bd31c3994d96078fadeb40e23422aa54c1a1d",
"packages/artplayer/types/runtime/player.d.ts": "8ac6383502e4872e83659838844856903031a81a0adc8e8535feb78453aa042c",
"packages/artplayer/types/runtime/plugin.d.ts": "8528f2b17843149f42f9cc16d6fd70baa238c9dc2c329b67d2c38096799c69bd",
"packages/artplayer/types/runtime/services.d.ts": "604c9f8e4b6c0da818f96576bf9f4b0e96085a9003927b2f7ba30027b1ba237e",
"packages/artplayer/types/runtime/setting.d.ts": "349c1fcb205ad312916bd3ee55e6bf241ea8a569fb2ab6c80822e69fc518f7d7",
"packages/artplayer/types/runtime/subtitle.d.ts": "269ff84678d327b3a9dc2f5bc6cc0d731d1e081b85422e474621d5d792efb153",
"packages/artplayer/types/runtime/template.d.ts": "7a62f968a38b4bf9109a4439557c02074eb1d62ba1f6e21a8eb194e91f0badfe",
"packages/artplayer/types/runtime/utils.d.ts": "6bf731705d86853e066dbaf3b8d4003b6548423fe615b7412b722bd0d3a6e48b",
"packages/artplayer/types/setting.d.ts": "08305a75dff96f06490430e099338b463df471b550c1d0dac3abc8995b39eb09",
"packages/artplayer/types/subtitle.d.ts": "b18314e2d64efdb6045830b6e12f615ae2ed585416130e562329ad3ea337f6ce",
"packages/artplayer/types/template.d.ts": "4792bc0c2cbcb7966e4375118bd34b326166e0831862e94ace4cf6b1bbe6a8c8",
"packages/artplayer/types/utils.d.ts": "fca0d3d814df94a25f9eb067c86fa0cf272e2791bac793b91229d57680797712"
},
"unitFixtures": {
"test/builtin-layers.test.js": "14af539fe85896a26fcc46891d56bb33adb0aac54dc273ad8061cb93ecdd0ebc",
"test/prompt-components.test.js": "c8328abace4cbb34d0f08780983cdf98406287018247a7ded5cc18d847b96c82"
},
"tooling": {
"package.json": "315746ada69ccb62b8b8c10016b3e467667db9e39518b32dc8036cbade662ea4",
"test/browser/accessibility-controls.spec.js": "d07d9919b9e9d960116770f82ebb61d165bd4b9fbc343a4e821d9cf9313dccef",
"test/browser/accessibility-info.spec.js": "348268395523d4fb5c2d9b6a2486cfb0d1e1b8ef84d13e97ad9db22f5e3ed173",
"test/browser/accessibility-lock.spec.js": "2c208fa3deda0f10769a95c697cb7618225897ede408d857d107706acae5e7f4",
"test/browser/accessibility-mini.spec.js": "a0d667265145ff24e37624775ae388f184ad425c4844c47ce8c692de31123a32",
"test/browser/accessibility-selector.spec.js": "aae91d2449e2257bfd19999505cf0bb5c631bd49b0dbf597ea1ac48e2f2a25d1",
"test/browser/accessibility-setting.spec.js": "067ace54bf2f73daed4d26c005daaaba09f292f7474825070f2dfbc0c50b544b",
"test/browser/accessibility-slider.spec.js": "b88aa23fc1b76e3a902150a8a9d4a801531f397b0a27120b4741baf67f82bc47",
"test/browser/accessibility.spec.js": "f10bdefdaac2359d1af5d2099cb8e1770bd7ca486362143f663b5c54459d6cab",
"test/browser/builtin-layers.spec.js": "4efa0ebe413cbf0ca9b06074ce73ead337136bc477c4f8fda6665be0504a31eb",
"test/browser/hotkey.spec.js": "a6565949f25d702aeb33ef8ebbddf2ed995d67f09a47c7bfaa20010da34dfa1c",
"test/browser/prompt-components.spec.js": "2513a31306bb17b713aca2f9bc44f045ce34ac547482b4507955b0f1f14484ed"
},
"ci": {
"passed": 468,
"productionTypeScript": 245,
"logSha256": "9aa8933cd69a53de9e280533d4bf2be368ba024c11a0cbe52feb3426656de8df"
},
"browser": {
"stats": {
"startTime": "2026-09-11T12:13:41.284Z",
"duration": 87030.972,
"expected": 306,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"versions": {
"chromium": "153.0.8010.12",
"firefox": "155.0",
"webkit": "26.6"
},
"sourceBuildSha256": "3c7d961f40bbe894da833a075052962c897aab5ce72bfa8588c693fd3bcea372",
"cases": [
{
"file": "accessibility-controls.spec.js",
"title": "candidate: replacing a focused control restores its new entry without intermediate focus",
"engine": "chromium"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: removing a focused control chooses a surviving neighbor and preserves external focus",
"engine": "chromium"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: failed control replacement recovers focus but a veto keeps the original focused entry",
"engine": "chromium"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: callbacks can transfer focus outside without an intermediate or final control focus",
"engine": "chromium"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: replacing a focused selector option transfers focus to the new control",
"engine": "chromium"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: removing the last focusable control leaves focus on the player without an extra sequential Tab stop",
"engine": "chromium"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: focus recovery skips unavailable controls and uses a replacement native button",
"engine": "chromium"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: an unrelated instance update cannot take focus from another player",
"engine": "chromium"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: a disabled native replacement falls back and focus callbacks can destroy the player",
"engine": "chromium"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: replacing a focused control restores its new entry without intermediate focus",
"engine": "firefox"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: removing a focused control chooses a surviving neighbor and preserves external focus",
"engine": "firefox"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: failed control replacement recovers focus but a veto keeps the original focused entry",
"engine": "firefox"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: callbacks can transfer focus outside without an intermediate or final control focus",
"engine": "firefox"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: replacing a focused selector option transfers focus to the new control",
"engine": "firefox"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: removing the last focusable control leaves focus on the player without an extra sequential Tab stop",
"engine": "firefox"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: focus recovery skips unavailable controls and uses a replacement native button",
"engine": "firefox"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: an unrelated instance update cannot take focus from another player",
"engine": "firefox"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: a disabled native replacement falls back and focus callbacks can destroy the player",
"engine": "firefox"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: replacing a focused control restores its new entry without intermediate focus",
"engine": "webkit"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: removing a focused control chooses a surviving neighbor and preserves external focus",
"engine": "webkit"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: failed control replacement recovers focus but a veto keeps the original focused entry",
"engine": "webkit"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: callbacks can transfer focus outside without an intermediate or final control focus",
"engine": "webkit"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: replacing a focused selector option transfers focus to the new control",
"engine": "webkit"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: removing the last focusable control leaves focus on the player without an extra sequential Tab stop",
"engine": "webkit"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: focus recovery skips unavailable controls and uses a replacement native button",
"engine": "webkit"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: an unrelated instance update cannot take focus from another player",
"engine": "webkit"
},
{
"file": "accessibility-controls.spec.js",
"title": "candidate: a disabled native replacement falls back and focus callbacks can destroy the player",
"engine": "webkit"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: info keyboard entry, Space close and Escape preserve the opening control",
"engine": "chromium"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: info pointer and programmatic visibility preserve unrelated focus",
"engine": "chromium"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: repeated info init replaces keyboard bindings and retains the current return target",
"engine": "chromium"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: info with a removed origin returns to the player and destruction disables retained controls",
"engine": "chromium"
},
{
"file": "accessibility-info.spec.js",
"title": "published: optional SSR info wrapper may be absent without preventing polling and close",
"engine": "chromium"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: optional SSR info wrapper may be absent without preventing polling and close",
"engine": "chromium"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: failed info name initialization releases its handlers and permits a clean retry",
"engine": "chromium"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: info keyboard entry, Space close and Escape preserve the opening control",
"engine": "firefox"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: info pointer and programmatic visibility preserve unrelated focus",
"engine": "firefox"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: repeated info init replaces keyboard bindings and retains the current return target",
"engine": "firefox"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: info with a removed origin returns to the player and destruction disables retained controls",
"engine": "firefox"
},
{
"file": "accessibility-info.spec.js",
"title": "published: optional SSR info wrapper may be absent without preventing polling and close",
"engine": "firefox"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: optional SSR info wrapper may be absent without preventing polling and close",
"engine": "firefox"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: failed info name initialization releases its handlers and permits a clean retry",
"engine": "firefox"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: info keyboard entry, Space close and Escape preserve the opening control",
"engine": "webkit"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: info pointer and programmatic visibility preserve unrelated focus",
"engine": "webkit"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: repeated info init replaces keyboard bindings and retains the current return target",
"engine": "webkit"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: info with a removed origin returns to the player and destruction disables retained controls",
"engine": "webkit"
},
{
"file": "accessibility-info.spec.js",
"title": "published: optional SSR info wrapper may be absent without preventing polling and close",
"engine": "webkit"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: optional SSR info wrapper may be absent without preventing polling and close",
"engine": "webkit"
},
{
"file": "accessibility-info.spec.js",
"title": "candidate: failed info name initialization releases its handlers and permits a clean retry",
"engine": "webkit"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: lock uses one stable keyboard button, Escape unlocks and hidden controls leave Tab order",
"engine": "chromium"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: programmatic lock moves hidden control focus to unlock and caller tabindex survives",
"engine": "chromium"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: locked additions stay out of Tab order and removal or destruction releases focus attributes",
"engine": "chromium"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: lock Tab fallback works without native inert and preserves caller focus attributes",
"engine": "chromium"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: moving a control outside a locked region restores its tabindex and cleanup preserves later caller edits",
"engine": "chromium"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: remounting an already locked layer reflects actual state and replaces its keyboard scope",
"engine": "chromium"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: lock uses one stable keyboard button, Escape unlocks and hidden controls leave Tab order",
"engine": "firefox"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: programmatic lock moves hidden control focus to unlock and caller tabindex survives",
"engine": "firefox"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: locked additions stay out of Tab order and removal or destruction releases focus attributes",
"engine": "firefox"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: lock Tab fallback works without native inert and preserves caller focus attributes",
"engine": "firefox"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: moving a control outside a locked region restores its tabindex and cleanup preserves later caller edits",
"engine": "firefox"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: remounting an already locked layer reflects actual state and replaces its keyboard scope",
"engine": "firefox"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: lock uses one stable keyboard button, Escape unlocks and hidden controls leave Tab order",
"engine": "webkit"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: programmatic lock moves hidden control focus to unlock and caller tabindex survives",
"engine": "webkit"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: locked additions stay out of Tab order and removal or destruction releases focus attributes",
"engine": "webkit"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: lock Tab fallback works without native inert and preserves caller focus attributes",
"engine": "webkit"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: moving a control outside a locked region restores its tabindex and cleanup preserves later caller edits",
"engine": "webkit"
},
{
"file": "accessibility-lock.spec.js",
"title": "candidate: remounting an already locked layer reflects actual state and replaces its keyboard scope",
"engine": "webkit"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini keyboard entry reaches close and stable playback controls and Escape returns focus",
"engine": "chromium"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini pointer entry preserves focus and Space closes after keyboard navigation",
"engine": "chromium"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: programmatic mini exit preserves external focus and removed return targets use the player",
"engine": "chromium"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: destroying from mini return focus cancels late notifications and retained controls",
"engine": "chromium"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini reuse keeps keyboard entry and never returns to a stale or hidden origin",
"engine": "chromium"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini names use existing i18n keys and hidden controls cannot reactivate the mode",
"engine": "chromium"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini keyboard entry reaches close and stable playback controls and Escape returns focus",
"engine": "firefox"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini pointer entry preserves focus and Space closes after keyboard navigation",
"engine": "firefox"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: programmatic mini exit preserves external focus and removed return targets use the player",
"engine": "firefox"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: destroying from mini return focus cancels late notifications and retained controls",
"engine": "firefox"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini reuse keeps keyboard entry and never returns to a stale or hidden origin",
"engine": "firefox"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini names use existing i18n keys and hidden controls cannot reactivate the mode",
"engine": "firefox"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini keyboard entry reaches close and stable playback controls and Escape returns focus",
"engine": "webkit"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini pointer entry preserves focus and Space closes after keyboard navigation",
"engine": "webkit"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: programmatic mini exit preserves external focus and removed return targets use the player",
"engine": "webkit"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: destroying from mini return focus cancels late notifications and retained controls",
"engine": "webkit"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini reuse keeps keyboard entry and never returns to a stale or hidden origin",
"engine": "webkit"
},
{
"file": "accessibility-mini.spec.js",
"title": "candidate: mini names use existing i18n keys and hidden controls cannot reactivate the mode",
"engine": "webkit"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: selector Tab entry, focus navigation and typeahead do not commit before Enter",
"engine": "chromium"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: selector Space commits once and Escape closes before web fullscreen exits",
"engine": "chromium"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: keyboard selector retains asynchronous choice ownership and disposal",
"engine": "chromium"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: pointer hover and selector selection retain their existing click behavior",
"engine": "chromium"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: custom native controls retain their semantics and typing inside selector content",
"engine": "chromium"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: empty selectors are disabled and selection callbacks keep explicitly moved focus",
"engine": "chromium"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: typeahead accepts prefixes, resets after navigation and leaves modified input alone",
"engine": "chromium"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: native trigger markup remains a single button and can open the existing popup",
"engine": "chromium"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: a dismissed hovered selector releases the next Escape to fullscreen",
"engine": "chromium"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: hovering an empty selector does not announce an expanded popup",
"engine": "chromium"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: selector Tab entry, focus navigation and typeahead do not commit before Enter",
"engine": "firefox"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: selector Space commits once and Escape closes before web fullscreen exits",
"engine": "firefox"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: keyboard selector retains asynchronous choice ownership and disposal",
"engine": "firefox"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: pointer hover and selector selection retain their existing click behavior",
"engine": "firefox"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: custom native controls retain their semantics and typing inside selector content",
"engine": "firefox"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: empty selectors are disabled and selection callbacks keep explicitly moved focus",
"engine": "firefox"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: typeahead accepts prefixes, resets after navigation and leaves modified input alone",
"engine": "firefox"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: native trigger markup remains a single button and can open the existing popup",
"engine": "firefox"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: a dismissed hovered selector releases the next Escape to fullscreen",
"engine": "firefox"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: hovering an empty selector does not announce an expanded popup",
"engine": "firefox"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: selector Tab entry, focus navigation and typeahead do not commit before Enter",
"engine": "webkit"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: selector Space commits once and Escape closes before web fullscreen exits",
"engine": "webkit"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: keyboard selector retains asynchronous choice ownership and disposal",
"engine": "webkit"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: pointer hover and selector selection retain their existing click behavior",
"engine": "webkit"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: custom native controls retain their semantics and typing inside selector content",
"engine": "webkit"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: empty selectors are disabled and selection callbacks keep explicitly moved focus",
"engine": "webkit"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: typeahead accepts prefixes, resets after navigation and leaves modified input alone",
"engine": "webkit"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: native trigger markup remains a single button and can open the existing popup",
"engine": "webkit"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: a dismissed hovered selector releases the next Escape to fullscreen",
"engine": "webkit"
},
{
"file": "accessibility-selector.spec.js",
"title": "candidate: hovering an empty selector does not announce an expanded popup",
"engine": "webkit"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting keyboard enters nested panels and returns to the originating item",
"engine": "chromium"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting switches and native ranges keep callbacks and avoid player shortcuts",
"engine": "chromium"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting Tab leaves without trapping focus and pointer opening keeps its old focus path",
"engine": "chromium"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting update, failed replacement and removal recover visible focus",
"engine": "chromium"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: suspended settings ignore keyboard callbacks and restored items resume",
"engine": "chromium"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: native setting buttons retain their role, click path and keyboard navigation",
"engine": "chromium"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: destroying during moved focus restoration cancels fullscreen notifications",
"engine": "chromium"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting keyboard enters nested panels and returns to the originating item",
"engine": "firefox"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting switches and native ranges keep callbacks and avoid player shortcuts",
"engine": "firefox"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting Tab leaves without trapping focus and pointer opening keeps its old focus path",
"engine": "firefox"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting update, failed replacement and removal recover visible focus",
"engine": "firefox"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: suspended settings ignore keyboard callbacks and restored items resume",
"engine": "firefox"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: native setting buttons retain their role, click path and keyboard navigation",
"engine": "firefox"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: destroying during moved focus restoration cancels fullscreen notifications",
"engine": "firefox"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting keyboard enters nested panels and returns to the originating item",
"engine": "webkit"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting switches and native ranges keep callbacks and avoid player shortcuts",
"engine": "webkit"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting Tab leaves without trapping focus and pointer opening keeps its old focus path",
"engine": "webkit"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: setting update, failed replacement and removal recover visible focus",
"engine": "webkit"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: suspended settings ignore keyboard callbacks and restored items resume",
"engine": "webkit"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: native setting buttons retain their role, click path and keyboard navigation",
"engine": "webkit"
},
{
"file": "accessibility-setting.spec.js",
"title": "candidate: destroying during moved focus restoration cancels fullscreen notifications",
"engine": "webkit"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: progress is the first control, seeks with owned keys and follows actual media time",
"engine": "chromium"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: volume panel opens from keyboard focus and the slider unmutes without seeking",
"engine": "chromium"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: unknown duration disables progress until metadata returns and labels use i18n",
"engine": "chromium"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: progress removal and volume destruction inside callbacks cancel pending writes",
"engine": "chromium"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: progress is the first control, seeks with owned keys and follows actual media time",
"engine": "firefox"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: volume panel opens from keyboard focus and the slider unmutes without seeking",
"engine": "firefox"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: unknown duration disables progress until metadata returns and labels use i18n",
"engine": "firefox"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: progress removal and volume destruction inside callbacks cancel pending writes",
"engine": "firefox"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: progress is the first control, seeks with owned keys and follows actual media time",
"engine": "webkit"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: volume panel opens from keyboard focus and the slider unmutes without seeking",
"engine": "webkit"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: unknown duration disables progress until metadata returns and labels use i18n",
"engine": "webkit"
},
{
"file": "accessibility-slider.spec.js",
"title": "candidate: progress removal and volume destruction inside callbacks cancel pending writes",
"engine": "webkit"
},
{
"file": "accessibility.spec.js",
"title": "published: Tab skips the non-interactive main controls",
"engine": "chromium"
},
{
"file": "accessibility.spec.js",
"title": "candidate: keyboard reaches stable play control and toggles once with focus retained",
"engine": "chromium"
},
{
"file": "accessibility.spec.js",
"title": "candidate: mute state, focus visibility and automatic hiding follow keyboard focus",
"engine": "chromium"
},
{
"file": "accessibility.spec.js",
"title": "candidate: custom control keyboard clicks retain the callback and release on replacement",
"engine": "chromium"
},
{
"file": "accessibility.spec.js",
"title": "candidate: native buttons inside custom controls retain activation without player hotkeys",
"engine": "chromium"
},
{
"file": "accessibility.spec.js",
"title": "candidate: pointer focus does not prevent the existing automatic control hiding",
"engine": "chromium"
},
{
"file": "accessibility.spec.js",
"title": "published: Tab skips the non-interactive main controls",
"engine": "firefox"
},
{
"file": "accessibility.spec.js",
"title": "candidate: keyboard reaches stable play control and toggles once with focus retained",
"engine": "firefox"
},
{
"file": "accessibility.spec.js",
"title": "candidate: mute state, focus visibility and automatic hiding follow keyboard focus",
"engine": "firefox"
},
{
"file": "accessibility.spec.js",
"title": "candidate: custom control keyboard clicks retain the callback and release on replacement",
"engine": "firefox"
},
{
"file": "accessibility.spec.js",
"title": "candidate: native buttons inside custom controls retain activation without player hotkeys",
"engine": "firefox"
},
{
"file": "accessibility.spec.js",
"title": "candidate: pointer focus does not prevent the existing automatic control hiding",
"engine": "firefox"
},
{
"file": "accessibility.spec.js",
"title": "published: Tab skips the non-interactive main controls",
"engine": "webkit"
},
{
"file": "accessibility.spec.js",
"title": "candidate: keyboard reaches stable play control and toggles once with focus retained",
"engine": "webkit"
},
{
"file": "accessibility.spec.js",
"title": "candidate: mute state, focus visibility and automatic hiding follow keyboard focus",
"engine": "webkit"
},
{
"file": "accessibility.spec.js",
"title": "candidate: custom control keyboard clicks retain the callback and release on replacement",
"engine": "webkit"
},
{
"file": "accessibility.spec.js",
"title": "candidate: native buttons inside custom controls retain activation without player hotkeys",
"engine": "webkit"
},
{
"file": "accessibility.spec.js",
"title": "candidate: pointer focus does not prevent the existing automatic control hiding",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=true live=true conditions",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=true live=false conditions",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=false live=true conditions",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=false live=false conditions",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "published: lock keeps public state, repeated events, DOM classes and icon switching",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "published: removed lock icons stop observing the still-usable plugin state API",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "published: miniature progress follows the control event without adding public state",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=true live=true conditions",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=true live=false conditions",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=false live=true conditions",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=false live=false conditions",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: lock keeps public state, repeated events, DOM classes and icon switching",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: removed lock icons stop observing the still-usable plugin state API",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: miniature progress follows the control event without adding public state",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: retained builtin setters and events do not mutate a destroyed player",
"engine": "chromium"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=true live=true conditions",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=true live=false conditions",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=false live=true conditions",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=false live=false conditions",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "published: lock keeps public state, repeated events, DOM classes and icon switching",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "published: removed lock icons stop observing the still-usable plugin state API",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "published: miniature progress follows the control event without adding public state",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=true live=true conditions",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=true live=false conditions",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=false live=true conditions",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=false live=false conditions",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: lock keeps public state, repeated events, DOM classes and icon switching",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: removed lock icons stop observing the still-usable plugin state API",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: miniature progress follows the control event without adding public state",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: retained builtin setters and events do not mutate a destroyed player",
"engine": "firefox"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=true live=true conditions",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=true live=false conditions",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=false live=true conditions",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "published: builtin availability keeps mobile=false live=false conditions",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "published: lock keeps public state, repeated events, DOM classes and icon switching",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "published: removed lock icons stop observing the still-usable plugin state API",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "published: miniature progress follows the control event without adding public state",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=true live=true conditions",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=true live=false conditions",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=false live=true conditions",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: builtin availability keeps mobile=false live=false conditions",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: lock keeps public state, repeated events, DOM classes and icon switching",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: removed lock icons stop observing the still-usable plugin state API",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: miniature progress follows the control event without adding public state",
"engine": "webkit"
},
{
"file": "builtin-layers.spec.js",
"title": "candidate: retained builtin setters and events do not mutate a destroyed player",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "published: mobile keeps keyboard initialization opt-in through the existing init method",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "published: prototype-named hotkeys do not crash or replace the keys prototype",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "candidate: mobile keeps keyboard initialization opt-in through the existing init method",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "candidate: prototype-named hotkeys do not crash or replace the keys prototype",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "candidate: native keyboard play/pause, seek, volume and web-fullscreen Escape retain their behavior",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "candidate: inherited editing and IME composition do not activate player shortcuts",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "candidate: plaintext editing and IME composition do not activate player shortcuts",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "candidate: select editing and IME composition do not activate player shortcuts",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "candidate: destroying during a key callback stops remaining keys and notifications",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "published: hotkey registration retains chain, array identity, receiver and event order",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "published: rebound document input retains typing instead of triggering a hotkey",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "published: shadow-root input retains typing instead of triggering a hotkey",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "published: repeated hotkey init does not multiply the keyboard subscription",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "candidate: hotkey registration retains chain, array identity, receiver and event order",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "candidate: rebound document input retains typing instead of triggering a hotkey",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "candidate: shadow-root input retains typing instead of triggering a hotkey",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "candidate: repeated hotkey init does not multiply the keyboard subscription",
"engine": "chromium"
},
{
"file": "hotkey.spec.js",
"title": "published: mobile keeps keyboard initialization opt-in through the existing init method",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "published: prototype-named hotkeys do not crash or replace the keys prototype",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "candidate: mobile keeps keyboard initialization opt-in through the existing init method",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "candidate: prototype-named hotkeys do not crash or replace the keys prototype",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "candidate: native keyboard play/pause, seek, volume and web-fullscreen Escape retain their behavior",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "candidate: inherited editing and IME composition do not activate player shortcuts",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "candidate: plaintext editing and IME composition do not activate player shortcuts",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "candidate: select editing and IME composition do not activate player shortcuts",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "candidate: destroying during a key callback stops remaining keys and notifications",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "published: hotkey registration retains chain, array identity, receiver and event order",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "published: rebound document input retains typing instead of triggering a hotkey",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "published: shadow-root input retains typing instead of triggering a hotkey",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "published: repeated hotkey init does not multiply the keyboard subscription",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "candidate: hotkey registration retains chain, array identity, receiver and event order",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "candidate: rebound document input retains typing instead of triggering a hotkey",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "candidate: shadow-root input retains typing instead of triggering a hotkey",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "candidate: repeated hotkey init does not multiply the keyboard subscription",
"engine": "firefox"
},
{
"file": "hotkey.spec.js",
"title": "published: mobile keeps keyboard initialization opt-in through the existing init method",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "published: prototype-named hotkeys do not crash or replace the keys prototype",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "candidate: mobile keeps keyboard initialization opt-in through the existing init method",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "candidate: prototype-named hotkeys do not crash or replace the keys prototype",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "candidate: native keyboard play/pause, seek, volume and web-fullscreen Escape retain their behavior",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "candidate: inherited editing and IME composition do not activate player shortcuts",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "candidate: plaintext editing and IME composition do not activate player shortcuts",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "candidate: select editing and IME composition do not activate player shortcuts",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "candidate: destroying during a key callback stops remaining keys and notifications",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "published: hotkey registration retains chain, array identity, receiver and event order",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "published: rebound document input retains typing instead of triggering a hotkey",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "published: shadow-root input retains typing instead of triggering a hotkey",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "published: repeated hotkey init does not multiply the keyboard subscription",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "candidate: hotkey registration retains chain, array identity, receiver and event order",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "candidate: rebound document input retains typing instead of triggering a hotkey",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "candidate: shadow-root input retains typing instead of triggering a hotkey",
"engine": "webkit"
},
{
"file": "hotkey.spec.js",
"title": "candidate: repeated hotkey init does not multiply the keyboard subscription",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "published: mask preserves observations before and after its destroy handler",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "published: info preserves fields, native media text and close visibility",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "published: info retains native nullable string conversion for custom media fields",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "published: repeated info init owns only one new timer and close handler",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "published: info mobile construction waits for an explicit init",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "published: mask click plays native video and destruction displays the terminal icon",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: mask preserves observations before and after its destroy handler",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info preserves fields, native media text and close visibility",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info retains native nullable string conversion for custom media fields",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: repeated info init owns only one new timer and close handler",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info mobile construction waits for an explicit init",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: mask click plays native video and destruction displays the terminal icon",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info destruction during a media getter prevents text writes and late init",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: reentrant info text conversion cannot write after player destruction",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: mask finalization follows an earlier throwing observer without replacing its error",
"engine": "chromium"
},
{
"file": "prompt-components.spec.js",
"title": "published: mask preserves observations before and after its destroy handler",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "published: info preserves fields, native media text and close visibility",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "published: info retains native nullable string conversion for custom media fields",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "published: repeated info init owns only one new timer and close handler",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "published: info mobile construction waits for an explicit init",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "published: mask click plays native video and destruction displays the terminal icon",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: mask preserves observations before and after its destroy handler",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info preserves fields, native media text and close visibility",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info retains native nullable string conversion for custom media fields",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: repeated info init owns only one new timer and close handler",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info mobile construction waits for an explicit init",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: mask click plays native video and destruction displays the terminal icon",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info destruction during a media getter prevents text writes and late init",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: reentrant info text conversion cannot write after player destruction",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: mask finalization follows an earlier throwing observer without replacing its error",
"engine": "firefox"
},
{
"file": "prompt-components.spec.js",
"title": "published: mask preserves observations before and after its destroy handler",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "published: info preserves fields, native media text and close visibility",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "published: info retains native nullable string conversion for custom media fields",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "published: repeated info init owns only one new timer and close handler",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "published: info mobile construction waits for an explicit init",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "published: mask click plays native video and destruction displays the terminal icon",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: mask preserves observations before and after its destroy handler",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info preserves fields, native media text and close visibility",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info retains native nullable string conversion for custom media fields",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: repeated info init owns only one new timer and close handler",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info mobile construction waits for an explicit init",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: mask click plays native video and destruction displays the terminal icon",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: info destruction during a media getter prevents text writes and late init",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: reentrant info text conversion cannot write after player destruction",
"engine": "webkit"
},
{
"file": "prompt-components.spec.js",
"title": "candidate: mask finalization follows an earlier throwing observer without replacing its error",
"engine": "webkit"
}
],
"reportSha256": "311b6687aa10fc237f888df97c28f1e86bab00bd926ccec23fa5ff4ade84b6bd"
},
"probes": [
{
"name": "core23-info-keyboard-before",
"stats": {
"startTime": "2026-09-11T11:54:45.888Z",
"duration": 10639.716999999999,
"expected": 1,
"skipped": 0,
"unexpected": 3,
"flaky": 0
},
"reportSha256": "d39b379d786e2ecab2fa8f218578cf39158e4ac89623410d545b6165638b300f",
"failures": [
{
"title": "candidate: info keyboard entry, Space close and Escape preserve the opening control",
"engine": "chromium",
"errors": [
"Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeFocused\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-info-close')\nExpected: focused\nReceived: inactive\nTimeout: 7000ms\n\nCall log:\n\u001b[2m - Expect \"toBeFocused\" locator('.art-info-close') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-info-close')\u001b[22m\n\u001b[2m 18 × locator resolved to <div class=\"art-info-close\">[x]</div>\u001b[22m\n\u001b[2m - unexpected value \"inactive\"\u001b[22m\n\n\n 23 | await trigger.focus()\n 24 | await page.keyboard.press('Enter')\n> 25 | await expect(page.locator('.art-info-close')).toBeFocused()\n | ^\n 26 | await expect(page.locator('.art-info-close')).toHaveAttribute('aria-label', 'Close')\n 27 | await expect(page.locator('.art-info')).toHaveAttribute('aria-label', 'Video Info')\n 28 | await page.keyboard.press('Space')\n at D:\\github\\ArtPlayer\\test\\browser\\accessibility-info.spec.js:25:49"
]
},
{
"title": "candidate: repeated info init replaces keyboard bindings and retains the current return target",
"engine": "chromium",
"errors": [
"Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeHidden\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-info')\nExpected: hidden\nReceived: visible\nTimeout: 7000ms\n\nCall log:\n\u001b[2m - Expect \"toBeHidden\" locator('.art-info') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-info')\u001b[22m\n\u001b[2m 18 × locator resolved to <div class=\"art-info\">…</div>\u001b[22m\n\u001b[2m - unexpected value \"visible\"\u001b[22m\n\n\n 66 | })\n 67 | await page.keyboard.press('Enter')\n> 68 | await expect(page.locator('.art-info')).toBeHidden()\n | ^\n 69 | await expect(page.locator('.art-control-info-trigger')).toBeFocused()\n 70 | expect(await page.evaluate(() => window.infoEvents)).toEqual([false])\n 71 | })\n at D:\\github\\ArtPlayer\\test\\browser\\accessibility-info.spec.js:68:43"
]
},
{
"title": "candidate: info with a removed origin returns to the player and destruction disables retained controls",
"engine": "chromium",
"errors": [
"Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeFocused\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-video-player')\nExpected: focused\nReceived: inactive\nTimeout: 7000ms\n\nCall log:\n\u001b[2m - Expect \"toBeFocused\" locator('.art-video-player') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-video-player')\u001b[22m\n\u001b[2m 18 × locator resolved to <div class=\"art-video-player art-subtitle-show art-layer-show art-control-show art-backdrop art-hover art-mask-show art-info-show art-keyboard-focus\">…</div>\u001b[22m\n\u001b[2m - unexpected value \"inactive\"\u001b[22m\n\n\n 77 | await page.evaluate(() => window.art.controls.remove('info-trigger'))\n 78 | await page.keyboard.press('Escape')\n> 79 | await expect(page.locator('.art-video-player')).toBeFocused()\n | ^\n 80 | await page.evaluate(() => {\n 81 | window.retainedInfo = window.art.template.$infoClose\n 82 | window.art.destroy(false)\n at D:\\github\\ArtPlayer\\test\\browser\\accessibility-info.spec.js:79:51"
]
}
]
},
{
"name": "core23-lock-keyboard-before",
"stats": {
"startTime": "2026-09-11T12:00:57.495Z",
"duration": 10261.756,
"expected": 0,
"skipped": 0,
"unexpected": 3,
"flaky": 0
},
"reportSha256": "84dde207a57451779afa59907d71e81109eaca2d145e8993e4c5da7235f5f34e",
"failures": [
{
"title": "candidate: lock uses one stable keyboard button, Escape unlocks and hidden controls leave Tab order",
"engine": "chromium",
"errors": [
"Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeFocused\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-layer-lock')\nExpected: focused\nReceived: inactive\nTimeout: 7000ms\n\nCall log:\n\u001b[2m - Expect \"toBeFocused\" locator('.art-layer-lock') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-layer-lock')\u001b[22m\n\u001b[2m 18 × locator resolved to <div data-index=\"1\" class=\"art-layer art-layer-lock\">…</div>\u001b[22m\n\u001b[2m - unexpected value \"inactive\"\u001b[22m\n\n\n 20 | const lock = page.locator('.art-layer-lock')\n 21 | await lock.focus()\n> 22 | await expect(lock).toBeFocused()\n | ^\n 23 | await expect(lock).toHaveAttribute('aria-label', 'Lock')\n 24 | await page.keyboard.press('Space')\n 25 | await expect(lock).toHaveAttribute('aria-pressed', 'true')\n at D:\\github\\ArtPlayer\\test\\browser\\accessibility-lock.spec.js:22:22"
]
},
{
"title": "candidate: programmatic lock moves hidden control focus to unlock and caller tabindex survives",
"engine": "chromium",
"errors": [
"Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeFocused\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-layer-lock')\nExpected: focused\nReceived: inactive\nTimeout: 7000ms\n\nCall log:\n\u001b[2m - Expect \"toBeFocused\" locator('.art-layer-lock') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-layer-lock')\u001b[22m\n\u001b[2m 18 × locator resolved to <div data-index=\"1\" class=\"art-layer art-layer-lock\">…</div>\u001b[22m\n\u001b[2m - unexpected value \"inactive\"\u001b[22m\n\n\n 44 | window.art.plugins.lock.state = true\n 45 | })\n> 46 | await expect(page.locator('.art-layer-lock')).toBeFocused()\n | ^\n 47 | await expect(page.locator('.art-bottom')).toHaveAttribute('inert')\n 48 | await expect(page.locator('.art-control-custom button')).toHaveAttribute('tabindex', '-1')\n 49 | await page.keyboard.press('Enter')\n at D:\\github\\ArtPlayer\\test\\browser\\accessibility-lock.spec.js:46:49"
]
},
{
"title": "candidate: locked additions stay out of Tab order and removal or destruction releases focus attributes",
"engine": "chromium",
"errors": [
"Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveAttribute\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-control-late button')\nExpected: \u001b[32m\"-1\"\u001b[39m\nReceived: \u001b[31m\"\"\u001b[39m\nTimeout: 7000ms\n\nCall log:\n\u001b[2m - Expect \"toHaveAttribute\" locator('.art-control-late button') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-control-late button')\u001b[22m\n\u001b[2m 17 × locator resolved to <button>Late</button>\u001b[22m\n\u001b[2m - unexpected value \"null\"\u001b[22m\n\n\n 58 | window.art.controls.add({ name: 'late', position: 'right', html: '<button>Late</button>' })\n 59 | })\n> 60 | await expect(page.locator('.art-control-late button')).toHaveAttribute('tabindex', '-1')\n | ^\n 61 | await page.evaluate(() => {\n 62 | window.retainedLock = window.art.layers.lock\n 63 | window.art.layers.remove('lock')\n at D:\\github\\ArtPlayer\\test\\browser\\accessibility-lock.spec.js:60:58"
]
}
]
},
{
"name": "core23-lock-keyboard-first",
"stats": {
"startTime": "2026-09-11T12:03:07.197Z",
"duration": 10293.706,
"expected": 17,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"reportSha256": "847452a8c79ae05f16817b058a1b117dd06c35d9f96637533a008c4213e11784",
"failures": [
{
"title": "candidate: lock uses one stable keyboard button, Escape unlocks and hidden controls leave Tab order",
"engine": "chromium",
"errors": [
"Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeFocused\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('#lock-outside')\nExpected: focused\nReceived: inactive\nTimeout: 7000ms\n\nCall log:\n\u001b[2m - Expect \"toBeFocused\" locator('#lock-outside') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('#lock-outside')\u001b[22m\n\u001b[2m 18 × locator resolved to <button id=\"lock-outside\">Outside</button>\u001b[22m\n\u001b[2m - unexpected value \"inactive\"\u001b[22m\n\n\n 26 | await expect(lock).toBeFocused()\n 27 | await page.keyboard.press('Tab')\n> 28 | await expect(page.locator('#lock-outside')).toBeFocused()\n | ^\n 29 | await page.keyboard.press('Shift+Tab')\n 30 | await expect(lock).toBeFocused()\n 31 | await page.keyboard.press('Escape')\n at D:\\github\\ArtPlayer\\test\\browser\\accessibility-lock.spec.js:28:47"
]
}
]
},
{
"name": "core23-lock-remount-before",
"stats": {
"startTime": "2026-09-11T12:10:35.368Z",
"duration": 10190.961000000001,
"expected": 0,
"skipped": 0,
"unexpected": 1,
"flaky": 0
},
"reportSha256": "e6f95b5a4112bc044a87a98601556709c42d918cff1772c3f06f5a864dd46767",
"failures": [
{
"title": "candidate: remounting an already locked layer reflects actual state and replaces its keyboard scope",
"engine": "chromium",
"errors": [
"Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCSS\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-layer-lock').locator('.art-icon-lock')\nExpected: \u001b[32m\"inline-flex\"\u001b[39m\nReceived: \u001b[31m\"none\"\u001b[39m\nTimeout: 7000ms\n\nCall log:\n\u001b[2m - Expect \"toHaveCSS\" locator('.art-layer-lock').locator('.art-icon-lock') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-layer-lock').locator('.art-icon-lock')\u001b[22m\n\u001b[2m 18 × locator resolved to <i class=\"art-icon art-icon-lock\">…</i>\u001b[22m\n\u001b[2m - unexpected value \"none\"\u001b[22m\n\n\n 118 | const lock = page.locator('.art-layer-lock')\n 119 | await expect(lock).toHaveAttribute('aria-pressed', 'true')\n> 120 | await expect(lock.locator('.art-icon-lock')).toHaveCSS('display', 'inline-flex')\n | ^\n 121 | await expect(lock.locator('.art-icon-unlock')).toHaveCSS('display', 'none')\n 122 | await lock.focus()\n 123 | await page.keyboard.press('Space')\n at D:\\github\\ArtPlayer\\test\\browser\\accessibility-lock.spec.js:120:48"
]
}
]
},
{
"name": "core23-lock-remount-computed-style",
"stats": {
"startTime": "2026-09-11T12:11:11.695Z",
"duration": 112394.586,
"expected": 303,
"skipped": 0,
"unexpected": 3,
"flaky": 0
},
"reportSha256": "f94af777da4741f6b809b7e4642e1088dfe8d318c760d6b7b2e23f070f322734",
"failures": [
{
"title": "candidate: remounting an already locked layer reflects actual state and replaces its keyboard scope",
"engine": "chromium",
"errors": [
"Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCSS\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-layer-lock').locator('.art-icon-lock')\nExpected: \u001b[32m\"\u001b[7minline-\u001b[27mflex\"\u001b[39m\nReceived: \u001b[31m\"flex\"\u001b[39m\nTimeout: 7000ms\n\nCall log:\n\u001b[2m - Expect \"toHaveCSS\" locator('.art-layer-lock').locator('.art-icon-lock') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-layer-lock').locator('.art-icon-lock')\u001b[22m\n\u001b[2m 18 × locator resolved to <i class=\"art-icon art-icon-lock\">…</i>\u001b[22m\n\u001b[2m - unexpected value \"flex\"\u001b[22m\n\n\n 118 | const lock = page.locator('.art-layer-lock')\n 119 | await expect(lock).toHaveAttribute('aria-pressed', 'true')\n> 120 | await expect(lock.locator('.art-icon-lock')).toHaveCSS('display', 'inline-flex')\n | ^\n 121 | await expect(lock.locator('.art-icon-unlock')).toHaveCSS('display', 'none')\n 122 | await lock.focus()\n 123 | await page.keyboard.press('Space')\n at D:\\github\\ArtPlayer\\test\\browser\\accessibility-lock.spec.js:120:48"
]
},
{
"title": "candidate: remounting an already locked layer reflects actual state and replaces its keyboard scope",
"engine": "firefox",
"errors": [
"Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCSS\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-layer-lock').locator('.art-icon-lock')\nExpected: \u001b[32m\"\u001b[7minline-\u001b[27mflex\"\u001b[39m\nReceived: \u001b[31m\"flex\"\u001b[39m\nTimeout: 7000ms\n\nCall log:\n\u001b[2m - Expect \"toHaveCSS\" locator('.art-layer-lock').locator('.art-icon-lock') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-layer-lock').locator('.art-icon-lock')\u001b[22m\n\u001b[2m 17 × locator resolved to <i class=\"art-icon art-icon-lock\">…</i>\u001b[22m\n\u001b[2m - unexpected value \"flex\"\u001b[22m\n\n\n 118 | const lock = page.locator('.art-layer-lock')\n 119 | await expect(lock).toHaveAttribute('aria-pressed', 'true')\n> 120 | await expect(lock.locator('.art-icon-lock')).toHaveCSS('display', 'inline-flex')\n | ^\n 121 | await expect(lock.locator('.art-icon-unlock')).toHaveCSS('display', 'none')\n 122 | await lock.focus()\n 123 | await page.keyboard.press('Space')\n at D:\\github\\ArtPlayer\\test\\browser\\accessibility-lock.spec.js:120:48"
]
},
{
"title": "candidate: remounting an already locked layer reflects actual state and replaces its keyboard scope",
"engine": "webkit",
"errors": [
"Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoHaveCSS\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m)\u001b[22m failed\n\nLocator: locator('.art-layer-lock').locator('.art-icon-lock')\nExpected: \u001b[32m\"\u001b[7minline-\u001b[27mflex\"\u001b[39m\nReceived: \u001b[31m\"flex\"\u001b[39m\nTimeout: 7000ms\n\nCall log:\n\u001b[2m - Expect \"toHaveCSS\" locator('.art-layer-lock').locator('.art-icon-lock') with timeout 7000ms\u001b[22m\n\u001b[2m - waiting for locator('.art-layer-lock').locator('.art-icon-lock')\u001b[22m\n\u001b[2m 17 × locator resolved to <i class=\"art-icon art-icon-lock\">…</i>\u001b[22m\n\u001b[2m - unexpected value \"flex\"\u001b[22m\n\n\n 118 | const lock = page.locator('.art-layer-lock')\n 119 | await expect(lock).toHaveAttribute('aria-pressed', 'true')\n> 120 | await expect(lock.locator('.art-icon-lock')).toHaveCSS('display', 'inline-flex')\n | ^\n 121 | await expect(lock.locator('.art-icon-unlock')).toHaveCSS('display', 'none')\n 122 | await lock.focus()\n 123 | await page.keyboard.press('Space')\n at D:\\github\\ArtPlayer\\test\\browser\\accessibility-lock.spec.js:120:48"
]
}
]
}
],
"validationNotes": [
"After full CI, only the remount browser assertion was corrected: inline-flex becomes computed flex inside a flex container. The test now verifies visibility and exact inline display, then retains single-unlock and cleanup assertions. Focused ESLint passed.",
"The first lock Tab test assumed an appended Outside button was next; the real fixture has Play/Pause controls before it. The corrected assertion checks the actual next external Play button and Shift+Tab back to Lock.",
"Strict typing retained the optional SSR info wrapper instead of asserting it non-null; published and candidate runtime tests verify that missing wrapper does not prevent the existing poll/close path."
],
"remaining": [
"CORE-23 remains doing and BASE-DOM-01 open. No completed-task commit.",
"Remaining mode exits, whole-player cross-instance/SSR/subtitle accessibility and final core acceptance still need work.",
"Info/lock includes optional SSR wrapper and absent native inert checks. Mobile user-agent selection does not prove physical-device or assistive-technology behavior.",
"This is a Vite source build. Fresh installed modern/legacy artifacts and the full current browser matrix remain task-final gates.",
"Physical devices, screen readers and release reviews remain gates. No push, tag, merge or npm publication."
]
}