Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3961ade934359c258f7bda6176f5f26c37f8f719
      
https://github.com/WebKit/WebKit/commit/3961ade934359c258f7bda6176f5f26c37f8f719
  Author: Tim Horton <[email protected]>
  Date:   2026-09-29 (Tue, 29 Sep 2026)

  Changed paths:
    M Source/WebKit/Shared/Cocoa/InteractionInformationAtPosition.h
    M Source/WebKit/Shared/Cocoa/InteractionInformationAtPosition.mm
    M 
Source/WebKit/Shared/Cocoa/InteractionInformationAtPosition.serialization.in
    M Source/WebKit/UIProcess/mac/AppKitGestures/WKAppKitGestureController.mm
    M Source/WebKit/WebProcess/WebPage/Cocoa/PositionInformationForWebPage.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture 
Tests/BasicAppKitGesturesTests.swift

  Log Message:
  -----------
  [AppKit Gestures] Can't scrub video on sites that use fully custom <video> 
progress UI
https://bugs.webkit.org/show_bug.cgi?id=325744
rdar://187521596

Reviewed by Abrar Rahman Protyasha.

Some sites use custom progress controls inside <video> which do not themselves 
have the appropriate
ARIA role, nor are a detectable type of input, but which are /adjacent/ to a 
hidden slider
(which is there for accessibility purposes). In that case, we should treat it 
like a slider anyway.

Test: Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture 
Tests/BasicAppKitGesturesTests.swift

* Source/WebKit/Shared/Cocoa/InteractionInformationAtPosition.h:
* Source/WebKit/Shared/Cocoa/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::InteractionInformationAtPosition):
* Source/WebKit/Shared/Cocoa/InteractionInformationAtPosition.serialization.in:
Add and propagate the "custom slider" bit.

* Source/WebKit/UIProcess/mac/AppKitGestures/WKAppKitGestureController.mm:
(prefersDirectManipulation):
Respect the "custom slider" bit like we do the other kinds.

* Source/WebKit/WebProcess/WebPage/Cocoa/PositionInformationForWebPage.mm:
(WebKit::isARIASlider):
(WebKit::isCustomSlider):
(WebKit::selectionPositionInformation):
(WebKit::isVisuallyHidden):
Wander the DOM near the hit element, looking for a hidden slider. If one is 
found,
assume that we're in a custom slider (or otherwise manipulable element).
Don't walk outside of the <video>'s container.

* Tools/TestWebKitAPI/Tests/WebKit/WebPage/AppKit Gesture 
Tests/BasicAppKitGesturesTests.swift:
Add a test for such a slider, including negative tests and a test that we don't 
walk outside the container.

Canonical link: https://commits.webkit.org/322250@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to