RE: [mediaqueries4] pointer: coarse and pannable, zoomable viewports

[Tab Atkins Jr.:]

> > [Tab Atkins Jr.:]
> >> Compare this to today's world, where in the "best" case you decide
> >> whether to do touch or mouse stuff based on a combination of
> >> user-agent and device-size detection, and new devices generally get
> >> sorted semi-randomly into one of the categories.
> >
> > Yes, they get sorted into a category but they remain in that category,
> right?
> > Are there apps out there that will change their layout on me based on
> > when they think I'm using one pointer or the other? Maybe I need to
> > look at them to understand why anyone would want to risk that.
> 
> Oh, I wasn't thinking that it would swap.  I mean, maybe it could, but I
> was assuming that the MQ would remain stable.  Though, that seems somewhat
> bad if you have a device that is primarily mouse-driven, but you can
> disconnect the monitor to use as a touch tablet.  You'd presumably want
> the page to change slightly to accommodate that?

I'm not sure what's bad; say you have a Surface with a type cover. You have
both coarse and fine pointers so the UA matches the lowest definition pointer 
which is coarse. Nothing changes when you disconnect the keyboard; the UI
remains perfectly usable with a mouse.

Now, if you had both a coarse touchpad and a mouse button in your keyboard 
and disconnect the former so that you're only left with the mouse then maybe 
you want to start matching fine only. Even then, I'm not sure whether/when 
you'd want to risk reflowing whatever the user already has running. This would
definitely be up to the UA.

> 
> I don't think it's really possible to *tell* whether you're using one type
> of pointer or another today, so you won't find any apps that deal with
> that information.
> 
> 

[snip]

> >> Maybe we can extend the feature to handle mixed-interface devices
> better?
> >> I'm not sure how to, off the top of my head.
> >
> > All right, let's assume you can detect that. What CSS do you write
> > when you know the UA has both fine and coarse pointers? More
> > specifically, what CSS would you write that is different from that
> > which you'd apply if it only had one of them?
> 
> I think that, ideally, I'd like to know what the user is doing *right
> now*, and lay out accordingly by growing/shrinking some things.

I'm confused by your use of 'ideally' given your earlier statement that
you wouldn't want the MQ value to swap (or did I misunderstand that?).
How does laying out according to what the user is doing right now not 
result in reflows when the user can switch from one class of pointer to
the other at will?

> 
> In the absence of this kind of magical information, I suspect I'd be
> pessimistic and just always design for the touch case.  Slightly larger
> touch targets aren't *bad* for mouse-based interaction, they just produce
> a slightly larger interface than is strictly necessary for a mouse.

Yes, that is my expectation as well.

> 
> Given that, I think my answer to the "multi-model device" question is
> actually that it should just be pessimistic and answer "coarse".  I guess
> that applies equally to the "hover" MQ - it should return false if the
> device can reasonably be used in a hover-capable and non-hover-capable
> state.  If the device had a strong signal one way or the other, I could
> see it being useful to go ahead and be accurate, but I'd leave that up to
> the UA.
> 
> ~TJ

Received on Wednesday, 12 December 2012 21:45:41 UTC