[w3c/uievents] Should we dispatch a keypress event when spacebar is used to activate an element (#225)

1. Open the following example page in a browser:
```
<!DOCTYPE html>
<html>
<body>
<input type="checkbox">
<pre id="console"></pre>
<script>
let checkbox = document.querySelector("input");

function logKeyEvent(event)
{
    logMessage(`${event.type} key: ${event.key} keyCode: ${event.keyCode}`);
}

function logEvent(event)
{
    logMessage(`${event.type}`);
}

function logMessage(message)
{
    document.getElementById("console").appendChild(document.createTextNode(message + "\n"));
}

function handleFocus()
{
    checkbox.addEventListener("keydown", logKeyEvent);
    checkbox.addEventListener("keypress", logKeyEvent);
    checkbox.addEventListener("keyup", logKeyEvent);
    checkbox.addEventListener("change", logEvent);
    checkbox.addEventListener("click", logEvent);
}

checkbox.addEventListener("focus", handleFocus, { once: true });
</script>
</body>
</html>
```

2. Focus the checkbox. On Mac Safari and Chrome Version 74.0.3725.0 (Official Build) canary (64-bit) you can do this by pressing Option + Tab. On Mac Firefox 65.0.1 , just press Tab.

3. Press the spacebar to activate.

What events should be dispatched?

Safari and Chrome have identical output,  ignoring the initial keyups for the Option + Tab keys (used to focus the checkbox), emphasis mine:

```
keydown key:   keyCode: 32
***keypress key:   keyCode: 32***
keyup key:   keyCode: 32
click
change
```

But Firefox outputs, ignoring the initial keyup for the Tab key (used to focus the checkbox), emphasis mine:

```
keydown key:   keyCode: 32
***keypress key:   keyCode: 0***
keyup key:   keyCode: 32
click
***DOMActivate***
change
```

All browsers fire a keypress event. Though Firefox also dispatches a DOMActivate event. The spec. does not seem to say what is the correct events and event ordering. The wording in <https://w3c.github.io/uievents/#legacy-uievent-event-order> says that if you fire a DOMActivate (like Firefox) then it seems that you don't fire a keypress. Firefox is not abiding by this. But the spec does not seem to mention how to handle activation if a DOMActivate event is ***not*** dispatched like in Chrome and Safari. Can we please spec this behavior out clearly?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/uievents/issues/225

Received on Tuesday, 5 March 2019 23:01:10 UTC