Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notes with normative (SHOULD/MUST) statements #405

Closed
10 tasks done
patrickhlauke opened this issue Aug 4, 2021 · 9 comments
Closed
10 tasks done

Notes with normative (SHOULD/MUST) statements #405

patrickhlauke opened this issue Aug 4, 2021 · 9 comments
Labels

Comments

@patrickhlauke
Copy link
Member

patrickhlauke commented Aug 4, 2021

all authoring guidelines, diagrams, examples, and notes in this specification are non-normative

however, we have a few instances of notes that contain MAY, SHOULD, SHOULD NOT, MUST.

We can either decide that these can be changed into "soft" requirements (and either lowercase or avoid those BCP14 keywords), or we must turn those notes into normative prose.

@bmathwig
Copy link

bmathwig commented Aug 26, 2021

We (Microsoft Edge) would be supportive of adjusting the wording of the pointerId note. Specifically, the pen/stylus as an 'Active Pointer' even when the pen is moved away from the digitizer and requiring it to be considered the same 'Active Pointer' on re-entry into the proximity space of the digitizer.

This would enable a scenario where a User Agent can use the same pointerId for the same physical pen for multi-pen experiences.

@patrickhlauke
Copy link
Member Author

@bmathwig I assume you mean turning the note https://w3c.github.io/pointerevents/#dom-pointerevent-pointerid into normative prose (i.e. removing the note markup around it). Which I think is appropriate/acceptable (don't think we say anything majorly controversial in that section, and we do have the MUST there which needs to be dealt with, and making the whole section normative does that.

@patrickhlauke
Copy link
Member Author

adding my takes here for each of the mentioned notes:

@patrickhlauke
Copy link
Member Author

patrickhlauke commented Sep 1, 2021

[edit: moved to the thread starter]

@mustaqahmed
Copy link
Member

... where a User Agent can use the same pointerId for the same physical pen for multi-pen experiences

Thanks @bmathwig, yes that's a useful use-case we need to support. IIRC we faced issues with detecting the "same physical pen" in the past. Moving a pen off the digitizer range then bringing in a different pen made the second pen indistinguishable from the first one. Didn't investigate if it was caused by a limitation in the hardware or the device driver or the OS (FYI it was several years ago, we used Windows Surface). If a low-level unique pen-id is available these days, that's all we need.

Also note that we don't have to maintain the removed pen as an "active pointer" to support this use case. In fact, maintaining a pen as "forever active" like this would be problematic when the pen has no chance of coming back (say its battery died): if the "dead" pen was the first pen seen by the digitizer, by definition it would remain the primary pointer forever and a replacement pen won't ever produce compatibility mouse events (as a non-primary device of type "pen").

@patrickhlauke
Copy link
Member Author

we had some initial discussions on the first two notes in today's meeting - will do a PR (or two separate PRs even) specifically for those notes, bat them away individually rather than as a single monolithic PR

https://www.w3.org/2021/09/01-pointerevents-minutes.html#t02

patrickhlauke added a commit that referenced this issue Sep 30, 2021
…ve text (#412)

* Move first part of the note about dispatched event order into normative text

x-ref #405

* strengthen from should to must
patrickhlauke added a commit that referenced this issue Sep 30, 2021
…ents normative (#413)

* Make note about UAs not firing compat events if they support touch events normative

x-ref #405

* Reword the normative text further

* Change from SHOULD NOT to MUST NOT
patrickhlauke added a commit that referenced this issue Sep 30, 2021
* Make note about buttons/buttons and compat events normative

x-ref #405

* Change SHOULD to MUST
patrickhlauke added a commit that referenced this issue Oct 13, 2021
* Move elements of `pointerId` informative note to normative text

x-ref #405 https://www.w3.org/2021/09/01-pointerevents-minutes.html#t02

* Completely rejig pointerId explanation

while more verbose, this is an attempt to just explain a bit more what we're trying to do here (prevent tracking/fingerprinting, while also trying to allow some kind of "persistent" pointerId for collaborative scenarios with multiple users, for the lifetime of the page)

* Be more explicit about value for primary mouse pointer
@patrickhlauke
Copy link
Member Author

"second note in https://w3c.github.io/pointerevents/#dfn-active-pointer" discussed in meeting today, agreed that the note is now redundant (and wrong). will remove it

@patrickhlauke
Copy link
Member Author

from today's meeting:

@patrickhlauke
Copy link
Member Author

@flackr reminder of this

draft a PR for the note regarding pointer capture target override https://w3c.github.io/pointerevents/#firing-events-using-the-pointerevent-interface

patrickhlauke added a commit that referenced this issue Oct 20, 2021
#418)

* Move the statement that click/contextmenu are NOT compat mouse events out of note and into normative part of the spec

* Make statement about canceling pointerdown to prevent compat mouse events more definitive

not just "certain" compat mouse events. also remove stray spaces.

x-ref #405

* Remove unnecessary mention of PREVENT MOUSE EVENT in default action table

* Tweak the compat mouse events clarification of click/contextmenu
flackr pushed a commit to flackr/pointerevents that referenced this issue Oct 27, 2021
patrickhlauke added a commit that referenced this issue Dec 6, 2021
…419)

* Remove should from boundary events note and move to normative must.

x-ref #405

* Add explicit mention that this is defined in UI-EVENTS

Co-authored-by: Robert Flack <flackr@chromium.org>
Co-authored-by: Patrick H. Lauke <redux@splintered.co.uk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants