<?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>179379</bug_id>
          
          <creation_ts>2017-11-07 10:49:07 -0800</creation_ts>
          <short_desc>scroll-padding should affect scrollIntoView, paging etc even when snapping is off</short_desc>
          <delta_ts>2021-03-12 17:32:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BrowserCompat, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>219073</dependson>
    
    <dependson>219074</dependson>
          <blocked>218115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>709922234</cc>
    
    <cc>alex</cc>
    
    <cc>charlie.croom</cc>
    
    <cc>diane.ko</cc>
    
    <cc>julien.roncaglia</cc>
    
    <cc>kyle.bavender</cc>
    
    <cc>lfloyd</cc>
    
    <cc>mqr5815</cc>
    
    <cc>mrobinson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>steffen.weber</cc>
    
    <cc>v</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1369068</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-07 10:49:07 -0800</bug_when>
    <thetext>See https://drafts.csswg.org/css-scroll-snap/#scroll-padding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642538</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-16 18:52:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/61915456&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676589</commentid>
    <comment_count>2</comment_count>
    <who name="Diane Ko">diane.ko</who>
    <bug_when>2020-07-30 15:24:57 -0700</bug_when>
    <thetext>From the CSS spec definition for scroll-padding (https://www.w3.org/TR/css-scroll-snap-1/#scroll-padding), scroll-padding should apply to any scroll container, not just scroll snap containers. This issue is particularly problematic when using scroll-padding to adjust for any fixed content (for example, a fixed header or footer). 

This behavior exists on both iOS and macOS Safari, but not on Chrome or Firefox.

Note: this is particularly problematic when using iOS with VoiceOver on, as VoiceOver will trigger tapping on the location where its focus is, which means that if you&apos;re focused on an element that&apos;s underneath a fixed container, the click event will trigger on the fixed container and not the element that gets read out as having focus. As this issue isn&apos;t a problem in Chrome, I was able to successfully avoid this issue on an Android device with TalkBack enabled.

I created a really basic codepen (https://codepen.io/backwardok/pen/6980c6068b69618a90bd5b12716dde8b) that demonstrates this problem (full page version: https://cdpn.io/backwardok/debug/6980c6068b69618a90bd5b12716dde8b).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676599</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-07-30 15:36:48 -0700</bug_when>
    <thetext>Thanks for the testcase!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715272</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-16 17:06:49 -0800</bug_when>
    <thetext>Martin, can we consider this fixed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1715367</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-12-17 04:18:37 -0800</bug_when>
    <thetext>The main blocker here is to implement the part of scroll-padding that affects scrolling area paging behavior. I don&apos;t think this should be a lot of work, but I&apos;ve been dragging my feet a bit here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719679</commentid>
    <comment_count>6</comment_count>
    <who name="Matt Ryan">mqr5815</who>
    <bug_when>2021-01-14 13:15:21 -0800</bug_when>
    <thetext>This is a major blocker to site authors implementing sticky-position banners; there is seemingly no alternative that works across the various use cases out there; for example, a common CSS approach (negatively absolute positioned generated content) does not work if the fragment refers to a replaced element like an &lt;input&gt;. And Safari is the only major browser that does not properly support this feature.

I&apos;m hoping this comment can serve as a +1 on prioritizing this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728517</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-02-12 03:04:26 -0800</bug_when>
    <thetext>*** Bug 219072 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>