)]}'
{"id": 6046278267043840, "name": "Animation accessor on animation and transition events", "summary": "Adds a read-only animation attribute to the AnimationEvent and TransitionEvent interfaces. This attribute returns the associated Animation object that triggered the event.", "markdown_fields": [], "blink_components": ["Blink>Animation"], "star_count": 36, "search_tags": [], "created": {"by": "flackr@chromium.org", "when": "2026-06-09 17:19:31.693082"}, "updated": {"by": "flackr@chromium.org", "when": "2026-06-29 15:06:56.453040"}, "category": "JavaScript", "category_int": 10, "feature_notes": null, "web_feature": "Missing feature", "is_official_web_feature": false, "webdx_usecounter_enum": null, "enterprise_feature_categories": [], "enterprise_product_category": 0, "is_releasenotes_content_reviewed": false, "is_releasenotes_publish_ready": false, "stages": [{"id": 5665034018619392, "created": "2026-06-09 17:19:32.193452", "feature_id": 6046278267043840, "stage_type": 220, "display_name": null, "intent_stage": 1, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 5102084065198080, "created": "2026-06-09 17:19:32.194593", "feature_id": 6046278267043840, "stage_type": 230, "display_name": null, "intent_stage": 2, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 6227983972040704, "created": "2026-06-09 17:19:32.195674", "feature_id": 6046278267043840, "stage_type": 250, "display_name": null, "intent_stage": 3, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": null, "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": null, "android_first": null, "ios_first": null, "webview_first": null, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}, {"id": 4820609088487424, "created": "2026-06-09 17:19:32.196597", "feature_id": 6046278267043840, "stage_type": 260, "display_name": null, "intent_stage": 5, "pm_emails": [], "tl_emails": [], "ux_emails": [], "te_emails": [], "intent_thread_url": "https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a299e72.f2d2b681.29210.054e.GAE%40google.com", "announcement_url": null, "experiment_goals": null, "experiment_risks": null, "origin_trial_id": null, "origin_trial_feedback_url": null, "ot_action_requested": false, "ot_approval_buganizer_component": null, "ot_approval_buganizer_custom_field_id": null, "ot_approval_criteria_url": null, "ot_approval_group_email": null, "ot_chromium_trial_name": null, "ot_description": null, "ot_display_name": null, "ot_documentation_url": null, "ot_emails": [], "ot_feedback_submission_url": null, "ot_has_third_party_support": false, "ot_is_critical_trial": false, "ot_is_deprecation_trial": false, "ot_owner_email": null, "ot_requester_email": null, "ot_require_approvals": false, "ot_use_counter_bucket_number": null, "ot_webfeature_use_counter": null, "extensions": [], "experiment_extension_reason": null, "ot_stage_id": null, "finch_url": null, "rollout_milestone": null, "rollout_platforms": [], "rollout_details": null, "rollout_impact": 2, "rollout_stage_plan": null, "enterprise_policies": [], "desktop_first": 151, "android_first": 151, "ios_first": null, "webview_first": 151, "desktop_last": null, "android_last": null, "ios_last": null, "webview_last": null}], "accurate_as_of": "2026-06-09 17:19:31.692793", "creator_email": "flackr@chromium.org", "updater_email": "flackr@chromium.org", "owner_emails": ["flackr@chromium.org"], "editor_emails": [], "cc_emails": [], "spec_mentor_emails": [], "unlisted": false, "deleted": false, "editors": [], "cc_recipients": [], "spec_mentors": [], "creator": "flackr@chromium.org", "feature_type": "Chromium catches up", "feature_type_int": 1, "intent_stage": "None", "intent_stage_int": 0, "active_stage_id": 4820609088487424, "bug_url": "https://issues.chromium.org/40929813", "launch_bug_url": null, "new_crbug_url": "https://bugs.chromium.org/p/chromium/issues/entry?components=Blink>Animation&blocking=40929813&cc=flackr@chromium.org", "screenshot_links": [], "first_enterprise_notification_milestone": null, "enterprise_impact": 1, "breaking_change": false, "confidential": false, "shipping_year": 2026, "flag_name": null, "finch_name": "AnimationEventAnimation", "non_finch_justification": null, "ongoing_constraints": null, "rollout_plan": 0, "rollout_plan_displayname": "Will ship enabled for all users", "motivation": "When handling CSS animation or transition events (such as animationstart or transitionend), developers currently only receive metadata like the animation name or the CSS property name. If they want to programmatically interact with the triggering animation instance (e.g. to pause it, change its speed, or use its .finished promise), they must query the element or document using getAnimations() and filter the results.\n\nProviding direct access to the Animation instance via the animation attribute on the event object simplifies developer code, avoids costly DOM queries, and aligns with recent updates to the CSS Animations Level 2 and CSS Transitions Level 2 specifications.", "devtrial_instructions": null, "activation_risks": "As Firefox and Safari have already shipped, Chrome shipping should significantly reduce those activation risks.\n\nDevelopers could detect and polyfill with something like the following:\n\n```\nelement.addEventListener('animationstart', (event) => {\n  const animation = ('animation' in event) \n    ? event.animation \n    : findAnimationFallback(event);\n  // Use the animation object...\n});\n\nMaking a perfect polyfill can be challenging or impossible - as you have to find the matching animation in element.getAnimations - e.g. if you have the same animation name twice on an element, it is hard to know which of the animations returned by getAnimation the animationstart event is for. However, it can be polyfilled in a way that mostly works using getAnimations.", "measurement": null, "availability_expectation": null, "adoption_expectation": null, "adoption_plan": null, "initial_public_proposal_url": null, "explainer_links": ["https://github.com/w3c/csswg-drafts/issues/9010"], "requires_embedder_support": false, "spec_link": "https://drafts.csswg.org/css-animations-2/#interface-animationevent", "api_spec": true, "automation_spec": false, "interop_compat_risks": null, "all_platforms": true, "all_platforms_descr": null, "non_oss_deps": null, "anticipated_spec_changes": null, "security_risks": "No security risks, no information is exposed that was not already via getAnimations.", "ergonomics_risks": "The feature is highly ergonomic and straightforward to use. From an animation event you can get the animation to potentially chain promises after, modify, etc.", "wpt": true, "wpt_descr": "https://wpt.fyi/results/css?label=master&label=experimental&aligned&q=css%2Fcss-animations%2Fanimationevent%20or%20css%2Fcss-transitions%2Fevents-008%20or%20css%2Fcss-transitions%2Ftransitionevent-interface", "webview_risks": null, "devrel_emails": ["devrel-chromestatus-all@google.com"], "debuggability": "This feature arguably will help developers and developer tooling to associate events with animations and link between them.", "doc_links": [], "sample_links": [], "prefixed": null, "tags": [], "tag_review": null, "tag_review_status": "Not applicable", "tag_review_status_int": 4, "security_review_status": "Not applicable", "security_review_status_int": 4, "privacy_review_status": "Not applicable", "privacy_review_status_int": 4, "security_continuity_id": null, "security_launch_issue_id": null, "updated_display": null, "resources": {"samples": [], "docs": []}, "comments": null, "ff_views": 1, "safari_views": 1, "web_dev_views": 2, "browsers": {"chrome": {"bug": "https://issues.chromium.org/40929813", "blink_components": ["Blink>Animation"], "devrel": ["devrel-chromestatus-all@google.com"], "owners": ["flackr@chromium.org"], "origintrial": false, "prefixed": null, "flag": false, "status": {"text": "Proposed", "val": 2, "milestone_str": "Proposed"}, "announced": true, "desktop": 151, "android": 151, "webview": 151, "ios": null}, "ff": {"view": {"url": null, "notes": null, "text": "Shipped/Shipping", "val": 1}}, "safari": {"view": {"url": null, "notes": null, "text": "Shipped/Shipping", "val": 1}}, "webdev": {"view": {"text": "Positive", "val": 2, "url": "https://github.com/w3c/csswg-drafts/issues/9010", "notes": null}}, "other": {"view": {"text": null, "val": null, "url": null, "notes": null}}}, "standards": {"spec": "https://drafts.csswg.org/css-animations-2/#interface-animationevent", "maturity": {"text": "Specification currently under development in a Working Group", "short_text": "Working draft", "val": 4}}, "is_released": false, "is_enterprise_feature": false, "experiment_timeline": null, "ai_test_eval_report": null, "ai_test_eval_run_status": null, "ai_test_eval_status_timestamp": null}