Re: [mediaqueries4]Differentiating touchscreen+mouse from touchscreen only scenarios

On Fri, Dec 19, 2014 at 12:40 PM, Tab Atkins Jr. <jackalmage@gmail.com>
wrote:
>
> On Fri, Dec 19, 2014 at 8:56 AM, Rick Byers <rbyers@chromium.org> wrote:
> > On Thu, Dec 18, 2014 at 5:55 PM, Oren Freiberg <
> oren.freiberg@microsoft.com>
> > wrote:
> >>
> >> > We think the spec should avoid ambiguities around non-pointer
> >> > devices---we were bitten by this during our implementation.
> >> > Details: Even though 'pointer', 'any-pointer', 'hover' and 'any-hover'
> >> > values are meant for pointing devices only (right?), the spec
> >> >    http://dev.w3.org/csswg/mediaqueries-4/#mf-interaction
> >> > defines 'pointer' and 'hover' values ambiguously with respect to
> >> > inclusion/exclusion of non-pointing input device like keyboards:
> >> >
> >> > A. The 'pointer' value definitions include non-pointing devices, but
> the
> >> > 'hover' value definitions don't. These defs use "... primary input
> mechanism
> >> > ..." and "... primary pointing system ..." respectively.
> >> > B. The 'any-pointer' and 'any-hover' definitions include non-pointing
> >> > devices: "... capabilities of all the input devices ...".
> >
> >
> > It turns out Tab and I made some different assumptions on the intentions
> > here (and failed to talk to each other about it - sorry!).  I think the
> two
> > specific open issues are:
> >
> > 1) Is the distinction in the spec language between "pointer device" and
> > "input device" meaningful?  Can we just clarify all the wording to refer
> to
> > "pointing" devices to make it clear these APIs have nothing to do with
> > non-pointer input devices like keyboards?
>
> Yeah, I didn't intend any difference.  I'll unify it to "pointing devices".
>
> > 2) What are the semantics for "any-{pointer,hover}: none"?  If it's
> strictly
> > a union of the {pointer,hover} values (as Tab instructed Dave off thread
> for
> > our initial implementation in chromium) then 'any-pointer: none' will
> always
> > be true.  If instead, it's a union of all capabilities (where 'none'
> > represents the absence of a relevant capability) then 'none' is mutually
> > exclusive with all other values and so 'any-pointer' is true iff
> 'pointer'
> > is true.  The latter makes the most conceptual sense to me, and appears
> > (from our limited testing) to be what the IE tech preview implements.
> We've
> > just switched our implementation to match this (before I was aware of the
> > discussion between Dave and Tab on this point).
>
> The latter is what's intended - I don't think any MQ should be both
> truthy and falsey at the same time, so "none" should be mutually
> exclusive with the rest.  I'll tweak the wording to make this clear.
>

Perfect, thanks Tab!  So I believe our implementation is now in conformance
here ;-)


>
> ~TJ
>

Received on Friday, 19 December 2014 17:44:05 UTC