# CSS Media Queries Level 3 Implementation Report

## For the Recommendation of 21 May 2024

In the 21 May 2024 Recommendation, one proposed correction has been included, signaling the intent to make a normative revision in a subsequent publication. It is identified as Proposed Correction 2 in the draft. Tests for this change have been added to WPT. Live results can be viewed at wpt.fyi. A copy of the test results, as of 14 May 2023, is provided here.

Test Name | Google Chrome 126 (Linux 20.04) | Microsoft Edge 126 (Windows 10.0) | Mozilla Firefox 1127 (Linux20.04) | Apple Safari 194 preview (macOS 13.6)
--- | --- | --- | --- | ---
mq-invalid-media-type-layer-001.html | Pass | Pass | Pass | Pass
mq-invalid-media-type-layer-002.html | Pass | Pass | Pass | Pass

As can be see above, all pass in at more than two browser engines.

## For the W3C Recommendation of 05 April 2022

The 05 April 2022 Recommendation only has editorial changes compared to the 19 June 2012 Recommendation, and thus does not require distinct testing (see below for testing of the 2012 Recommendation).

However, it does include one proposed correction, identified as Proposed Correction 1 in the specification, signaling the intent to make a normative revision in a subsequent publication. This proposed change therefore needs testing, and tests for this change have thus been added to WPT. Live results can be viewed at wpt.fyi. A copy of these results, as of 07 April 2022 is provided here.

Test Name | Google Chrome 102 (Linux) | Microsoft Edge 101 (Windows) | Mozilla Firefox 101 (Linux) | Apple Safari 142 preview (macOS)
--- | --- | --- | --- | ---
mq-invalid-media-type-001.html | Pass | Pass | Pass | Pass
mq-invalid-media-type-002.html | Pass | Pass | Pass | Pass
mq-invalid-media-type-003.html | Pass | Pass | Pass | Pass
mq-invalid-media-type-004.html | Pass | Pass | Pass | Fail
mq-invalid-media-type-005.html | Pass | Pass | Pass | Fail

As can be see above, even though some tests failures remain in one engine, all these tests pass in at least two browser engines.

Note: Google Chrome and Microsoft Edge share the same engine.

Also, one of the editorial changes uses a more precise term to characterize the syntax of css, in a descriptive (rather than prescriptive) sentence. The veracity of this claim is validated by a WPT test. As of 07 April 2022, it passes in all tested engines.

Test Name | Google Chrome 102 (Linux) | Microsoft Edge 101 (Windows) | Mozilla Firefox 101 (Linux) | Apple Safari 142 preview (macOS)
--- | --- | --- | --- | ---
mq-case-insensitive-001.html | Pass | Pass | Pass | Pass

## For the W3C Recommendation of 19 June 2012

This is a report on the 2012-02-29 version of the CSS Media Queries level 3 test suite, a Release Candidate version of the official Test Suite.

The testable assertions in the 19 June 2012 Recommendation are exercised by 361 tests.

Note: Most results for Chrome were taken by running equivalent unscripted tests (where possible) since the scripted tests would not run correctly.

