diff --git a/css-animations-2/Overview.bs b/css-animations-2/Overview.bs
index 9fa6f64c825..bf6e9dcff69 100644
--- a/css-animations-2/Overview.bs
+++ b/css-animations-2/Overview.bs
@@ -167,6 +167,8 @@ last) as follows:
* element
* ::marker
* ::before
+ * any other pseudo-elements not mentioned specifically in this list,
+ sorted in ascending order by the Unicode codepoints that make up each selector
* ::after
* element children
diff --git a/css-transitions-2/Overview.bs b/css-transitions-2/Overview.bs
index f808bd2fb5a..a97b648c3cc 100644
--- a/css-transitions-2/Overview.bs
+++ b/css-transitions-2/Overview.bs
@@ -137,6 +137,8 @@ are sorted in composite order (first to last) as follows:
* element
* ::marker
* ::before
+ * any other pseudo-elements not mentioned specifically in this list,
+ sorted in ascending order by the Unicode codepoints that make up each selector
* ::after
* element children
diff --git a/web-animations-1/Overview.bs b/web-animations-1/Overview.bs
index ff02f614d97..cd14f3b7b3b 100644
--- a/web-animations-1/Overview.bs
+++ b/web-animations-1/Overview.bs
@@ -3201,6 +3201,10 @@ If the [=effect target=] is a [=pseudo-element=], the [=target element=] is
its [=originating element=] and the [=target pseudo-selector=] is as required
to specify that particular [=pseudo-element=].
+Note that not all [=effect targets=] specified in this manner (such as ''::part()''
+pseudo-elements and unsupported pseudo-elements) have
+computed property values defined.
+
### Keyframes ### {#keyframes-section}
The effect values for a keyframe effect
@@ -3351,8 +3355,7 @@ an effect target for which computed property values can be calculated.
1. Return computed keyframes.
-
The effect value of
- a keyframe effect
+### The effect value of a keyframe effect ### {#the-effect-value-of-a-keyframe-animation-effect}
The effect value of a single property referenced by a keyframe
effect as one of its target properties, for a
@@ -3366,6 +3369,9 @@ given iteration progress, current iteration and
1. If animation type of the target property is
not animatable abort this procedure
since the effect cannot be applied.
+1. If the [=keyframe effect=] does not have an [=effect target=],
+ or if the [=effect target=] cannot have computed property values
+ calculated, abort this procedure.
1. Define the neutral value for composition as a value
which, when combined with an underlying value using the add composite
@@ -4699,6 +4705,22 @@ interface KeyframeEffect : AnimationEffect {
1. Set the target element of effect to target.
+ 1. Set the [=target pseudo-selector=] to the result corresponding to the first
+ matching condition from below.
+
+ : If options is a {{KeyframeEffectOptions}} object with a
+ {{KeyframeEffectOptions/pseudoElement}} property,
+ :: Set the [=target pseudo-selector=] to the value of the
+ {{KeyframeEffectOptions/pseudoElement}} property.
+
+ When assigning this property, the error-handling defined for the
+ {{KeyframeEffect/pseudoElement}} setter on the interface is applied.
+ If the setter requires an exception to be thrown, this procedure
+ must throw the same exception and abort all further steps.
+
+ : Otherwise,
+ :: Set the [=target pseudo-selector=] to `null`.
+
1. Let timing input be the result corresponding to the first
matching condition from below.
@@ -4807,11 +4829,24 @@ interface KeyframeEffect : AnimationEffect {
: pseudoElement
:: The [=target pseudo-selector=].
- This is `null` if the [=effect target=] is an {{Element}} or is itself `null`.
- When not `null`, this must be a [=pseudo-element=] selector with
- [[selectors-4#pseudo-element-syntax|valid syntax]].
- This will not accept invalid values and will always return the selector in
- its canonical form (i.e. `::before` instead of `:before`).
+ `null` if this effect has no [=effect target=] or
+ if the [=effect target=] is an element (i.e. not a pseudo-element).
+ When the [=effect target=] is a pseudo-element,
+ this specifies the pseudo-element selector (e.g. `::before`).
+
+ On setting,
+ sets the [=target pseudo-selector=] of the [=animation effect=]
+ to the provided value after applying the following exceptions:
+
+ * If the provided value is not `null` or a syntactically valid
+ the user agent must [=throw=]
+ a {{DOMException}} with error name {{TypeError}} and leave the
+ [=target pseudo-selector=] of this [=animation effect=] unchanged.
+
+ * If one of the legacy Selectors Level 2 single-colon selectors
+ (':before', ':after', ':first-letter', or ':first-line') is
+ specified, the [=target pseudo-selector=] must be set to the
+ equivalent two-colon selector (e.g. '::before').
: composite
:: The composite operation used to composite this