Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ff42f766814691356f3b339275ae5164654368a2
      
https://github.com/WebKit/WebKit/commit/ff42f766814691356f3b339275ae5164654368a2
  Author: Aditya Keerthi <[email protected]>
  Date:   2024-01-19 (Fri, 19 Jan 2024)

  Changed paths:
    M Source/WebCore/html/HTMLAnchorElement.cpp
    M Source/WebCore/page/Quirks.cpp
    M Source/WebCore/page/Quirks.h

  Log Message:
  -----------
  Cannot pick US state in dropdown on vote.gov
https://bugs.webkit.org/show_bug.cgi?id=267779
rdar://121240580

Reviewed by Wenson Hsieh.

vote.gov uses a custom state selection dropdown, which is a `<div>` containing
multiple anchor elements. Display of the dropdown is tied to focusing the 
associated
input element. When the "focusout" event is observed, the dropdown is hidden.

However, since the "focusout" event is observed prior to the "click" event, the 
site
compares the "focusout" event's `currentTarget` and `relatedTarget`. If the
`relatedTarget` is the anchor element, the logic ends up suppressing hiding the
dropdown, ensuring the "click" is dispatched on the right element.

For `focusout` events, the `relatedTarget` should be the element that gains
focus. In WebKit, `relatedTarget` is null in this scenario, as anchor elements
are not mouse focusable, following Cocoa platform convention.

Fix by adding a quirk to make anchor elements mouse focusable.

* Source/WebCore/html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::isMouseFocusable const):
* Source/WebCore/page/Quirks.cpp:
(WebCore::Quirks::needsAnchorElementsToBeMouseFocusable const):
* Source/WebCore/page/Quirks.h:

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to