- From: Boris Smus <smus@google.com>
- Date: Mon, 9 Jul 2012 15:21:56 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: www-style@w3.org
- Message-ID: <CAJ-LAqzVu-oPpe6NH6ttGdmdNtyopy=42G3+Bn0-ZLTNBrS7jg@mail.gmail.com>
On Mon, Jul 2, 2012 at 10:59 AM, Tab Atkins Jr. <jackalmage@gmail.com>wrote: > On Sat, Jun 30, 2012 at 9:35 PM, Boris Smus <smus@google.com> wrote: > > Hi Folks, > > > > Section 3.1 of the Media Query specification > > (http://www.w3.org/TR/css3-mediaqueries/) says "Unknown media types > evaluate > > to false". While this might be acceptable for declarative CSS (sorta), it > > poses problems in JavaScript using the window.matchMedia function > > (http://dev.w3.org/csswg/cssom-view/#mediaquerylist). > > > > # Problem > > > > Here's the problem: there is no way to tell if a media query is > implemented > > in a given user agent, because unknown media features still evaluate to > > false. Really, there are three possibilities: 1) MQ matches 2) MQ doesn't > > match 3) MQ Is invalid. For example, in Chrome, the following returns > false: > > > > matchMedia('(min--moz-device-pixel-ratio: 2)').matches > > > > which can imply either than the query didn't match, or was invalid. This > > particular case is obviously invalid since moz-prefixing, but the general > > case is very confusing because there's no distinction between "no match" > and > > "invalid". > > In a conforming browser (FF and Opera do it right I think, WebKit > doesn't, don't know about IE), you can test this by putting the MQ in > a stylesheet and then reading it back out. If it comes out with the > query transformed into "not all", it's an unsupported query. > > That said, this is slightly clumsy. Agree. Seems unintuitive and requires special knowledge on the web developer's part. > I'm not against your proposal to > add an explicit validity boolean to the returned value of matchMedia. > If there is consensus, what can I do to help change the spec? > > ~TJ >
Received on Monday, 9 July 2012 22:22:24 UTC