Bug 153887 - iOS "clickable elements" concept/restriction not compatible with UI Events spec
Summary: iOS "clickable elements" concept/restriction not compatible with UI Events spec
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: DOM (show other bugs)
Version: WebKit Nightly Build
Hardware: iPhone / iPad iOS 10
: P2 Normal
Assignee: Nobody
URL: http://wpt.live/uievents/order-of-eve...
Keywords: HasReduction, W3CTest
Depends on:
Reported: 2016-02-04 12:55 PST by Chris Rebert
Modified: 2021-08-29 15:41 PDT (History)
3 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Chris Rebert 2016-02-04 12:55:13 PST
I presume there must be some existing "Why isn't my <div> clickable?" bug of which this will be a duplicate,
but my search-fu wasn't able to turn up anything and there's now an actual web-platform-test for this, so...

https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html states
that elements only fire `click` events in certain circumstances (e.g. is a <button>, has an `onclick`, is styled as `cursor: pointer;`, etc.).
However, the W3C spec that defines the `click` event doesn't place any such special preconditions on which elements fire `click` events.

Quoting from relevant portions of the spec:

> The click event type must be dispatched on the topmost event target indicated by the pointer,
> when the user presses down and releases the primary pointer button,
> or otherwise activates the pointer in a manner that simulates such an action.

> topmost event target
>     The *topmost event target* must be the element highest in the rendering order which is capable of being an event target.
>     In graphical user interfaces this is the element under the user's pointing device. [...]
Comment 1 Chris Rebert 2016-02-04 12:56:49 PST
Set the URL field to the relevant web-platform-test.
Comment 2 Lucas Forschler 2019-02-06 09:19:02 PST
Mass move bugs into the DOM component.