- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Fri, 19 Dec 2014 09:40:29 -0800
- To: Rick Byers <rbyers@chromium.org>
- Cc: Oren Freiberg <oren.freiberg@microsoft.com>, Mustaq Ahmed <mustaq@chromium.org>, Florian Rivoal <florian@rivoal.net>, Brandon Walderman <brwalder@microsoft.com>, CSS WG <www-style@w3.org>, François REMY <francois.remy.dev@outlook.com>, Rossen Atanassov <Rossen.Atanassov@microsoft.com>
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. ~TJ
Received on Friday, 19 December 2014 17:41:17 UTC