WPT
wpt / web-animations / interfaces / KeyframeEffect / setKeyframes.html
Spec: Web Animations ↗
Runs: Chrome 155.0.8041.0 (wpt@18be93235, 2026-09-04) | Firefox 157.0a1 (wpt@1b4bc17cf, 2026-09-04) | Safari 251 preview (wpt@2c385f65e, 2026-09-04) | Ladybird 1.0-17043 (wpt@25681acff, 2026-09-04) | Servo Servo 0.6 (wpt@2c385f65e, 2026-09-04) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 80/80 | 80/80 | 79/80 | 69/80 | 0/80 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Keyframes can be replaced with an empty keyframe | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a one property two value property-indexed keyframes specification | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a one shorthand property two value property-indexed keyframes specification | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a two property (one shorthand and one of its longhand components) two value property-indexed keyframes specification | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a two property (one shorthand and one of its shorthand components) two value property-indexed keyframes specification | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a two property two value property-indexed keyframes specification | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a two property property-indexed keyframes specification with different numbers of values | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframes specification with an invalid value | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a one property two value property-indexed keyframes specification that needs to stringify its values | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable reference in a shorthand property | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a one property one value property-indexed keyframes specification | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a one property one non-array value property-indexed keyframes specification | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a one property two value property-indexed keyframes specification where the first value is invalid | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a one property two value property-indexed keyframes specification where the second value is invalid | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframes specification with a CSS variable as the property | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with a single offset | PASS | PASS | PASS | FAIL | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of offsets | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is too short | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is too long | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an empty array of offsets | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of offsets with an embedded null value | PASS | PASS | PASS | FAIL | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of offsets with a trailing null value | PASS | PASS | PASS | FAIL | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of offsets with leading and trailing null values | PASS | PASS | PASS | FAIL | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of offsets with adjacent null values | PASS | PASS | PASS | FAIL | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of offsets with all null values (and too many at that) | PASS | PASS | PASS | FAIL | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with a single null offset | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of offsets that is not strictly ascending in the unused part of the array | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe without any specified easing | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with a single easing | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of easings | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of easings that is too short | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with a single-element array of easings | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an empty array of easings | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with an array of easings that is too long | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with a single composite operation | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with a composite array | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with a composite array that is too short | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with a composite array that is too long | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a property-indexed keyframe with a single-element composite array | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a one property one keyframe sequence | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a one property two keyframe sequence | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a two property two keyframe sequence | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a one shorthand property two keyframe sequence | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a two property (a shorthand and one of its component longhands) two keyframe sequence | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a two property keyframe sequence where one property is missing from the first keyframe | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a two property keyframe sequence where one property is missing from the last keyframe | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a one property two keyframe sequence that needs to stringify its values | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a keyframe sequence with a CSS variable reference | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a keyframe sequence with a CSS variable reference in a shorthand property | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a keyframe sequence with a CSS variable as its property | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a keyframe sequence with duplicate values for a given interior offset | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a keyframe sequence with duplicate values for offsets 0 and 1 | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a two property four keyframe sequence | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a single keyframe sequence with omitted offset | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a single keyframe sequence with null offset | PASS | PASS | PASS | FAIL | FAIL | — |
| Keyframes can be replaced with a single keyframe sequence with string offset | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a single keyframe sequence with a single calc() offset | PASS | PASS | FAIL | FAIL | FAIL | — |
| Keyframes can be replaced with a one property keyframe sequence with some omitted offsets | PASS | PASS | PASS | FAIL | FAIL | — |
| Keyframes can be replaced with a one property keyframe sequence with some null offsets | PASS | PASS | PASS | FAIL | FAIL | — |
| Keyframes can be replaced with a two property keyframe sequence with some omitted offsets | PASS | PASS | PASS | FAIL | FAIL | — |
| Keyframes can be replaced with a one property keyframe sequence with all omitted offsets | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a keyframe sequence with different easing values, but the same easing value for a given offset | PASS | PASS | PASS | PASS | FAIL | — |
| Keyframes can be replaced with a keyframe sequence with different composite values, but the same composite value for a given offset | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with keyframes with an out-of-bounded positive offset | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with keyframes with an out-of-bounded negative offset | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with property-indexed keyframes not loosely sorted by offset | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with property-indexed keyframes not loosely sorted by offset even though not all offsets are specified | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with property-indexed keyframes with offsets out of range | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with keyframes not loosely sorted by offset | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with property-indexed keyframes with an invalid easing value | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with property-indexed keyframes with an invalid easing value as one of the array values | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with property-indexed keyframe with an invalid easing in the unused part of the array of easings | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with empty property-indexed keyframe with an invalid easing | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with empty property-indexed keyframe with an invalid easings array | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with a keyframe sequence with an invalid easing value | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with property-indexed keyframes with an invalid composite value | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with property-indexed keyframes with an invalid composite value as one of the array values | PASS | PASS | PASS | PASS | FAIL | — |
| KeyframeEffect constructor throws with keyframes with an invalid composite value | PASS | PASS | PASS | PASS | FAIL | — |
| Changes made via setKeyframes should be immediately visible in style | PASS | PASS | PASS | PASS | FAIL | — |