Test Name | Opera 12.00-1317 | Firefox 10.0.1 | Internet Explorer 10.0.8250.0 | Chrome 20.0.1132.27 beta
--- | --- | --- | --- | ---
Script-harness Sanity Check | Pass | Pass | Pass | Fail
Logic Expressions on Untyped Queries | Opera | Firefox | Internet Explorer | Chrome
query (orientation) should be parseable | Pass | Pass | Pass | Fail
query not (orientation) should not be parseable | Pass | Pass | Pass | Pass
query only (orientation) should not be parseable | Pass | Pass | Pass | Pass
query all and (orientation) should be parseable | Pass | Pass | Pass | Fail
query not all and (orientation) should be parseable | Pass | Pass | Pass | Pass
query only all and (orientation) should be parseable | Pass | Pass | Pass | Fail
Parsing width | Opera | Firefox | Internet Explorer | Chrome
expression width should be parseable | Pass | Pass | Pass | Pass
expression width: 0 should be parseable | Pass | Pass | Pass | Pass
expression width: 0px should be parseable | Pass | Pass | Pass | Pass
expression width: 0em should be parseable | Pass | Pass | Pass | Pass
expression width: -0 should be parseable | Pass | Pass | Pass | Pass
expression min-width: -0 should be parseable | Pass | Pass | Pass | Pass
expression max-width: -0 should be parseable | Pass | Pass | Pass | Pass
expression width: -0cm should be parseable | Pass | Pass | Pass | Pass
expression width: 1px should be parseable | Pass | Pass | Pass | Pass
expression width: 0.001mm should be parseable | Pass | Pass | Pass | Pass
expression width: 100000px should be parseable | Pass | Pass | Pass | Pass
expression width: -1px should not be parseable | Pass | Pass | Pass | Fail
expression min-width: -1px should not be parseable | Pass | Pass | Pass | Fail
expression max-width: -1px should not be parseable | Pass | Pass | Pass | Fail
expression width: -0.00001mm should not be parseable | Pass | Pass | Fail | Fail
expression width: -100000em should not be parseable | Pass | Pass | Pass | Fail
expression min-width should not be parseable | Pass | Pass | Pass | Fail
expression max-width should not be parseable | Pass | Pass | Pass | Fail
Parsing height | Opera | Firefox | Internet Explorer | Chrome
expression height should be parseable | Pass | Pass | Pass | Pass
expression height: 0 should be parseable | Pass | Pass | Pass | Pass
expression height: 0px should be parseable | Pass | Pass | Pass | Pass
expression height: 0em should be parseable | Pass | Pass | Pass | Pass
expression height: -0 should be parseable | Pass | Pass | Pass | Pass
expression min-height: -0 should be parseable | Pass | Pass | Pass | Pass
expression max-height: -0 should be parseable | Pass | Pass | Pass | Pass
expression height: -0cm should be parseable | Pass | Pass | Pass | Pass
expression height: 1px should be parseable | Pass | Pass | Pass | Pass
expression height: 0.001mm should be parseable | Pass | Pass | Pass | Pass
expression height: 100000px should be parseable | Pass | Pass | Pass | Pass
expression height: -1px should not be parseable | Pass | Pass | Pass | Fail
expression min-height: -1px should not be parseable | Pass | Pass | Pass | Fail
expression max-height: -1px should not be parseable | Pass | Pass | Pass | Fail
expression height: -0.00001mm should not be parseable | Pass | Pass | Fail | Fail
expression height: -100000em should not be parseable | Pass | Pass | Pass | Fail
expression min-height should not be parseable | Pass | Pass | Pass | Fail
expression max-height should not be parseable | Pass | Pass | Pass | Fail
Parsing device-width | Opera | Firefox | Internet Explorer | Chrome
expression device-width should be parseable | Pass | Pass | Pass | Pass
expression device-width: 0 should be parseable | Pass | Pass | Pass | Pass
expression device-width: 0px should be parseable | Pass | Pass | Pass | Pass
expression device-width: 0em should be parseable | Pass | Pass | Pass | Pass
expression device-width: -0 should be parseable | Pass | Pass | Pass | Pass
expression min-device-width: -0 should be parseable | Pass | Pass | Pass | Pass
expression max-device-width: -0 should be parseable | Pass | Pass | Pass | Pass
expression device-width: -0cm should be parseable | Pass | Pass | Pass | Pass
expression device-width: 1px should be parseable | Pass | Pass | Pass | Pass
expression device-width: 0.001mm should be parseable | Pass | Pass | Pass | Pass
expression device-width: 100000px should be parseable | Pass | Pass | Pass | Pass
expression device-width: -1px should not be parseable | Pass | Pass | Pass | Fail
expression min-device-width: -1px should not be parseable | Pass | Pass | Pass | Fail
expression max-device-width: -1px should not be parseable | Pass | Pass | Pass | Fail
expression device-width: -0.00001mm should not be parseable | Pass | Pass | Fail | Fail
expression device-width: -100000em should not be parseable | Pass | Pass | Pass | Fail
expression min-device-width should not be parseable | Pass | Pass | Pass | Fail
expression max-device-width should not be parseable | Pass | Pass | Pass | Fail
Parsing device-height | Opera | Firefox | Internet Explorer | Chrome
expression device-height should be parseable | Pass | Pass | Pass | Pass
expression device-height: 0 should be parseable | Pass | Pass | Pass | Pass
expression device-height: 0px should be parseable | Pass | Pass | Pass | Pass
expression device-height: 0em should be parseable | Pass | Pass | Pass | Pass
expression device-height: -0 should be parseable | Pass | Pass | Pass | Pass
expression min-device-height: -0 should be parseable | Pass | Pass | Pass | Pass
expression max-device-height: -0 should be parseable | Pass | Pass | Pass | Pass
expression device-height: -0cm should be parseable | Pass | Pass | Pass | Pass
expression device-height: 1px should be parseable | Pass | Pass | Pass | Pass
expression device-height: 0.001mm should be parseable | Pass | Pass | Pass | Pass
expression device-height: 100000px should be parseable | Pass | Pass | Pass | Pass
expression device-height: -1px should not be parseable | Pass | Pass | Pass | Fail
expression min-device-height: -1px should not be parseable | Pass | Pass | Pass | Fail
expression max-device-height: -1px should not be parseable | Pass | Pass | Pass | Fail
expression device-height: -0.00001mm should not be parseable | Pass | Pass | Fail | Fail
expression device-height: -100000em should not be parseable | Pass | Pass | Pass | Fail
expression min-device-height should not be parseable | Pass | Pass | Pass | Fail
expression max-device-height should not be parseable | Pass | Pass | Pass | Fail
Applying width | Opera | Firefox | Internet Explorer | Chrome
all and (width: 117px) should apply | Pass | Pass | Pass | Pass
all and (width: 118px) should not apply | Pass | Pass | Pass | Pass
all and (width: 116px) should not apply | Pass | Pass | Pass | Pass
all and (min-width: 117px) should apply | Pass | Pass | Pass | Pass
all and (min-width: 118px) should not apply | Pass | Pass | Pass | Pass
all and (min-width: 116px) should apply | Pass | Pass | Pass | Pass
all and (max-width: 117px) should apply | Pass | Pass | Pass | Pass
all and (max-width: 118px) should apply | Pass | Pass | Pass | Pass
all and (max-width: 116px) should not apply | Pass | Pass | Pass | Pass
all and (min-width: 9em) should not apply | Pass | Pass | Pass | Pass
all and (min-width: 6em) should apply | Pass | Pass | Pass | Pass
all and (max-width: 9em) should apply | Pass | Pass | Pass | Pass
all and (max-width: 6em) should not apply | Pass | Pass | Pass | Pass
Applying height | Opera | Firefox | Internet Explorer | Chrome
all and (height: 76px) should apply | Pass | Pass | Pass | Pass
all and (height: 77px) should not apply | Pass | Pass | Pass | Pass
all and (height: 75px) should not apply | Pass | Pass | Pass | Pass
all and (min-height: 76px) should apply | Pass | Pass | Pass | Pass
all and (min-height: 77px) should not apply | Pass | Pass | Pass | Pass
all and (min-height: 75px) should apply | Pass | Pass | Pass | Pass
all and (max-height: 76px) should apply | Pass | Pass | Pass | Pass
all and (max-height: 77px) should apply | Pass | Pass | Pass | Pass
all and (max-height: 75px) should not apply | Pass | Pass | Pass | Pass
all and (min-height: 6em) should not apply | Pass | Pass | Pass | Pass
all and (min-height: 3em) should apply | Pass | Pass | Pass | Pass
all and (max-height: 6em) should apply | Pass | Pass | Pass | Pass
all and (max-height: 3em) should not apply | Pass | Pass | Pass | Pass
Applying device-width | Opera | Firefox | Internet Explorer | Chrome
all and (device-width: 2330px) should apply | Pass | Pass | Pass | Pass
all and (device-width: 2331px) should not apply | Pass | Pass | Pass | Pass
all and (device-width: 2329px) should not apply | Pass | Pass | Pass | Pass
all and (min-device-width: 2330px) should apply | Pass | Pass | Pass | Pass
all and (min-device-width: 2331px) should not apply | Pass | Pass | Pass | Pass
all and (min-device-width: 2329px) should apply | Pass | Pass | Pass | Pass
all and (max-device-width: 2330px) should apply | Pass | Pass | Pass | Pass
all and (max-device-width: 2331px) should apply | Pass | Pass | Pass | Pass
all and (max-device-width: 2329px) should not apply | Pass | Pass | Pass | Pass
all and (min-device-width: 147em) should not apply | Pass | Pass | Pass | Pass
all and (min-device-width: 144em) should apply | Pass | Pass | Pass | Pass
all and (max-device-width: 147em) should apply | Pass | Pass | Pass | Pass
all and (max-device-width: 144em) should not apply | Pass | Pass | Pass | Pass
Applying device-height | Opera | Firefox | Internet Explorer | Chrome
all and (device-height: 1680px) should apply | Pass | Pass | Pass | Pass
all and (device-height: 1681px) should not apply | Pass | Pass | Pass | Pass
all and (device-height: 1679px) should not apply | Pass | Pass | Pass | Pass
all and (min-device-height: 1680px) should apply | Pass | Pass | Pass | Pass
all and (min-device-height: 1681px) should not apply | Pass | Pass | Pass | Pass
all and (min-device-height: 1679px) should apply | Pass | Pass | Pass | Pass
all and (max-device-height: 1680px) should apply | Pass | Pass | Pass | Pass
all and (max-device-height: 1681px) should apply | Pass | Pass | Pass | Pass
all and (max-device-height: 1679px) should not apply | Pass | Pass | Pass | Pass
all and (min-device-height: 106em) should not apply | Pass | Pass | Pass | Pass
all and (min-device-height: 104em) should apply | Pass | Pass | Pass | Pass
all and (max-device-height: 106em) should apply | Pass | Pass | Pass | Pass
all and (max-device-height: 104em) should not apply | Pass | Pass | Pass | Pass
Width/Height Implicit Comparisons to Zero | Opera | Firefox | Internet Explorer | Chrome
all and (height) should apply (in 0-width viewport) | Pass | Pass | Pass | Pass
all and (width) should not apply (in 0-width viewport) | Pass | Pass | Pass | Unknown
all and (height) should not apply (in 0-size viewport) | Pass | Pass | Pass | Unknown
all and (width) should not apply (in 0-size viewport) | Pass | Pass | Pass | Unknown
all and (device-height) should apply (in 0-size viewport) | Pass | Pass | Pass | Unknown
all and (device-width) should apply (in 0-size viewport) | Pass | Pass | Pass | Unknown
all and (height) should not apply (in 0-height viewport) | Pass | Pass | Pass | Unknown
all and (width) should apply (in 0-height viewport) | Pass | Pass | Pass | Pass
all and (height) should apply (in positive-size viewport) | Pass | Pass | Pass | Pass
all and (width) should apply (in positive-size viewport) | Pass | Pass | Pass | Pass
Parsing orientation | Opera | Firefox | Internet Explorer | Chrome
expression orientation should be parseable | Pass | Pass | Pass | Fail
expression orientation: portrait should be parseable | Pass | Pass | Pass | Pass
expression orientation: landscape should be parseable | Pass | Pass | Pass | Pass
expression min-orientation should not be parseable | Pass | Pass | Pass | Unknown
expression min-orientation: portrait should not be parseable | Pass | Pass | Pass | Unknown
expression min-orientation: landscape should not be parseable | Pass | Pass | Pass | Unknown
expression max-orientation should not be parseable | Pass | Pass | Pass | Unknown
expression max-orientation: portrait should not be parseable | Pass | Pass | Pass | Unknown
expression max-orientation: landscape should not be parseable | Pass | Pass | Pass | Unknown
Applying orientation | Opera | Firefox | Internet Explorer | Chrome
(orientation) should apply | Pass | Pass | Pass | Fail
(orientation: landscape) should apply | Pass | Pass | Pass | Pass
(orientation: portrait) should not apply | Pass | Pass | Pass | Pass
not all and (orientation: portrait) should apply | Pass | Pass | Pass | Pass
(orientation) should apply | Pass | Pass | Pass | Pass
(orientation: landscape) should not apply | Pass | Pass | Pass | Pass
not all and (orientation: landscape) should apply | Pass | Pass | Pass | Pass
(orientation: portrait) should apply | Pass | Pass | Pass | Pass
Applying aspect-ratio | Opera | Firefox | Internet Explorer | Chrome
(aspect-ratio: 59/80) should apply | Pass | Pass | Pass | Pass
(aspect-ratio: 58/80) should not apply | Pass | Pass | Pass | Pass
(aspect-ratio: 59/81) should not apply | Pass | Pass | Pass | Pass
(aspect-ratio: 60/80) should not apply | Pass | Pass | Pass | Pass
(aspect-ratio: 59/79) should not apply | Pass | Pass | Pass | Pass
(aspect-ratio: 177/240) should apply | Pass | Pass | Pass | Pass
(aspect-ratio: 413/560) should apply | Pass | Pass | Pass | Pass
(aspect-ratio: 5900/8000) should apply | Pass | Pass | Pass | Pass
(aspect-ratio: 5901/8000) should not apply | Pass | Pass | Pass | Pass
(aspect-ratio: 5899/8000) should not apply | Pass | Pass | Pass | Pass
(aspect-ratio: 5900/8001) should not apply | Pass | Pass | Pass | Pass
(aspect-ratio: 5900/7999) should not apply | Pass | Pass | Pass | Pass
(aspect-ratio) should apply | Pass | Pass | Pass | Pass
(min-aspect-ratio: 59/80) should apply | Pass | Pass | Pass | Pass
(min-aspect-ratio: 58/80) should apply | Pass | Pass | Pass | Pass
(min-aspect-ratio: 59/81) should apply | Pass | Pass | Pass | Pass
(min-aspect-ratio: 60/80) should not apply | Pass | Pass | Pass | Pass
(min-aspect-ratio: 59/79) should not apply | Pass | Pass | Pass | Pass
expression min-aspect-ratio should not be parseable | Pass | Pass | Pass | Fail
(max-aspect-ratio: 59/80) should apply | Pass | Pass | Pass | Pass
(max-aspect-ratio: 58/80) should not apply | Pass | Pass | Pass | Pass
(max-aspect-ratio: 59/81) should not apply | Pass | Pass | Pass | Pass
(max-aspect-ratio: 60/80) should apply | Pass | Pass | Pass | Pass
(max-aspect-ratio: 59/79) should apply | Pass | Pass | Pass | Pass
expression max-aspect-ratio should not be parseable | Pass | Pass | Pass | Fail
(device-aspect-ratio: 2330/1680) should apply | Pass | Pass | Pass | Pass
not all and (device-aspect-ratio: 2331/1680) should apply | Pass | Pass | Pass | Pass
all and (device-aspect-ratio: 2330/1679) should not apply | Pass | Pass | Pass | Pass
all and (device-aspect-ratio: 2329/1680) should not apply | Pass | Pass | Pass | Pass
not all and (device-aspect-ratio: 2330/1681) should apply | Pass | Pass | Pass | Pass
(device-aspect-ratio) should apply | Pass | Pass | Pass | Pass
(min-device-aspect-ratio: 2330/1680) should apply | Pass | Pass | Pass | Pass
all and (min-device-aspect-ratio: 2331/1680) should not apply | Pass | Pass | Pass | Pass
not all and (min-device-aspect-ratio: 2330/1679) should apply | Pass | Pass | Pass | Pass
not all and (min-device-aspect-ratio: 2329/1680) should not apply | Pass | Pass | Pass | Pass
all and (min-device-aspect-ratio: 2330/1681) should apply | Pass | Pass | Pass | Pass
expression min-device-aspect-ratio should not be parseable | Pass | Pass | Pass | Fail
all and (max-device-aspect-ratio: 2330/1680) should apply | Pass | Pass | Pass | Pass
(max-device-aspect-ratio: 2331/1680) should apply | Pass | Pass | Pass | Pass
(max-device-aspect-ratio: 2330/1679) should apply | Pass | Pass | Pass | Pass
all and (max-device-aspect-ratio: 2329/1680) should not apply | Pass | Pass | Pass | Pass
not all and (max-device-aspect-ratio: 2330/1681) should apply | Pass | Pass | Pass | Pass
expression max-device-aspect-ratio should not be parseable | Pass | Pass | Pass | Fail
Parsing aspect-ratio | Opera | Firefox | Internet Explorer | Chrome
expression max-aspect-ratio: 1/1 should be parseable | Pass | Pass | Pass | Pass
expression max-aspect-ratio: 1 /1 should be parseable | Pass | Pass | Pass | Pass
expression max-aspect-ratio: 1 / \t\n1 should be parseable | Pass | Pass | Pass | Pass
expression max-aspect-ratio: 1/\r1 should be parseable | Pass | Pass | Pass | Pass
expression max-aspect-ratio: 1 should not be parseable | Pass | Pass | Pass | Pass
expression max-aspect-ratio: 0.5 should not be parseable | Pass | Pass | Pass | Pass
expression max-aspect-ratio: 1.0/1 should not be parseable | Pass | Pass | Pass | Fail
expression max-aspect-ratio: 1/1.0 should not be parseable | Pass | Pass | Pass | Fail
expression max-aspect-ratio: 1.0/1.0 should not be parseable | Pass | Pass | Pass | Fail
expression max-aspect-ratio: 0/1 should not be parseable | Pass | Pass | Pass | Fail
expression max-aspect-ratio: 1/0 should not be parseable | Pass | Pass | Pass | Pass
expression max-aspect-ratio: 0/0 should not be parseable | Pass | Pass | Pass | Pass
expression max-aspect-ratio: -1/1 should not be parseable | Pass | Pass | Pass | Fail
expression max-aspect-ratio: 1/-1 should not be parseable | Pass | Pass | Pass | Fail
expression max-aspect-ratio: -1/-1 should not be parseable | Pass | Pass | Pass | Fail
expression device-aspect-ratio: 1/1 should be parseable | Pass | Pass | Pass | Pass
expression device-aspect-ratio: 1 /1 should be parseable | Pass | Pass | Pass | Pass
expression device-aspect-ratio: 1 / \t\n1 should be parseable | Pass | Pass | Pass | Pass
expression device-aspect-ratio: 1/\r1 should be parseable | Pass | Pass | Pass | Pass
expression device-aspect-ratio: 1 should not be parseable | Pass | Pass | Pass | Pass
expression device-aspect-ratio: 0.5 should not be parseable | Pass | Pass | Pass | Pass
expression device-aspect-ratio: 1.0/1 should not be parseable | Pass | Pass | Pass | Fail
expression device-aspect-ratio: 1/1.0 should not be parseable | Pass | Pass | Pass | Fail
expression device-aspect-ratio: 1.0/1.0 should not be parseable | Pass | Pass | Pass | Fail
expression device-aspect-ratio: 0/1 should not be parseable | Pass | Pass | Pass | Unknown
expression device-aspect-ratio: 1/0 should not be parseable | Pass | Pass | Pass | Unknown
expression device-aspect-ratio: 0/0 should not be parseable | Pass | Pass | Pass | Unknown
expression device-aspect-ratio: -1/1 should not be parseable | Pass | Pass | Pass | Unknown
expression device-aspect-ratio: 1/-1 should not be parseable | Pass | Pass | Pass | Unknown
expression device-aspect-ratio: -1/-1 should not be parseable | Pass | Pass | Pass | Unknown
Applying color and monochrome | Opera | Firefox | Internet Explorer | Chrome
all and (color:8) should apply | Pass | Pass | Pass | Pass
all and (color:7) should not apply | Pass | Pass | Pass | Pass
all and (color:9) should not apply | Pass | Pass | Pass | Pass
all and (max-color:8) should apply | Pass | Pass | Pass | Pass
all and (max-color:7) should not apply | Pass | Pass | Pass | Pass
all and (max-color:9) should apply | Pass | Pass | Pass | Pass
all and (color) should apply | Pass | Pass | Pass | Pass
expression max-color should not be parseable | Pass | Pass | Pass | Fail
expression min-color should not be parseable | Pass | Pass | Pass | Fail
all and (monochrome) should not apply | Pass | Pass | Pass | Pass
expression max-monochrome should not be parseable | Pass | Pass | Pass | Unknown
expression min-monochrome should not be parseable | Pass | Pass | Pass | Unknown
not all and (monochrome) should apply | Pass | Pass | Pass | Pass
not all and (color) should not apply | Pass | Pass | Pass | Pass
only all and (color) should apply | Pass | Pass | Pass | Pass
only all and (monochrome) should not apply | Pass | Pass | Pass | Pass
expression color: 1 should be parseable | Pass | Pass | Pass | Pass
expression color: 327 should be parseable | Pass | Pass | Pass | Pass
expression color: 0 should be parseable | Pass | Pass | Pass | Pass
expression color: 1.0 should not be parseable | Pass | Pass | Pass | Fail
expression color: -1 should not be parseable | Pass | Pass | Pass | Fail
expression color: 1/1 should not be parseable | Pass | Pass | Pass | Pass
expression min-monochrome: 1 should be parseable | Pass | Pass | Pass | Pass
expression min-monochrome: 327 should be parseable | Pass | Pass | Pass | Pass
expression min-monochrome: 0 should be parseable | Pass | Pass | Pass | Pass
expression min-monochrome: 1.0 should not be parseable | Pass | Pass | Pass | Fail
expression min-monochrome: -1 should not be parseable | Pass | Pass | Pass | Fail
expression min-monochrome: 1/1 should not be parseable | Pass | Pass | Pass | Fail
color-index | Opera | Firefox | Internet Explorer | Chrome
expression max-color-index: 1 should be parseable | Pass | Pass | Pass | Unimplemented
expression max-color-index: 327 should be parseable | Pass | Pass | Pass | Unimplemented
expression max-color-index: 0 should be parseable | Pass | Pass | Pass | Unimplemented
expression max-color-index: 1.0 should not be parseable | Pass | Pass | Pass | Unimplemented
expression max-color-index: -1 should not be parseable | Pass | Pass | Pass | Unimplemented
expression max-color-index: 1/1 should not be parseable | Pass | Pass | Pass | Unimplemented
(color-index: 0) should apply | Pass | Pass | Pass | Unimplemented
(color-index: 1) should not apply | Pass | Pass | Pass | Unimplemented
(min-color-index: 0) should apply | Pass | Pass | Pass | Unimplemented
(min-color-index: 1) should not apply | Pass | Pass | Pass | Unimplemented
(max-color-index: 0) should apply | Pass | Pass | Pass | Unimplemented
(max-color-index: 1) should apply | Pass | Pass | Pass | Unimplemented
(max-color-index: 157) should apply | Pass | Pass | Pass | Unimplemented
Parsing resolution | Opera | Firefox | Internet Explorer | Chrome
expression resolution: 3dpi should be parseable | Pass | Pass | Pass | Unimplemented
expression resolution:3dpi should be parseable | Pass | Pass | Pass | Unimplemented
expression resolution: 3.0dpi should be parseable | Pass | Pass | Fail | Unimplemented
expression resolution: 3.4dpi should be parseable | Pass | Pass | Fail | Unimplemented
expression resolution\t: 120dpcm should be parseable | Pass | Pass | Pass | Unimplemented
expression resolution: 0dpi should not be parseable | Pass | Pass | Pass | Unimplemented
expression resolution: -3dpi should not be parseable | Pass | Pass | Pass | Unimplemented
expression min-resolution: 3dpi should be parseable | Pass | Pass | Pass | Unimplemented
expression min-resolution:3dpi should be parseable | Pass | Pass | Pass | Unimplemented
expression min-resolution: 3.0dpi should be parseable | Pass | Pass | Fail | Unimplemented
expression min-resolution: 3.4dpi should be parseable | Pass | Pass | Fail | Unimplemented
expression min-resolution\t: 120dpcm should be parseable | Pass | Pass | Pass | Unimplemented
expression min-resolution: 0dpi should not be parseable | Pass | Pass | Pass | Unimplemented
expression min-resolution: -3dpi should not be parseable | Pass | Pass | Pass | Unimplemented
expression max-resolution: 3dpi should be parseable | Pass | Pass | Pass | Unimplemented
expression max-resolution:3dpi should be parseable | Pass | Pass | Pass | Unimplemented
expression max-resolution: 3.0dpi should be parseable | Pass | Pass | Fail | Unimplemented
expression max-resolution: 3.4dpi should be parseable | Pass | Pass | Fail | Unimplemented
expression max-resolution\t: 120dpcm should be parseable | Pass | Pass | Pass | Unimplemented
expression max-resolution: 0dpi should not be parseable | Pass | Pass | Pass | Unimplemented
expression max-resolution: -3dpi should not be parseable | Pass | Pass | Pass | Unimplemented
Applying resolution | Opera | Firefox | Internet Explorer | Chrome
(resolution: 96dpi) should apply | Pass | Pass | Pass | Unimplemented
(resolution: 97dpi) should not apply | Pass | Pass | Pass | Unimplemented
(resolution: 95dpi) should not apply | Pass | Pass | Pass | Unimplemented
(min-resolution: 95dpi) should apply | Pass | Pass | Pass | Unimplemented
not all and (min-resolution: 95dpi) should not apply | Pass | Pass | Pass | Unimplemented
not all and (min-resolution: 97dpi) should apply | Pass | Pass | Pass | Unimplemented
all and (min-resolution: 97dpi) should not apply | Pass | Pass | Pass | Unimplemented
(min-resolution: 37dpcm) should apply | Pass | Pass | Pass | Unimplemented
(max-resolution: 39dpcm) should apply | Pass | Pass | Pass | Unimplemented
(max-resolution: 37dpcm) should not apply | Pass | Pass | Pass | Unimplemented
not all and (min-resolution: 39dpcm) should apply | Pass | Pass | Pass | Unimplemented
scan | Opera | Firefox | Internet Explorer | Chrome
expression scan should be parseable | Pass | Pass | Pass | Unknown
expression scan: progressive should be parseable | Pass | Pass | Pass | Unknown
expression scan:interlace should be parseable | Pass | Pass | Pass | Unknown
expression min-scan:interlace should not be parseable | Pass | Pass | Pass | Unknown
expression scan: 1 should not be parseable | Pass | Pass | Pass | Unknown
expression max-scan should not be parseable | Pass | Pass | Pass | Unknown
expression max-scan: progressive should not be parseable | Pass | Pass | Pass | Unknown
(scan) should not apply | Pass | Pass | Pass | Pass
(scan: progressive) should not apply | Pass | Pass | Pass | Pass
(scan: interlace) should not apply | Pass | Pass | Pass | Pass
not all and (scan) should apply | Pass | Pass | Pass | Pass
not all and (scan: progressive) should apply | Pass | Pass | Pass | Fail
not all and (scan: interlace) should apply | Pass | Pass | Pass | Fail
grid | Opera | Firefox | Internet Explorer | Chrome
expression grid should be parseable | Pass | Pass | Pass | Pass
expression grid: 0 should be parseable | Pass | Pass | Pass | Pass
expression grid: 1 should be parseable | Pass | Pass | Pass | Pass
expression grid: 1 should be parseable | Pass | Pass | Pass | Pass
expression min-grid should not be parseable | Pass | Pass | Pass | Pass
expression min-grid:0 should not be parseable | Pass | Pass | Pass | Pass
expression max-grid: 1 should not be parseable | Pass | Pass | Pass | Pass
expression grid: 2 should not be parseable | Pass | Pass | Pass | Unknown
expression grid: -1 should not be parseable | Pass | Pass | Pass | Unknown
(grid) should not apply | Pass | Pass | Pass | Pass
(grid: 0) should apply | Pass | Pass | Pass | Pass
(grid: 1) should not apply | Pass | Pass | Pass | Pass
(grid: 2) should not apply | Pass | Pass | Pass | Pass
(grid: -1) should not apply | Pass | Pass | Pass | Pass
Malformed Media Queries | Opera | Firefox | Internet Explorer | Chrome
(orientation should apply | Pass | Pass | Pass | Unknown
not all and (orientation should not apply | Pass | Pass | Pass | Unknown
(orientation: should not apply | Pass | Pass | Pass | Unknown
all,(orientation: should apply | Pass | Pass | Pass | Unknown
(orientation:,all should not apply | Pass | Pass | Pass | Unknown
not all and (grid should apply | Pass | Pass | Pass | Unknown
only all and (grid should not apply | Pass | Pass | Pass | Unknown
(grid should not apply | Pass | Pass | Pass | Unknown
all,(grid should apply | Pass | Pass | Pass | Unknown
(grid,all should not apply | Pass | Pass | Pass | Unknown
,all should apply | Pass | Pass | Pass | Unknown
all, should apply | Pass | Pass | Pass | Unknown
,all, should apply | Pass | Pass | Pass | Unknown
all,badmedium should apply | Pass | Pass | Pass | Pass
badmedium,all should apply | Pass | Pass | Pass | Pass
,badmedium, should not apply | Pass | Pass | Pass | Unknown
all,(badexpression) should apply | Pass | Pass | Pass | Pass
(badexpression),all should apply | Pass | Pass | Pass | Pass
(badexpression),badmedium should not apply | Pass | Pass | Pass | Pass
badmedium,(badexpression) should not apply | Pass | Pass | Pass | Pass
all,[badsyntax] should apply | Pass | Pass | Pass | Fail
[badsyntax],all should apply | Pass | Pass | Pass | Fail
badmedium,[badsyntax] should not apply | Pass | Pass | Pass | Pass
[badsyntax],badmedium should not apply | Pass | Pass | Pass | Pass
query all and color : should not be parseable | Pass | Pass | Pass | Pass
query all and color : 1 should not be parseable | Pass | Pass | Pass | Pass
all and min-color : 1 should not apply | Pass | Pass | Pass | Pass
(bogus) should not apply | Pass | Pass | Pass | Pass
not all and (bogus) should not apply | Pass | Pass | Pass | Fail
only all and (bogus) should not apply | Pass | Pass | Pass | Pass