Open Bug 1949734 Opened 5 days ago Updated 1 day ago

Mouse not detected as primary pointer device on DELL Windows Laptop with touchscreen

Categories

(Core :: Widget: Win32, defect, P3)

Firefox 135
defect

Tracking

()

ASSIGNED

People

(Reporter: laviniadarabus, Assigned: cmartin)

References

Details

(Whiteboard: [win:touch])

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0

Steps to reproduce:

Go to this page with Firefox stable version 135.0 (64-bit), on a Windows 11 Enterprise DELL Latitute 5531 laptop when a touchscreen and a mouse are enabled/connected:
https://hoverpointer-media-query.glitch.me/

Actual results:

The mouse is not recognized as the primary pointer device.
These are my results:
pointer:none false
pointer:coarse true
pointer:fine false
hover:none true
hover:hover false
any-pointer:none false
any-pointer:coarse true
any-pointer:fine true
any-hover:none false
any-hover:hover true

Expected results:

I was expecting:
pointer: fine true
hover:hover true
hover: none false
pointer: coarse false

The Bugbug bot thinks this bug should belong to the 'Core::Widget: Win32' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Widget: Win32
Product: Firefox → Core

I also looked over this bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1806259
but it seems like my issue is a little bit different, since my mouse is recognized: any-pointer:fine true, just not as the primary pointer device.

Component: Widget: Win32 → Untriaged
Product: Core → Firefox
Component: Untriaged → Widget: Win32
Product: Firefox → Core

Pinging :cmartin for domain expertise.

Severity: -- → S3
Flags: needinfo?(cmartin)
Priority: -- → P3
See Also: → 1735765, 1806259
Whiteboard: [win:touch]

Unfortunately, this is a known issue and is (IMO) a reason why the W3C should either deprecate the entire "primary pointer" concept in CSS and deal only with the "any pointer" queries, or flesh out the "primary pointer" concept further to deal with the reality of modern computers.

When dealing with modern, complex multi-input machines like the one Lavinia Darabus has (has a touchscreen, a touchpad, and also has a mouse plugged into it) it's not very obvious what the "primary pointer" should be. If the user suddenly starts using their touchscreen to scroll, does that suddenly become the primary pointer? Even if the user doesn't have a mouse plugged in -- Is the touchscreen (pointer:coarse) the "primary pointer" or is the touchpad (pointer: fine)?

And the bigger question: As a website developer, does knowing the "primary pointer" really add value? Even if the user has a mouse plugged into their touchscreen tablet device, the fact is that **they have a touchscreen ** -- there's nothing stopping them from poking buttons on their screen with their finger; maybe your website should display touch-friendly controls if it even detects a touchscreen? (any-pointer: coarse).

That being said -- We can probably still do a better job with the under-specified concept of "primary pointer". Perhaps this logic is better than what we have:

  1. If there is an external mouse or tablet pen, it's the primary pointer
  2. Otherwise, if there is a touchscreen, it's the primary pointer
  3. Otherwise, if there is a touchpad or an internal tablet digitizer, it's the primary pointer
  4. Otherwise, there is no pointing device (this can realistically never happen due to the Microsoft "virtual mouse" concept)

The above is based on my unscientific, unproven assumptions about the expectations people would have using their computers that I can in-no-way prove is better than the implementation we have now.

I'll assign it to myself, and when I get cycles to work on this again I'll take a crack at it.

Assignee: nobody → cmartin
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Flags: needinfo?(cmartin)
You need to log in before you can comment on or make changes to this bug.