<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>322849</bug_id>
          
          <creation_ts>2026-08-28 08:41:29 -0700</creation_ts>
          <short_desc>Transitioned CSS filter on an ancestor cancels in-progress touch scrolling on iOS</short_desc>
          <delta_ts>2026-08-28 09:28:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Compositing</component>
          <version>Safari 26</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 26</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>esatturan206</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2244805</commentid>
    <comment_count>0</comment_count>
    <who name="">esatturan206</who>
    <bug_when>2026-08-28 08:41:29 -0700</bug_when>
    <thetext>A CSS filter applied on :active and transitioned, set on an ANCESTOR of a
scrollable element, causes iOS Safari to abandon a touch scroll that has
already begun. Most drags inside the scroller produce no scroll events at all.

Reduced test case (static HTML, no framework):
https://readkinetic.com/repro/safari-filter-scroll.html

The whole of it is two rules:

  .host        { transition: filter 150ms ease-out; }
  .host:active { filter: brightness(0.95); }

where .host is the parent of the scrolling div.

Steps to reproduce:
1. Open the URL on an iPhone running iOS 26.6.
2. Drag vertically inside the bordered box. The checkbox is ticked by default,
   so the filter rule is active.
3. Observe that most gestures scroll nothing. The page counts gestures that
   produced no scroll event.
4. Untick &quot;filter on ancestor&quot; and repeat the same drags.

Expected: the filter changes appearance only; scrolling is unaffected.

Actual: with the filter rule active, drags are frequently ignored. On my
iPhone 16 Pro (iOS 26.6) I needed up to 25 consecutive drags before one
scrolled. With the rule off, every drag scrolled.

Notes:
- The page around the scroller scrolls normally throughout. Only the inner
  scrollable element is affected.
- Not reproducible in Chrome on Android, or in Safari or Chrome on macOS.
- Removing either the transition or the filter avoids it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2244825</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2026-08-28 09:28:24 -0700</bug_when>
    <thetext>I believe this happens when we remove and re-add a UIScrollView to the view hierarchy as ancestor layers change.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>