The Can I use... test suite

About

This is a basic test suite of various web technologies for the When Can I Use website.

It is used to quickly test basic support for features in upcoming browsers, rather than any full support of the feature's specification.

Results on this page generally match the results as they appear on the When Can I Use site, but may not always due to a variety of circumstances (test may pass but support is actually buggy, not tested well enough, has alternative method, etc).

Four different types of tests are used:

Auto
Automated JS-based tests. (m) means Modernizr is used.
Visual
Requires visual confirmation/comparison to confirm
Visual-square
Test must create a 30x30px green (lime) square
Interactive
Requires interaction to confirm support

If you are interested in contributing tests, follow these instructions.

Feature Unprefixed tests Prefixed tests

Resource Hints: dns-prefetch

[Feat] [Tests]

Text API for Canvas

[Feat] [Tests]

Auto(m)

Modernizr test for: "canvastext"

WebGL - 3D Canvas graphics

[Feat] [Tests]

Auto(m)

Modernizr test for: "webgl"

Visual-square

getContext('experimental-webgl')

Visual-square

getContext('webgl')

Canvas blend modes

[Feat] [Tests]

Visual-square

Draw cyan and yellow rects on canvas with globalCompositeOperation to result in lime rectangle

WebGL 2.0

[Feat] [Tests]

Visual-square

getContext('experimental-webgl2')

Visual-square

getContext('webgl2')

CSS image-set

[Feat] [Tests]

CSS background-attachment

[Feat] [Tests]

Auto

background-attachment: fixed; property "sticks"

Auto

background-attachment: local; property "sticks"

Interact

CSS Anchor Positioning

[Feat] [Tests]

Auto

CSS.supports test for anchor-name: --foo

CSS Appearance

[Feat] [Tests]

Auto

appearance: none; property stays

CSS caret-color

[Feat] [Tests]

Auto

caret-color: blue; property "sticks"

Interact

Caret must be orange

CSS print-color-adjust

[Feat] [Tests]

Auto

color-adjust

Test color-adjust: exact

Auto

print-color-adjust

Test print-color-adjust: exact

CSS Container Queries (Size)

[Feat] [Tests]

Auto

CSS Container Style Queries

[Feat] [Tests]

Auto

Test for CSS custom property: @container style(--works: true)

Auto

Test for regular CSS value: @container style(font-weight: bold)

CSS Containment

[Feat] [Tests]

Auto

strict

CSS.supports test for contain: strict

Auto

content

CSS.supports test for contain: content

Auto

size

CSS.supports test for contain: size

Auto

layout

CSS.supports test for contain: layout

Auto

paint

CSS.supports test for contain: paint

CSS content-visibility

[Feat] [Tests]

Auto

CSS.supports test for content-visibility: hidden

CSS position:fixed

[Feat] [Tests]

Auto

Interact

CSS font-palette

[Feat] [Tests]

Auto

CSS.supports test for font-palette: normal

CSS font-stretch

[Feat] [Tests]

Auto

font-stretch: condensed; property stays

Visual

Expanded
Condensed

Show expanded & condensed text

CSS hanging-punctuation

[Feat] [Tests]

Auto

CSS.supports test for hanging-punctuation: first

Auto

CSS.supports test for all hanging-punctuation variations

Visual

“foo
bar

quote mark should appear outside blue area

Test for hanging-punctuation: first

CSS Initial Letter

[Feat] [Tests]

Auto

CSS.supports test for initial-letter: 3

Auto

CSS.supports test for initial-letter-align: alphabetic

Auto

CSS.supports test for initial-letter-wrap: first

CSS initial value

[Feat] [Tests]

Auto

letter-spacing CSS property

[Feat] [Tests]

Auto

AAAAAAAAAAA
AAAAAAAAAAA
AAAAAAAAAAA
Test for fractional letter-spacing

Visual-square

AAAAAAAAAAAAA
Test for negative letter spacing

CSS Motion Path

[Feat] [Tests]

Auto

motion-path: path("M900,190 L993,245;")

Auto

motion-offset: 50%

Auto

offset-path: path("M900,190 L993,245;")

Auto

offset-distance: 50%

CSS overflow property

[Feat] [Tests]

Auto

CSS.supports test for overflow-x: clip

Visual-square

Test for overflow: hidden visible;

Visual-square

Test for overflow-x: hidden; overflow-y: visible;

Visual-square

Test if overflow-x: clip works

CSS overscroll-behavior

[Feat] [Tests]

Auto

CSS.supports test for overscroll-behavior-y: contain

Auto

-ms-scroll-chaining: chained; property "sticks"

CSS page-break properties

[Feat] [Tests]

Auto

break-before: always; property "sticks"

Auto

page-break-before: always; property "sticks"

Visual-square

Test page-break-inside:avoid

Visual-square

Test column-break-inside:avoid

Interact

Rebeccapurple color

[Feat] [Tests]

Auto

Test if color is recognized

Auto

Test if color is rgb(102, 51, 153)

Auto

Color should be purple

CSS Scroll-behavior

[Feat] [Tests]

Auto

scroll-behavior: smooth; property "sticks"

Auto

Test if el.scrollBy({ "behavior": "smooth", "left": 0, "top": 0 }); does not throw an error

CSS Scroll Snap

[Feat] [Tests]

Auto

scroll-snap-type: inline mandatory; property "sticks"

Auto

scroll-snap-destination: 10px; property "sticks"

Auto

scroll-snap-coordinate: 10px; property "sticks"

Auto

scroll-snap-points-x: repeat(10px); property "sticks"

Auto

scroll-snap-points-x: snapList(10px); property "sticks" (older spec)

Auto

scroll-snap-margin: 5px; property "sticks"

Auto

scroll-snap-type: x proximity; property "sticks"

Auto

scroll-margin: 5px; property "sticks"

CSS position:sticky

[Feat] [Tests]

Auto

position: sticky; property stays

Interact

CSS Subgrid

[Feat] [Tests]

Auto

CSS.supports test for grid-template-rows: subgrid

CSS text-box-trim & text-box-edge

[Feat] [Tests]

Auto

 a

text-edge / leading-trim

Auto

 a

text-box-edge / text-box-trim

CSS text-justify

[Feat] [Tests]

Auto

CSS.supports test for text-justify: inter-word

Auto

Test if text-justify: distribute sticks

Auto

CSS.supports test for text-justify: inter-character

CSS text-orientation

[Feat] [Tests]

Auto

text-orientation: sideways property "sticks"

Visual

HOTEL

Text should be vertical, but upright

CSS text-wrap: balance

[Feat] [Tests]

Auto

CSS.supports test for text-wrap: balance

Auto

text-wrap-style

CSS.supports test for text-wrap-style: balance

CSS touch-action property

[Feat] [Tests]

Auto

touch-action: none; property stays

CSS @when / @else conditional rules

[Feat] [Tests]

Auto

@when

Auto

@else

Auto

inline @when

CSS widows & orphans

[Feat] [Tests]

Auto

orphans: 5; property "sticks"

Auto

widows: 5; property "sticks"

Visual-square

a a a a
Test for orphans: 9

Visual-square

a a a a
Test for widows: 9

CSS font-size-adjust

[Feat] [Tests]

Auto

font-size-adjust: 1; property stays

Visual-square

x
Test for font-size-adjust: 3

CSS font-variant-numeric

[Feat] [Tests]

Auto

Test all font-variant-numeric values

prefers-color-scheme media query

[Feat] [Tests]

Auto

prefers-dark-interface

Auto

Test all prefers-color-scheme variations

prefers-reduced-motion media query

[Feat] [Tests]

Auto

CSS user-select: none

[Feat] [Tests]

Auto

user-select: none; property "sticks"

Interact

This text should be unselectable by the user.

user-select: none;

CSS will-change property

[Feat] [Tests]

Auto

will-change: contents; property stays

:indeterminate CSS pseudo-class

[Feat] [Tests]

Visual

Visual

Visual

::placeholder CSS pseudo-element

[Feat] [Tests]

Visual

Placeholder should be lime

::placeholder { color: lime; background-color: lime; opacity: 1 } (double colon)

Visual

Placeholder should be lime

:placeholder { color: lime; background-color: lime; opacity: 1 } (single colon)

Visual

Placeholder should be lime

::input-placeholder { color: lime; background-color: lime; opacity: 1 } (double colon)

Visual

Placeholder should be lime

:input-placeholder { color: lime; background-color: lime; opacity: 1 } (single colon)

:placeholder-shown CSS pseudo-class

[Feat] [Tests]

Visual

Placeholder should be lime

:placeholder-shown { color: lime; background-color: lime; opacity: 1 } (single colon)

CSS :read-only and :read-write selectors

[Feat] [Tests]

Visual

div
contenteditable
Test for :read-only & :read-write where appropriate

Visual-square

:read-write

Visual-square

:read-only

CSS scrollbar styling

[Feat] [Tests]

Visual

Should have green & lime scrollbar

Visual

Should have green & lime scrollbar

system-ui value for font-family

[Feat] [Tests]

Visual

Test: serif
Test: system-ui
Test: -apple-system

Variable fonts

[Feat] [Tests]

Visual

text - narrow
text - wide

Visual

text - weight: 200
text - weight: 900

CFF2 format

Visual

text - weight: 200
text - weight: 900

CFF2 format (AdobeVFPrototype)

CSS Masks

[Feat] [Tests]

Visual

mask-image: url(alpha.png);

CSS all property

[Feat] [Tests]

Visual-square

Test for all:inherit

CSS :any-link selector

[Feat] [Tests]

Visual-square

CSS background-blend-mode

[Feat] [Tests]

Visual-square

div with background image, background color & background-blend-mode: multiply

CSS Cascade Layers

[Feat] [Tests]

Visual-square

Test for @layer

Interact

Scoped Styles: the @scope rule

[Feat] [Tests]

Visual-square

Case-insensitive CSS attribute selectors

[Feat] [Tests]

Visual-square

CSS color() function

[Feat] [Tests]

Visual-square

display-p3

Test color(display-p3 0 1 0);

Visual-square

srgb

Test color(srgb 0 1 0);

Visual-square

prophoto-rgb

Test color(prophoto-rgb 0 1 0);

Visual-square

rec2020

Test color(rec2020 0 1 0);

Visual-square

xyz

Test color(xyz 0 1 0);

CSS Container Query Units

[Feat] [Tests]

Visual-square

cqw

Test for width:100cqw; height:100cqw;

Visual-square

cqh

Test for width:100cqh; height:100cqh;

Visual-square

cqi

Test for width:100cqi; height:100cqi;

Visual-square

cqb

Test for width:100cqb; height:100cqb;

Visual-square

cqmin

Test for width:100cqmin; height:100cqmin;

Visual-square

cqmax

Test for width:100cqmax; height:100cqmax;

CSS Cross-Fade Function

[Feat] [Tests]

Visual-square

Test for cross-fade(url(green64x64.png), url(red30x30.png), 0%);

Visual-square

Test for cross-fade(url(red30x30.png), url(green64x64.png), 100%)

:dir() CSS pseudo-class

[Feat] [Tests]

Visual-square

CSS display: contents

[Feat] [Tests]

Visual-square

CSS Exclusions Level 1

[Feat] [Tests]

Visual-square

Test for wrap-flow: both

CSS Grid Layout (level 1)

[Feat] [Tests]

Visual-square

Grid with two columns, two rows and three elements taking up space.

Visual-square

Grid with two columns, two rows and three elements taking up space.

:has() CSS relational pseudo-class

[Feat] [Tests]

Visual-square

:in-range and :out-of-range CSS pseudo-classes

[Feat] [Tests]

Visual-square

Visual-square

LCH and Lab color values

[Feat] [Tests]

Visual-square

lch(87.74% 119.78 136.02)

Visual-square

lab(87.74% -86.18 83.18)

CSS line-clamp

[Feat] [Tests]

Visual-square

a a a a a a a a a a a a a a a a a a a a a a a a a a a

NOTE: Forced -webkit- prefixes

:is() CSS pseudo-class

[Feat] [Tests]

Visual-square

:matches()

Visual-square

:any()

Visual-square

is()

CSS math functions min(), max() and clamp()

[Feat] [Tests]

Visual-square

min()

Visual-square

max()

Visual-square

clamp()

Blending of HTML/SVG elements

[Feat] [Tests]

Visual-square

Overlapping divs with mix-blend-mode: multiply

CSS namespaces

[Feat] [Tests]

Visual-square

Visual-square

CSS Nesting

[Feat] [Tests]

Visual-square

&

Test for nested "&"

Visual-square

@nest

Test for nested "@nest &"

selector list argument of :not()

[Feat] [Tests]

Visual-square

selector list argument of :nth-child and :nth-last-child CSS pseudo-classes

[Feat] [Tests]

Visual-square

CSS Relative color syntax

[Feat] [Tests]

Visual-square

Visual-square

Visual-square

hsl(from var(--color) calc(12deg * 10) s calc(100% / 2))

Visual-square

currentcolor test

hsl(from var(currentcolor) calc(12deg * 10) s calc(100% / 2))

CSS revert value

[Feat] [Tests]

Visual-square

#rrggbbaa hex color notation

[Feat] [Tests]

Visual-square

#rgba

Visual-square

#rgba

Visual-square

#rrggbbaa

Visual-square

#rrggbbaa

CSS text-indent

[Feat] [Tests]

Visual-square

length

text-indent: 30px;

Visual-square


each-line

text-indent: 30px each-line;

Visual-square

hanging

text-indent: 30px hanging;

CSS unset value

[Feat] [Tests]

Visual-square

Test for background:unset

CSS writing-mode property

[Feat] [Tests]

Visual-square

aaaaaaa

CSS zoom

[Feat] [Tests]

Visual-square

Test for zoom: 30

CSS currentColor value

[Feat] [Tests]

Visual-square

Test for background:currentColor; with parent having color set to "lime"

CSS justify-content: space-evenly

[Feat] [Tests]

Visual-square

flexbox

Visual test for justify-content: space-evenly support in flexbox

Visual-square

grid

justify-content: space-evenly in a grid

Small, Large, and Dynamic viewport units

[Feat] [Tests]

Visual-square

svh

Test for width:100svh; height:100svh;

Visual-square

lvh

Test for width:100lvh; height:100lvh;

Visual-square

dvh

Test for width:100dvh; height:100dvh;

Visual-square

svw

Test for width:100svw; height:100svw;

Visual-square

lvw

Test for width:100lvw; height:100lvw;

Visual-square

dvw

Test for width:100dvw; height:100dvw;

:default CSS pseudo-class

[Feat] [Tests]

Interact

CSS Device Adaptation

[Feat] [Tests]

Interact

::first-letter CSS pseudo-element selector

[Feat] [Tests]

Interact

:focus-visible CSS pseudo-class

[Feat] [Tests]

Interact

CSS font-display

[Feat] [Tests]

Interact

::selection CSS pseudo-element

[Feat] [Tests]

Interact

This should be lime when selected

::selection { color: lime; background-color: lime }

ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family

[Feat] [Tests]

Interact

CSS Conical Gradients

[Feat] [Tests]

Visual-square

Test for conic-gradient(lime, lime, red);

Visual-square

Test for multiple stops

Media Queries: interaction media features

[Feat] [Tests]

Visual-square

Test support for @media (pointer:none), (pointer:coarse), (pointer:fine)

Visual-square

Test support for @media (any-hover:none), (any-hover:on-demand), (any-hover:hover)

Visual-square

Test support for @media (any-pointer:none), (any-pointer:coarse), (any-pointer:fine)

Visual-square

Test support for @media (hover:none), (hover:on-demand), (hover:hover)

Media Queries: Range Syntax

[Feat] [Tests]

Visual-square

Test support for @media (1px < width < 99999px)

gap property for Flexbox

[Feat] [Tests]

Visual-square

gap

Test for gap: 30px;

Visual-square

row-gap

Test for row-gap: 30px;

Visual-square

column-gap

Test for column-gap: 30px;

:optional CSS pseudo-class

[Feat] [Tests]

Visual-square

Visual-square

Test to ensure :optional does not apply to a required field

display: flow-root

[Feat] [Tests]

Auto

CSS.supports test for display: flow-root

display: run-in

[Feat] [Tests]

Auto

display: run-in; property "sticks"

Interact

CSS Table display

[Feat] [Tests]

Visual

topleft
topright
bottomleft
bottomright

Should be 2x2 table

CSS Counters

[Feat] [Tests]

Visual-square

Generated counter content should fill block with lime color.

CSS 2.1 selectors

[Feat] [Tests]

Visual-square

Test for child ( > )selector

Visual-square

Adjacent sibling selector test ( + )

Visual-square

Attribute selector ( [role="none"] )

CSS min/max-width/height

[Feat] [Tests]

Visual-square

Visual-square

Visual-square

Visual-square

CSS inline-block

[Feat] [Tests]

Visual-square

CSS3 selectors

[Feat] [Tests]

Should be lime when box is checked

Test for :checked support

Interact

text-emphasis styling

[Feat] [Tests]

A B C D E F

Should have blue triangles above text

text-emphasis: filled triangle blue;

Auto

text-emphasis: circle filled; property "sticks"

Auto

text-emphasis-position: under left; property "sticks"

Visual-square

-
Test for text-emphasis-style: filled circle; text-emphasis-position: over; text-emphasis-color: lime;

CSS3 Background-image options

[Feat] [Tests]

Auto(m)

Modernizr test for: "backgroundsize"

Visual-square

background-clip: content-box;

Visual-square

background-origin: content-box;

Visual-square

background-size: 30px 30px;

Visual-square

background-size: cover;

Visual-square

background: url(green5x5.png) no-repeat 0/cover; (shorthand)

CSS background-repeat round and space

[Feat] [Tests]

Auto

background-repeat: round; property "sticks"

Interact

CSS3 Border images

[Feat] [Tests]

Auto(m)

Modernizr test for: "borderimage"

Visual

Must include 2 or 3 full horizontal yellow diamonds

Test for "round" - longhand

Visual

Must include full horizontal yellow diamonds w/spaces

Test for "space"

Visual-square

Separate properties: border-image-source: url(green5x5.png); border-image-slice: 2;

Visual-square

Shorthand syntax: border-image: url(green5x5.png) 2;

CSS3 Border-radius (rounded corners)

[Feat] [Tests]

Auto(m)

Modernizr test for: "borderradius"

Visual-square

CSS Animation

[Feat] [Tests]

Auto(m)

Modernizr test for: "cssanimations"

Auto

animation-timing-function: steps(4, end) property "sticks"

Auto

animation-timing-function: step-start property "sticks"

Visual-square

animation: staylime 60s infinite; @keyframes staylime { from { background-color: lime; } to { background-color: lime; } }

CSS3 Box-shadow

[Feat] [Tests]

Auto(m)

Modernizr test for: "boxshadow"

Visual-square

Test for support for basic support

Visual-square

Test for support for radius value

Visual-square

Test for support for multiple shadows

Visual-square

Test for support for "inset" shadow

Visual-square

Test for support for multiple inset shadows with radius

CSS Gradients

[Feat] [Tests]

Auto(m)

Modernizr test for: "cssgradients"

Visual-square

linear-gradient(to right, lime, lime, red);

Visual-square

radial-gradient(lime, lime)

Visual-square

linear-gradient(lime, lime)

CSS3 image-orientation

[Feat] [Tests]

Auto

image-orientation: from-image; property stays

Visual-square

Test image-orientation: from-image

Visual-square

Test image-orientation: 180deg

Visual-square

Test image-orientation: 180deg on image with no exif setting

Visual-square

Test image-orientation: flip on image with no exif setting

CSS Logical Properties

[Feat] [Tests]

Auto

Test for padding-inline-end: 10px

Auto

Test for margin-block: 0px

Auto

Test for inset-inline-start: 0px

Auto

Test for border-start-start-radius: 0px

Visual-square

Test for margin-start:30px

Visual-square

Test for margin-inline-start:30px

Visual-square

Test for text-align:end

CSS3 Opacity

[Feat] [Tests]

Auto(m)

Modernizr test for: "opacity"

Visual-square

Test for opacity: 0

CSS3 Text-shadow

[Feat] [Tests]

Auto(m)

Modernizr test for: "textshadow"

Visual

A
font-size: 25px; color: white; text-shadow: 25px 0 3px lime; position: relative; left: -25px;

Visual

A
Multiple shadow test

Visual-square

IIIII
Multiple shadows with radius value

CSS3 Transitions

[Feat] [Tests]

Auto(m)

Modernizr test for: "csstransitions"

Auto

transition-timing-function: steps(4, end) property "sticks"

Interact

Green square must (briefly) appear on hover

5 second transition from left to right using cubic-bezier(0, 1, 1, 0);

CSS3 Colors

[Feat] [Tests]

Auto(m)

Modernizr test for: "hsla"

Visual-square

Visual-square

CSS Flexible Box Layout Module

[Feat] [Tests]

Auto(m)

Modernizr test for: "flexbox"

Visual-square

Test for display: box; (old syntax)

Visual-square

Test for display: flexbox; (2009 syntax)

Visual-square

Test for display: flex; (current syntax)

CSS3 font-kerning

[Feat] [Tests]

Auto

font-kerning: normal; property "sticks"

Auto

Test if text width changes when switching from font-kerning: none to font-kerning: normal on text 'AVAVAVAVAVAVAVAV'

Font unicode-range subsetting

[Feat] [Tests]

Auto

unicode-range: U+0400-14FF; property stays

CSS3 Multiple backgrounds

[Feat] [Tests]

Auto(m)

Modernizr test for: "multiplebgs"

Visual-square

background-repeat: repeat-x; background-image: url(green5x5.png), url(green5x5.png), url(green5x5.png), url(green5x5.png), url(green5x5.png), url(green5x5.png); background-position: 0 0, 0 5px, 0 10px, 0 15px, 0 20px, 0 25px;

CSS3 Multiple column layout

[Feat] [Tests]

Auto(m)

Modernizr test for: "csscolumns"

Visual-square

column-width: 15px; column-gap: 0;

Visual-square

column-width: 30px; column-gap: 0; break-after: column;

CSS3 2D Transforms

[Feat] [Tests]

Auto(m)

Modernizr test for: "csstransforms"

Visual-square

transform: translate(30px);

Visual-square

CSS transform on an SVG element

CSS3 3D Transforms

[Feat] [Tests]

Auto(m)

Modernizr test for: "csstransforms3d"

Auto

backface-visibility

CSS.supports test for backface-visibility: visible

Visual-square

Parent: perspective: 100px; perspective-origin: 0% 50%; Child: transform: rotateY(-15deg);

@font-face Web fonts

[Feat] [Tests]

Auto(m)

Modernizr test for: "fontface"

CSS Counter Styles

[Feat] [Tests]

Visual

  •  

Should say "PASS"

Interact

Crisp edges/pixelated images

[Feat] [Tests]

Visual

img / bg / canvas

Test for image-rendering: crisp-edges

Visual

img / bg / canvas - must be crisp

Test for non-standard interpolation-mode: nearest-neighbor;

Visual

img / bg / canvas - must be crisp

Test for image-rendering: optimize-contrast; (non-standard)

Visual

img / bg / canvas - must be crisp

Test for image-rendering: pixelated;

CSS ::marker pseudo-element

[Feat] [Tests]

Visual

  • -

should say "PASS" and be colored green

text-decoration styling

[Feat] [Tests]

Visual

Lime underline
text-decoration-color: lime

Visual

Dashed underline
text-decoration-style: dashed

Visual

Line-through
text-decoration-line: line-through

Visual

Line-through/dashed/lime
text-decoration-line: line-through dashed lime

Visual

Skip the s p a c e s
text-decoration-skip: spaces

CSS3 Text-overflow

[Feat] [Tests]

Visual

abcdefghijklmnopqrstuvwxyz

Should end with ellipsis

text-overflow: ellipsis;

CSS Generated content for pseudo-elements

[Feat] [Tests]

Visual

-
Element with CSS: #gencontent:before { content: 'A'; } #gencontent:after { content: 'Z'; }

CSS font-feature-settings

[Feat] [Tests]

Visual

LORE

Combine L&O and R&E (current syntax)

Current syntax: font-feature-settings: "dlig" 1;

Visual

LORE

Combine L&O and R&E (old syntax)

Old syntax: font-feature-settings: "dlig=1";

Visual-square

tu
If font-feature-settings:'ss06' 1; (or old syntax) works, the glyphs are replaced with larger ones.

calc() as CSS unit value

[Feat] [Tests]

Visual-square

width: calc(10px + 20px);

Visual-square

height: calc(60px - 100%); width: calc((100% / 2) + 15px - 0.5em); border-right: calc(0.5em) solid lime;

ch (character) unit

[Feat] [Tests]

Visual-square

A
span with single character and font-size: 10ch;

CSS background-position edge offsets

[Feat] [Tests]

Visual-square

Test for background-position:bottom 0px right 0px;

CSS box-decoration-break

[Feat] [Tests]

Visual-square

abc def
Test for box-decoration-break: clone

CSS element() function

[Feat] [Tests]

Visual-square

Test for background:element()

CSS Feature Queries

[Feat] [Tests]

Visual-square

Test for @supports ( display: block )

CSS filter() function

[Feat] [Tests]

Visual-square

CSS Filter Effects

[Feat] [Tests]

Visual-square

filter: invert(1);

Visual-square

filter: url(css-filter.svg#invert);

CSS Hyphenation

[Feat] [Tests]

Visual-square

hy­phen­ation
Test for hyphens: none

Visual-square

hyphenation
Test for hyphens: auto

Visual-square

hy­phen­ation
Test for hyphens: manual

CSS3 Media Queries

[Feat] [Tests]

Visual-square

Visual-square

Test support for nested @media

CSS Regions

[Feat] [Tests]

Visual-square

Two elements: One content iframe with flow-into: flowname; and one div with flow-from: flowname; (IE10pp3)

Visual-square

Two elements: One with flow: "flowname"; and one with content: from-flow("flowname"); (Sept '11 WebKit nightlies)

Visual-square

Two elements: One with flow: "flowname"; and one with content: from-flow("flowname"); (Editor's Draft 30 September 2011)

CSS Shapes Level 1

[Feat] [Tests]

Visual-square

Test to make element float box take up no space using polygon(0px 0px, 0px 0px)

Interact

Adobe test suite

CSS3 text-align-last

[Feat] [Tests]

Visual-square

Test for text-align-last: right

Visual-square

Test for text-align-last: right

Visual-square

Test for text-align-last: end

Visual-square

Test for text-align-last: end

CSS Variables (Custom Properties)

[Feat] [Tests]

Visual-square

on parent: --success-color: lime on child: background-color: var(--success-color);

CSS3 Box-sizing

[Feat] [Tests]

Visual-square

Visual-square

Test for box-sizing: padding-box

CSS3 tab-size

[Feat] [Tests]

Visual-square

tab-size: 0;

Visual-square

tab-size: 60px;

CSS font-variant-alternates

[Feat] [Tests]

Visual-square

tu
Test for font-variant-alternates: styleset(myset)

Interact

Intrinsic & Extrinsic Sizing

[Feat] [Tests]

Visual-square

min-content

width: min-content

Visual-square

width: min-intrinsic

Visual-square

max-content

width: max-content

Visual-square

fit-content()

width: fit-content(30px)

Interact

flex-basis

flex-basis: max-content

CSS3 object-fit/object-position

[Feat] [Tests]

Visual-square

object-fit: contain

Visual-square

object-position: 30px 30px;

CSS outline properties

[Feat] [Tests]

Visual-square

Element with 0 width/height and 30px lime outline.

Visual-square

Test for outline-color: invert

Visual-square

outline-offset

Test for outline-offset: 30px;

rem (root em) units

[Feat] [Tests]

Visual-square

A
span with single character and font-size: 5rem;

Viewport units: vw, vh, vmin, vmax

[Feat] [Tests]

Visual-square

Test for width:100vmin; height:100vmin;

Visual-square

Test for width:100vh; height:100vh;

Visual-square

Test for width:100vw; height:100vw;

Visual-square

.
Test for font-size: 100vw;

Visual-square

.
Test for font-size: 100vh;

Visual-square

Test for width:100vmax; height:100vmax;

CSS3 word-break

[Feat] [Tests]

Visual-square

aaabbbcccdddeeefff
Test for word-break: break-all;

Visual-square

这是一些汉字
Test for word-break: keep-all;

CSS3 Overflow-wrap

[Feat] [Tests]

Visual-square

abcdefghijklmnop
word-wrap: break-word;

Visual-square

abcdefghijklmnop
overflow-wrap: break-word;

CSS resize property

[Feat] [Tests]

Interact

Must be able to resize element

resize: both

CSS3 Cursors (original values)

[Feat] [Tests]

Interact

CSS grab & grabbing cursors

[Feat] [Tests]

Interact

grab
grabbing

CSS3 Cursors: zoom-in & zoom-out

[Feat] [Tests]

Interact

CSS Repeating Gradients

[Feat] [Tests]

Visual-square

background: repeating-linear-gradient(0deg, lime, lime 30px, red 30px, red 60px);

CSS clip-path property (for HTML)

[Feat] [Tests]

Visual-square

Test for clip-path: polygon()

Visual-square

Test for clip-path: url('svg-clippath.svg#clipPolygon')

Interact

Test for clip-path: url(#foo) with inline SVG (button needed due to Chrome/Safari bug)

Media Queries: resolution feature

[Feat] [Tests]

Visual-square

Test for min-device-pixel-ratio

Visual-square

Test for min-resolution: 1dpi

Visual-square

Test for min-resolution: 0.01dppx

Visual-square

Test for min-resolution: 1dpcm

Visual-square

Test for min-resolution: 0.01x

CSS first-line pseudo-element

[Feat] [Tests]

Auto

foo bar

first line should be lime (:first-line)

TTF/OTF - TrueType and OpenType font support

[Feat] [Tests]

Visual

Windsong font

TTF font test

Visual

Windsong font

OTF font test

EventTarget.addEventListener()

[Feat] [Tests]

Auto

Test for addEventListener without useCapture param

Auto

Test for addEventListener with useCapture param

Auto

click should turn it to lime

Test for stopPropagation in event object

ChildNode.remove()

[Feat] [Tests]

Auto

Test for "remove" in document.body

Node.compareDocumentPosition()

[Feat] [Tests]

Auto

Test for 'compareDocumentPosition' in document.body

Interact

Window.devicePixelRatio

[Feat] [Tests]

Auto

EventTarget.dispatchEvent

[Feat] [Tests]

Auto

document.scrollingElement

[Feat] [Tests]

Auto

Test for 'scrollingElement' in document

document.head

[Feat] [Tests]

Auto

Test if document.head matches document.getElementsByTagName('head')[0]

DOM manipulation convenience methods

[Feat] [Tests]

Auto

DOMContentLoaded

[Feat] [Tests]

Auto

Validates once DOMContentLoaded is triggered

DOMMatrix

[Feat] [Tests]

Auto

DOMMatrix

Test for DOMMatrix in window

Auto

WebKitCSSMatrix

Test for WebKitCSSMatrix in window

Auto

CSSMatrix

Test for CSSMatrix in window

Auto

Methods

Test if DOMMatrix methods exist

Auto

Test if DOMMatrix is used in SVG

Auto

Static methods

Test if static DOMMatrix methods exist

Element.closest()

[Feat] [Tests]

Auto

Test Element.closest for self, parent and non-matching selector

document.elementFromPoint()

[Feat] [Tests]

Auto

Test for 'elementFromPoint' in document

Auto

Test if elementFromPoint matches expected element

getComputedStyle

[Feat] [Tests]

Auto

Test getComputedStyle to see if it correctly returns "display" property set on element.

Auto

Test getComputedStyle to see if it correctly returns "content" property set on element's :after pseudo-element.

HTMLElement.innerText

[Feat] [Tests]

Auto

Test if innerText got set as expected

autocomplete attribute: on & off values

[Feat] [Tests]

Auto

Element.insertAdjacentElement() & Element.insertAdjacentText()

[Feat] [Tests]

Auto

insertAdjacentElement

Test for 'insertAdjacentElement' in document.body

Auto

insertAdjacentText

Test for 'insertAdjacentText' in document.body

"once" event listener option

[Feat] [Tests]

Auto

Passive event listeners

[Feat] [Tests]

Auto

Test triggering a custom event with passive: true

querySelector/querySelectorAll

[Feat] [Tests]

Auto

Auto

querySelector test on selector '[data-foo=bar] + *'

Auto

querySelectorAll test on selector '[data-foo=bar] + *'

Shadow DOM (V1)

[Feat] [Tests]

Auto

el.attachShadow

Test for 'attachShadow' in document.body

Auto

window.ShadowRoot

Test for 'ShadowRoot' in window

Node.textContent

[Feat] [Tests]

Auto

Test if textContent got set as expected

Declarative Shadow DOM

[Feat] [Tests]

Visual

Test slotted content

Visual

Test shadowdom content

Visual

Test shadowdom content (shadowroot attribute)

Visual

Test slotted content (shadowroot attribute)

Client Hints: DPR, Width, Viewport-Width

[Feat] [Tests]

Visual-square

DPR

Test if "DPR" header is returned

Visual-square

Width

Test if "Width" header is returned

Visual-square

Viewport-Width

Test if "Viewport-Width" header is returned

defer attribute for external scripts

[Feat] [Tests]

Visual-square

Test to see if defer script runs later.

focusin & focusout events

[Feat] [Tests]

Interact

Focus & unfocus field to test

inputmode attribute

[Feat] [Tests]

Interact

Must show numeric keypad

KeyboardEvent.code

[Feat] [Tests]

Interact

Type "a"

Test if event.code for the "a" key returns "KeyA"

KeyboardEvent.getModifierState()

[Feat] [Tests]

Interact

Type "a"

Test for e.getModifierState('Shift');

KeyboardEvent.key

[Feat] [Tests]

Interact

Type "a"

Test if event.key for the "a" key returns "a"

Interact

Press arrow up

Test if event.key for the arrow up key returns "ArrowUp"

KeyboardEvent.location

[Feat] [Tests]

Interact

Type "a"

Test if event.location for the "a" key returns 0

Interact

Type "a"

Test if event.keyLocation for the "a" key returns 0 (older spec)

Resource Hints: modulepreload

[Feat] [Tests]

Interact

Resource Hints: prefetch

[Feat] [Tests]

Interact

Resource Hints: preload

[Feat] [Tests]

Interact

Resource Hints: prerender

[Feat] [Tests]

Interact

Media Fragments

[Feat] [Tests]

Interact

Should start on "3"

Interact

xywh=50,50,50,50

theme-color Meta Tag

[Feat] [Tests]

Interact

Audio element

[Feat] [Tests]

Auto

document.createElement('audio').canPlayType

Interact

Audio element with 6 different sources (no MIME set)

Interact

Audio element with 6 different sources (with MIME set)

Audio Tracks

[Feat] [Tests]

Auto

Test for audioTracks in video

Autofocus attribute

[Feat] [Tests]

Auto

Canvas (basic support)

[Feat] [Tests]

Auto(m)

Modernizr test for: "canvas"

Visual-square

Draw rect on canvas using fillStyle and fillRect

classList (DOMTokenList)

[Feat] [Tests]

Auto

"classList" in document.body

Auto

"classList" in document.body

Auto

"classList" in SVG element

Visual-square

Test for classList.add & classList.remove

Visual-square

Test for second toggle parameter

Visual-square

Test if multiple parameters for "add" are supported

Custom Elements (V1)

[Feat] [Tests]

Auto

window.customElements.define

Test for customElements.define in window

Auto

Customized built-in element

dataset & data-* attributes

[Feat] [Tests]

Auto

Test for 'dataset' in document.body and getting the correct value returned from a data-foo attribute.

Visual-square

Test .dataset on SVG

Interact

Details & Summary elements

[Feat] [Tests]

Auto

Interact

(summary button)

(detail contents)

"(detail contents)" should be visible ONLY after clicking summary

Basic details element with summary and paragraph as children.

Dialog element

[Feat] [Tests]

Auto

Check for 'showModal' in document.createElement('dialog')

Interact

This is a dialog box

Should open dialog box

disabled attribute of the fieldset element

[Feat] [Tests]

Auto

Interact

Input field should be disabled

Attributes for form submission

[Feat] [Tests]

Auto

Test for form attribute properties

Interact

Form validation

[Feat] [Tests]

Auto

Run checkValidity() on an email field with invalid email input

Visual

All fields should be lime

Test for :valid, :invalid and :required CSS selectors

Interact

Form should show warning and NOT submit

getElementsByClassName

[Feat] [Tests]

Auto

Visual-square

Test if two divs were correctly retrieved using getElementsByClassName

Visual-square

Test if SVG element was correctly retrieved using getElementsByClassName

hidden attribute

[Feat] [Tests]

Auto

Test for 'hidden' in document.body

Visual-square

Red square is hidden if attribute is supported

Session history management

[Feat] [Tests]

Auto(m)

Modernizr test for: "history"

Auto

Test if history.pushState was successful

HTML5 semantic elements

[Feat] [Tests]

Auto

Test if display value of main element is block

Visual-square

section, article, aside, hgroup, header, footer, nav tested for default "block" style.

sandbox attribute for iframes

[Feat] [Tests]

Auto

Test for "sandbox" property in iframe DOM object

Visual-square

Sandboxed iframe with page on other domain that would set its background to red if JS runs.

Visual-square

Sandboxed iframe allowing scripts (but not form submitting) with page on other domain that would set its background to red if a form WAS submitted.

Visual-square

Sandboxed iframe (no attribute value) with page on other domain that would set its background to red if a form WAS submitted.

srcdoc attribute for iframes

[Feat] [Tests]

Auto

Visual-square

Test for iframe with srcdoc having lime background

naturalWidth & naturalHeight image properties

[Feat] [Tests]

Auto

HTML Imports

[Feat] [Tests]

Auto

Test support for 'import' in document.createElement('link')

Email, telephone & URL input types

[Feat] [Tests]

Auto

Test if url type "sticks" for an input element

Auto

Test if tel type "sticks" for an input element

Auto

Test if email type "sticks" for an input element

Interact

Email:
Tel:
URL:

Multiple file selection

[Feat] [Tests]

Auto

Interact

Must allow selection of more than 1 files

input placeholder attribute

[Feat] [Tests]

Auto

"placeholder" in document.createElement('input')

Visual

Placeholder text must say "PASS"

Text input with placeholder value of "PASS"

Search input type

[Feat] [Tests]

Auto

Test if type as search is recognized

Interact

<- search
<- text

Search should appear differently

Lazy loading via attribute for images & iframes

[Feat] [Tests]

Auto

img

Test for "loading" property in img element

Auto

iframe

Test for "loading" property in iframe element

OffscreenCanvas

[Feat] [Tests]

Auto

Test for 'OffscreenCanvas' in window

Auto

Test for .getContext('2d') on an offscreen canvas

Auto

Test for .getContext('webgl') on an offscreen canvas

Reversed attribute of ordered lists

[Feat] [Tests]

Auto

Test for 'reversed' in ol element

Visual

  1.  
  2.  
  3.  

Should number from 3 to 1

Ping attribute

[Feat] [Tests]

Auto

Interact

Click here

readonly attribute of input and textarea elements

[Feat] [Tests]

Auto

Test for "readOnly" in input element

Interact

Custom protocol handling

[Feat] [Tests]

Auto

Test for 'registerProtocolHandler' in navigator

Interact


Open caniusetest://mytest

Link must open rph.html

Interact


Open web+caniusetest://mytest

Link must open rph.html

Test protocol "web+caniusetest"

relList (DOMTokenList)

[Feat] [Tests]

Auto

"relList" in document.createElement("a")

Auto

"relList" in document.createElement("link")

Ruby annotation

[Feat] [Tests]

Auto

display: ruby; property stays

Auto

display: ruby-base-container; property stays

Auto

ruby-position: over; property "sticks"

Auto

ruby-align: space-between; property "sticks"

Visual

(bottom1)(top1)(bottom2)(top2)

Elements should be stacked on top of each other

Spellcheck attribute

[Feat] [Tests]

Auto

Check for 'spellcheck' in document.createElement('input')

Auto

Check for 'spellcheck' in document.createElement('textarea')

Interact

On:
Off:

Must have spellcheck only for first field

Srcset and sizes attributes

[Feat] [Tests]

Auto

Test for 'srcset' in document.createElement('img')

Auto

Test for 'sizes' in document.createElement('img')

Auto

Test if "sizes" works as expected

HTML templates

[Feat] [Tests]

Auto

Test for 'content' when creating a template element

Video element

[Feat] [Tests]

Auto

Auto

Interact

Video with controls and all three formats available.

Interact

Video with controls and all three formats available (with MIME).

Video Tracks

[Feat] [Tests]

Auto

Test for videoTracks in video

indeterminate checkbox

[Feat] [Tests]

Visual

Middle checkbox should appear different from checked & unchecked

meter element

[Feat] [Tests]

Visual

fail

meter widget at 50%

progress element

[Feat] [Tests]

Visual

fail

Progress widget at 50%

Visual

fail

Indeterminate progress widget

Picture element

[Feat] [Tests]

Visual-square

Picture element with one source with min-width:0em media query that should override the src of the img element

async attribute for external scripts

[Feat] [Tests]

Visual-square

Test to see if async script runs later.

wbr (word break opportunity) element

[Feat] [Tests]

Visual-square

foofoofoofoofoofoo

contenteditable attribute (basic support)

[Feat] [Tests]

Interact

This element should be editable.

Div element with attribute contenteditable="true"

Datalist element

[Feat] [Tests]

Interact

Show "foo" and "foobar" as options when "f" is entered

Download attribute

[Feat] [Tests]

Interact

Clicking link must download pass.txt, not navigate

Link with download attribute pointing at a file.

Drag and Drop

[Feat] [Tests]

Interact

Interact

drag file here

Form attribute

[Feat] [Tests]

Interact

HTML Media Capture

[Feat] [Tests]

Interact

Color input type

[Feat] [Tests]

Interact

Must provide widget to select color

Date and time input types

[Feat] [Tests]

Interact

Must provide widget to select date

Interact

Must provide widget to select time

Interact

Must provide widget to select date and time

Interact

Must provide widget to select month

Interact

Must provide widget to select week

input event

[Feat] [Tests]

Interact

Test input event on input type=text

Interact

Test input event on input type=checkbox

accept attribute for file input

[Feat] [Tests]

Interact

Must only accept audio files

Interact


sample png sample jpg

Must only accept .png files

Interact

Must only accept image files

Number input type

[Feat] [Tests]

Interact

Must provide number widget

Interact

Must provide number widget with increments of 2 and max value of 6.

Range input type

[Feat] [Tests]

Interact

Must provide slider widget

Interact

Slider widget

Uses -webkit-slider-thumb styling to make it visible/usable in Android browser

PNG favicons

[Feat] [Tests]

Interact

rel=noopener

[Feat] [Tests]

Interact

tabindex global attribute

[Feat] [Tests]

Interact

Element focus should cycle from right to left

Path2D

[Feat] [Tests]

Auto

Test all Path2D methods

Minimum length attribute for input fields

[Feat] [Tests]

Auto

Test for 'minlength' in an input element

Interact

Form should show warning and NOT submit

Pattern attribute for input fields

[Feat] [Tests]

Auto

Test for "pattern" in input

Visual

All fields should be lime

Test for :valid, :invalid with pattern attribute

Interact

Form should only submit if value is "pass"

Array.prototype.find

[Feat] [Tests]

Auto

Simple array.find() test

Array.prototype.findIndex

[Feat] [Tests]

Auto

flat & flatMap array methods

[Feat] [Tests]

Auto

Test for Array.prototype.flat

Auto

Test for Array.prototype.flatMap

Auto

Test for Array.prototype.flat

Auto

Test for Array.prototype.flatMap

Array.prototype.includes

[Feat] [Tests]

Auto

Async functions

[Feat] [Tests]

Auto

Test if async function can be created

BigInt

[Feat] [Tests]

Auto

Test for BigInt in window

Auto

Test for typeof 1n

const

[Feat] [Tests]

Auto

Test for const FOO = 'bar';

Auto

Test if const is block scoped

Auto

Test if const is block scoped with "use strict"

Auto

Test for const FOO = 'bar'; with "use strict"

Visual-square

Test if const cannot be changed

Visual-square

Test if const cannot be changed (with "use strict")

Date.prototype.toLocaleDateString

[Feat] [Tests]

Auto

no param

Auto

en-US & en-GB locale tests

Auto

options

Auto

Other locales

Auto

options IANA timeZone & timeZoneName

Internationalization API

[Feat] [Tests]

Auto

Test for Intl.Collator

Auto

Test for Intl.DateTimeFormat

Auto

Test for Intl.NumberFormat

Lookbehind in JS regular expressions

[Feat] [Tests]

Auto

localeCompare()

[Feat] [Tests]

Auto

Auto

Test 'a'.localeCompare('b') === -1

Auto

locale

Test 'ä'.localeCompare('z', 'de') < 0

Auto

locale

Test 'ä'.localeCompare('z', 'sv') > 0

Auto

options

Test 'ä'.localeCompare('a', 'de', { sensitivity: 'base' })

Auto

options

Test 'ä'.localeCompare('a', 'sv', { sensitivity: 'base' }) > 0

Object.entries

[Feat] [Tests]

Auto

Auto

Object.values method

[Feat] [Tests]

Auto

String.prototype.padStart(), String.prototype.padEnd()

[Feat] [Tests]

Auto

Test for padStart & padEnd in String.prototype

Auto

Small padStart & padEnd tests

Promise.prototype.finally

[Feat] [Tests]

Auto

Test if finally block is reached

Promises

[Feat] [Tests]

Auto

Create a promise and resolve with parameter

Auto

finally()

Create a promise and test finally

Shared Array Buffer

[Feat] [Tests]

Auto

Test for SharedArrayBuffer without COOP/COEP enabled

Test for 'SharedArrayBuffer' in window

Interact

Test for SharedArrayBuffer with COOP/COEP enabled

JavaScript modules via script tag

[Feat] [Tests]

Visual-square

Test module in iframe

Visual-square

"nomodule" test

Test nomodule in iframe

ECMAScript 5

[Feat] [Tests]

Interact

ECMAScript 2015 (ES6)

[Feat] [Tests]

Interact

JSON parsing

[Feat] [Tests]

Auto

Auto

Create a JS object, convert to JSON string, convert back to object and compare.

ECMAScript 5 Strict Mode

[Feat] [Tests]

Auto

Test for error thrown using "use strict" and var a = {a:1,a:1};

Interact

External test suite

Arrow functions

[Feat] [Tests]

Auto

Test if var fn = (n => n + 1) properly increments by one

ES6 classes

[Feat] [Tests]

Auto

Auto

strict mode

ES6 Generators

[Feat] [Tests]

Auto

ES6 Number

[Feat] [Tests]

Auto

isFinite

Auto

isInteger

Auto

isSafeInteger

Auto

isNaN

Auto

EPSILON

Auto

MIN_SAFE_INTEGER

Auto

MAX_SAFE_INTEGER

String.prototype.includes

[Feat] [Tests]

Auto

Test for 'includes' in String.prototype

Auto

Test if .includes() works

let

[Feat] [Tests]

Auto

let foo = 'bar'

Auto

let foo = 'bar' with "use strict"

Visual-square

Test let support using the "application/javascript;version=1.7" type on the script tag

Proxy object

[Feat] [Tests]

Auto

Test for global Proxy object & revocable method

Rest parameters

[Feat] [Tests]

Auto

Test if rest parameter has correct amount of items

ES6 Template Literals (Template Strings)

[Feat] [Tests]

Auto

Typed Arrays

[Feat] [Tests]

Auto

Check for Int8Array in window

Auto

Check for Uint8Array in window

Auto

Check for Uint8ClampedArray in window

Auto

Check for Int16Array in window

Auto

Check for Uint16Array in window

Auto

Check for Int32Array in window

Auto

Check for Uint32Array in window

Auto

Check for Float32Array in window

Auto

Check for Float64Array in window

Auto

Test for ArrayBuffer

JavaScript modules: dynamic import()

[Feat] [Tests]

Visual-square

Test import()

Intl.PluralRules API

[Feat] [Tests]

Auto

Test for 'PluralRules' in window.Intl

Auto

Test that new Intl.PluralRules('en-US').select(1) === 'one'

Accelerometer

[Feat] [Tests]

Auto

Test for 'Accelerometer' in window

Auto

Test constructor

Ambient Light Sensor

[Feat] [Tests]

Auto

Check for 'ondevicelight' in window

Auto

Check for 'onlightlevel' in window

Asynchronous Clipboard API

[Feat] [Tests]

Auto

Test for navigator.clipboard methods

Interact

Can request "clipboard-write" permission

Interact

First copy text from input field:

Test readText() method

Base64 encoding and decoding

[Feat] [Tests]

Auto

Test if window.btoa and window.atob work

Web Audio API

[Feat] [Tests]

Auto

Auxclick

[Feat] [Tests]

Auto

Test for onauxclick in window

Interact

turn lime on non-primary click

Battery Status API

[Feat] [Tests]

Auto

Test if "battery" in navigator is an object

Auto

Test if "getBattery" in navigator is a function

Beacon API

[Feat] [Tests]

Auto

Test for 'sendBeacon' in navigator

Visual-square

Test if sendBeacon works on beforeunload event

Printing Events

[Feat] [Tests]

Auto

onbeforeprint

Auto

onafterprint

Test for "onafterprint" in window

Interact

BroadcastChannel

[Feat] [Tests]

Auto

"BroadcastChannel" in window

Synchronous Clipboard API

[Feat] [Tests]

Auto

Check for "onpaste" in document

Auto

Test for ClipboardEvent in window

Auto

ClipboardEvent constructor

Interact

Pasting text should turn background lime

Test if document.onpaste is triggered and has clipboardData

Interact

Pasting text should turn background lime (IE)

Test if window.onpaste is triggered and window.clipboardData has data (IE proprietary)

Interact

select this

Paste here:

copy button should copy to clipboard

Interact

Copy this text

Copying text should turn background lime

Test if document.oncopy is triggered and has clipboardData

Interact

paste button should fire paste event

Basic console logging functions

[Feat] [Tests]

Auto

Test for console.log();

Auto

Test for console.error();

Auto

Test for console.warn();

Auto

Test for console.info();

Constraint Validation API

[Feat] [Tests]

Auto

Auto

Auto

Test validity properties

createImageBitmap

[Feat] [Tests]

Auto

Test for 'createImageBitmap' in window

Auto

resizeWidth&resizeHeight

CSS Painting API

[Feat] [Tests]

Auto

Test for 'paintWorklet' in window.CSS

Visual-square

CSS.supports() API

[Feat] [Tests]

Auto

two arguments

Test for CSS.supports("color", "lime");

Auto

supportsCSS

Test for supportsCSS("color", "lime");

Auto

single argument condition

Test for CSS.supports("color: lime");

CustomEvent

[Feat] [Tests]

Auto

Test for document.createEvent('CustomEvent')

Auto

Test if window.CustomEvent exists

Auto

Test for CustomEvent constructor

DeviceOrientation & DeviceMotion events

[Feat] [Tests]

Auto

Check for DeviceOrientationEvent in window

Auto

Must change to lime when device orientation changes.

Add 'deviceorientation' event listener to window.

Auto

Check for 'oncompassneedscalibration' in window

Auto

Check for DeviceMotionEvent in window

document.currentScript

[Feat] [Tests]

Auto

Test for 'currentScript' in document

Auto

Test if document.currentScript is the last accessible script

Document Object Model Range

[Feat] [Tests]

Auto

Test for 'createRange' in document

Auto

Various range tests

Scroll methods on elements (scroll, scrollTo, scrollBy)

[Feat] [Tests]

Auto

Test if 'scroll', 'scrollTo', 'scrollBy' exist in an element

Visual-square

scroll({behavior: 'smooth'})

Visual-square

scrollBy with options

Visual-square

scrollTo(0, 100)

Server-sent events

[Feat] [Tests]

Auto

Fetch

[Feat] [Tests]

Auto

Test for "fetch" in window

File API

[Feat] [Tests]

Auto

Auto

"Blob" in window

Auto

"File" in window

Auto

Test for File constructor

Interact

CSS Font Loading

[Feat] [Tests]

Auto

Test if window.FontFace is a function

Fullscreen API

[Feat] [Tests]

Auto

Check for requestFullScreen in document.body (supports old draft)

Auto

Check for requestFullscreen in document.body (supports current draft)

Interact

Clicking button should send request to go into full screen mode

Test requestFullscreen

Gamepad API

[Feat] [Tests]

Auto

Test for 'Gamepad' in window

Geolocation

[Feat] [Tests]

Auto(m)

Modernizr test for: "geolocation"

Auto

Test for getCurrentPosition, watchPosition and clearWatch in navigator.geolocation

Interact

Must provide LAT and LON info (may need to give permission first)

Test for navigator.geolocation.getCurrentPosition on which position.coords.latitude and position.coords.longitude are expected.

crypto.getRandomValues()

[Feat] [Tests]

Auto

Test for window.crypto.getRandomValues()

Gyroscope

[Feat] [Tests]

Auto

Test for 'Gyroscope' in window

Auto

Test constructor

navigator.hardwareConcurrency

[Feat] [Tests]

Auto

Test for 'hardwareConcurrency' in navigator

Visual

Processors available:

Hashchange event

[Feat] [Tests]

Auto(m)

Modernizr test for: "hashchange"

Visual-square

iframe with addEventListener('hashchange', function() { document.body.style.background = 'lime'; }, false);

High Resolution Time API

[Feat] [Tests]

Auto

test if performance.now() returns a number

IndexedDB

[Feat] [Tests]

Auto(m)

Modernizr test for: "indexeddb"

Auto

Test for "indexedDB" in window

Auto

Test if onupgradeneeded or onsuccess fired

IndexedDB 2.0

[Feat] [Tests]

Auto

Test for 'onclose' in db & 'objectStoreNames' in transaction

Selection controls for input & textarea

[Feat] [Tests]

Auto

Test 'setSelectionRange' 'selectionStart', 'selectionEnd' in input

Auto

Test 'setSelectionRange' 'selectionStart', 'selectionEnd' in textarea

Auto

Test if setSelectionRange works and selectionStart & selectionEnd are correct

IntersectionObserver

[Feat] [Tests]

Auto

Test for 'IntersectionObserver' in window

Auto

Magnetometer

[Feat] [Tests]

Auto

Test for 'Magnetometer' in window

Auto

Test constructor

matches() DOM method

[Feat] [Tests]

Auto

Test for "matchesSelector" in document.body

Auto

Test for "matches" in document.body

matchMedia

[Feat] [Tests]

Auto

Check for matchMedia in window

Media Source Extensions

[Feat] [Tests]

Auto

Auto

Test for "sourceopen" event and check existence of 'sourceBuffers'

Web MIDI API

[Feat] [Tests]

Auto

Test for "getMIDIAccess" in navigator object

Mutation Observer

[Feat] [Tests]

Auto

"MutationObserver" in window

Auto

Test if MutationObserver works

Web Storage - name/value pairs

[Feat] [Tests]

Auto(m)

Modernizr test for: "localstorage"

Auto

Test if getItem, setItem and removeItem work.

Navigation Timing API

[Feat] [Tests]

Auto

Test for performance in window

Auto

Test for "timing" in window.performance

Auto

Test for all properties in performance.timing

Web Notifications

[Feat] [Tests]

Auto

Test for "notifications" in window (older spec)

Auto

Try creating "Notification", check for "show" function in notification instance.

Auto

Test for 'Notification' in window

Interact

Must show a notification

Create notification

Object RTC (ORTC) API for WebRTC

[Feat] [Tests]

Auto

Auto

Online/offline status

[Feat] [Tests]

Auto

Test for 'onLine' in navigator

Auto

Should go lime when going from off to online

Auto

Should go lime when going from on to offline

Orientation Sensor

[Feat] [Tests]

Auto

Test for 'AbsoluteOrientationSensor' in window

Auto

Test constructor

PageTransitionEvent

[Feat] [Tests]

Auto

Auto

Visual-square

Test for iframe with page that turns lime on "pageshow" event

Page Visibility

[Feat] [Tests]

Auto

typeof document.hidden == "boolean"

Auto

typeof document.visibilityState == "string"

Payment Request API

[Feat] [Tests]

Auto

Test for 'PaymentRequest' in window

Auto

Test for PaymentResponse.prototype.retry

Picture-in-Picture

[Feat] [Tests]

Auto

Test for webkitSetPresentationMode

Auto

Interact

Pointer Lock API

[Feat] [Tests]

Auto

Test for requestPointerLock in document.body

Auto

test for movementX in new MouseEvent('mousemove')

Interact

Proximity API

[Feat] [Tests]

Auto

Check for 'ondeviceproximity' in window

Auto

Check for 'onuserproximity' in window

Push API

[Feat] [Tests]

Auto

Test for PushSubscription in window

Auto

Test for PushManager in window

requestAnimationFrame

[Feat] [Tests]

Auto

Test the requestAnimationFrame callback

Auto

Check for requestAnimationFrame in window

Auto

Check for cancelAnimationFrame in window

requestIdleCallback

[Feat] [Tests]

Auto

Auto

Test if requestIdleCallback callback is called

Resize Observer

[Feat] [Tests]

Auto

Test for 'ResizeObserver' in window

Resource Timing (basic support)

[Feat] [Tests]

Auto

Test if window.performance.getEntriesByName is a function

WebRTC Peer-to-peer connections

[Feat] [Tests]

Auto

Test for "RTCPeerConnection" in window object

Screen Orientation

[Feat] [Tests]

Auto

Test if window.screen.orientation is a string

Auto

Test if window.screen.orientation is an object

Interact

Interact

Selection API

[Feat] [Tests]

Auto

Test for 'getSelection' in window

Auto

Test for 'onselectstart' in document

Auto

Test for 'onselectionchange' in document

Visual

Select this text

selectstart triggered: no

selectionchange triggered: no

Server Timing

[Feat] [Tests]

Auto

Test for 'PerformanceServerTiming' in window

Visual-square

Test server-timing values

Service Workers

[Feat] [Tests]

Auto

Test for 'serviceWorker' in navigator

getUserMedia/Stream API

[Feat] [Tests]

Auto

Test for "getUserMedia" in navigator object

Auto

Test for "srcObject" in video element

Auto

Test for navigator.mediaDevices.getUserMedia

Interact

Streams

[Feat] [Tests]

Auto

WritableStream

Auto

basic support

Auto

pipeTo / pipeThrough

Auto

BYOB

Temporal

[Feat] [Tests]

Auto

Test for Temporal in window

TextEncoder & TextDecoder

[Feat] [Tests]

Auto

Test for 'TextEncoder' in window

Auto

Test if TextEncoder returns expected result

Auto

Test for 'TextDecoder' in window

Auto

Test if TextDecoder returns expected result

Touch events

[Feat] [Tests]

Auto(m)

Modernizr test for: "touch"

unhandledrejection/rejectionhandled events

[Feat] [Tests]

Auto

Test for 'onunhandledrejection' in window

Auto

Test for 'onrejectionhandled' in window

URL API

[Feat] [Tests]

Auto

Auto

Test all url properties

Auto

Test base parameter

URLSearchParams

[Feat] [Tests]

Auto

window.URLSearchParams

Test for 'URLSearchParams' in window

Auto

.get()

Test for new URLSearchParams() & params.get()

User Timing API

[Feat] [Tests]

Auto

Test performance.mark and performance.getEntriesByType('mark')

Auto

Test performance.measure and performance.getEntriesByType('measure')

Vibration API

[Feat] [Tests]

Auto

Test if "vibrate" in navigator is a function

View Transitions API (single-document)

[Feat] [Tests]

Auto

Auto

Screen Wake Lock API

[Feat] [Tests]

Auto

Test for 'wakeLock' in navigator

Web Animations API

[Feat] [Tests]

Auto

Test .animate(), should animate from red to lime

Auto

Test if player.pause is function

Auto

Test if getAnimations works on document

Auto

Test for document.timeline.currentTime

Auto

Test for various animation API constructors in window

Auto

Test if animation.ready is a promise

Auto

Test if various animation props & methods exist

Auto

Test if animation effect methods exist

Auto

Test if effect timing props exist

Auto

Test for animation.effect.composite

Web Share API

[Feat] [Tests]

Auto

Test for "share" in navigator

WebCodecs API

[Feat] [Tests]

Auto

AudioDecoder

Auto

VideoDecoder

Auto

AudioEncoder

Auto

VideoEncoder

Auto

Other interfaces

WebGPU

[Feat] [Tests]

Auto

Test for navigator.gpu

Auto

Test for GPUBufferUsage.COPY_SRC

Web Sockets

[Feat] [Tests]

Auto(m)

Modernizr test for: "websockets"

Auto

Test for binary websockets support

WebTransport

[Feat] [Tests]

Auto

Test for "WebTransport" in window

Web Workers

[Feat] [Tests]

Auto(m)

Modernizr test for: "webworkers"

Auto

Create a new Worker using new Worker('worker.js'); Then, test postMessage and onmessage event.

WebXR Device API

[Feat] [Tests]

Auto

xr.supportsSession

Test for navigator.xr.supportsSession

Cross-document messaging

[Feat] [Tests]

Auto(m)

Modernizr test for: "postmessage"

XMLHttpRequest advanced features

[Feat] [Tests]

Auto

Auto

Test for 'timeout' property

Auto

Test for xhr.responseType = 'json'

DOM Parsing and Serialization

[Feat] [Tests]

Auto

Test DOMParser.parseFromString

Auto

Test XMLSerializer.serializeToString

Auto

Test innerHTML get and set

Auto

Test outerHTML get and set

Auto

Test insertAdjacentHTML with beforebegin and beforeend

Element.insertAdjacentHTML()

[Feat] [Tests]

Visual-square

Interact

scrollIntoView

[Feat] [Tests]

Visual-square

scrollIntoView()

Visual-square

scrollIntoView(false)

Visual-square

scrollIntoView({behavior: 'smooth'})

Element.getBoundingClientRect()

[Feat] [Tests]

Interact

Pointer events

[Feat] [Tests]

Interact

Must turn lime on click or tap

Tests support for "pointerdown" event

Interact

Must turn lime on "pointerover"

Tests support for "pointerover" event

console.time and console.timeEnd

[Feat] [Tests]

Auto

Test for console.time() & console.timeEnd();

AbortController & AbortSignal

[Feat] [Tests]

Auto

Test for AbortController & AbortSignal in window

Auto

Test creating new AbortController

Blob constructing

[Feat] [Tests]

Auto

"BlobBuilder" in window

Auto

Blob URLs

[Feat] [Tests]

Auto

Select a file to test support
Test for window.URL.createObjectURL by selecting file.

FileReader API

[Feat] [Tests]

Auto

Check for FileReader in window

FileReaderSync

[Feat] [Tests]

Auto

Test filereadersync in a worker

Auto

Test if filereadersync exists in a worker

maxlength attribute for input and textarea elements

[Feat] [Tests]

Auto

Test for maxLength property

Interact

Should only allow one character to be entered

Interact


Change text length to 1+ chars, then click
Test for el.validity.tooLong

ImageCapture API

[Feat] [Tests]

Auto

Auto

Media Capture from DOM Elements API

[Feat] [Tests]

Auto

video

Test for 'captureStream' in document.createElement('video')

Auto

audio

Test for 'captureStream' in document.createElement('audio')

Auto

canvas

Test for 'captureStream' in document.createElement('canvas')

MediaRecorder API

[Feat] [Tests]

Auto

Test for 'MediaRecorder' in window

Interact

Shared Web Workers

[Feat] [Tests]

Auto

Create a new SharedWorker using new SharedWorker('sharedworker.js'); Then, test worker.port.onmessage event.

Channel messaging

[Feat] [Tests]

Auto

"MessageChannel" in window

Auto

"MessagePort" in window

Dynamic Adaptive Streaming over HTTP (MPEG-DASH)

[Feat] [Tests]

Auto

video.canPlayType('application/dash+xml')

WebAssembly

[Feat] [Tests]

Auto

window.Wasm & Wasm.instantiateModule

Auto

window.WebAssembly & WebAssembly.compile

XHTML served as application/xhtml+xml

[Feat] [Tests]

Auto

HEIF/HEIC image format

[Feat] [Tests]

Visual

HEIF image

MathML

[Feat] [Tests]

Visual

AVIF image format

[Feat] [Tests]

Visual-square

30x30 lime avif image

Visual-square

must animate

animated avif image

Visual-square

lossy

lossy lime avif image

Visual-square

lossless

lossless lime avif image

Data URIs

[Feat] [Tests]

Visual-square

div with data URL as background image

JPEG 2000 image format

[Feat] [Tests]

Visual-square

30x30 lime jpeg2000 image

JPEG XL image format

[Feat] [Tests]

Visual-square

lime jpegxl image

JPEG XR image format

[Feat] [Tests]

Visual-square

30x30 lime jpegxr image

Visual-square

30x30 lime lossless jpegxr image

SDCH Accept-Encoding/Content-Encoding

[Feat] [Tests]

Visual-square

WebP image format

[Feat] [Tests]

Visual-square

5x5 lime webp image sized at 30x30

asm.js

[Feat] [Tests]

Interact

Test here (result should be significant difference)

Brotli Accept-Encoding/Content-Encoding

[Feat] [Tests]

Interact

content-encoding: brotli

Interact

content-encoding: br

CSS Paged Media (@page)

[Feat] [Tests]

Interact

HTTP/2 protocol

[Feat] [Tests]

HTTP/3 protocol

[Feat] [Tests]

Built-in PDF viewer

[Feat] [Tests]

WAI-ARIA Accessibility features

[Feat] [Tests]

Interact

zstd (Zstandard) content-encoding

[Feat] [Tests]

Interact

FLAC audio format

[Feat] [Tests]

Auto

canPlayType('audio/flac')

Interact

Audio element with flac file

AAC audio file format

[Feat] [Tests]

Interact

Audio element with aac file

MP3 audio format

[Feat] [Tests]

Interact

Audio element with mp3 file

Ogg Vorbis audio format

[Feat] [Tests]

Interact

Audio element with ogg vorbis file

Opus audio format

[Feat] [Tests]

Interact

Audio element with opus file

Wav audio format

[Feat] [Tests]

Interact

Audio element with wav file

WOFF - Web Open Font Format

[Feat] [Tests]

Visual

Windsong font

WOFF 2.0 - Web Open Font Format

[Feat] [Tests]

Visual

Windsong font

COLR/CPAL(v0) Font Formats

[Feat] [Tests]

Interact

COLR/CPAL(v1) Font Formats

[Feat] [Tests]

Interact

Test here
Emoji on left should be vector versions of emoji on right

MPEG-4/H.264 video format

[Feat] [Tests]

Auto

Interact

Video with source element and MIME set

Interact

Video with source element

Interact

Video, no MIME, no type attribute.

Ogg/Theora video format

[Feat] [Tests]

Auto

Interact

Video with source element and MIME set

Interact

Video with source element

Interact

Video, no MIME, no type attribute.

WebM video format

[Feat] [Tests]

Auto

Interact

Video with source element and MIME set

Interact

Video with source element

Interact

Video, no MIME, no type attribute.

AV1 video format

[Feat] [Tests]

Interact

Interact

mkv

Interact

opus mp4

Interact

aac mp4

HEVC/H.265 video format

[Feat] [Tests]

Interact

WebVTT - Web Video Text Tracks

[Feat] [Tests]

Interact

Must say "WebVTT Success!" if supported

Video with controls and WebVTT file

WebAssembly BigInt to i64 conversion in JS API

[Feat] [Tests]

Auto

WebAssembly Bulk Memory Operations

[Feat] [Tests]

Auto

WebAssembly Multi-Value

[Feat] [Tests]

Auto

WebAssembly Import/Export of Mutable Globals

[Feat] [Tests]

Auto

WebAssembly Non-trapping float-to-int Conversion

[Feat] [Tests]

Auto

WebAssembly Reference Types

[Feat] [Tests]

Auto

WebAssembly Sign Extension Operators

[Feat] [Tests]

Auto

WebAssembly SIMD

[Feat] [Tests]

Auto

WebAssembly Threads and Atomics

[Feat] [Tests]

Interact

Animated PNG (APNG)

[Feat] [Tests]

Auto

Test for second frame using Canvas element

Visual

Must animate

PNG alpha transparency

[Feat] [Tests]

Visual

Cross-Origin Resource Sharing

[Feat] [Tests]

Auto

Instant XHR request on page that should permit it.

Credential Management API

[Feat] [Tests]

Auto

Web Cryptography

[Feat] [Tests]

Auto

Test if crypto.subtle.generateKey is function

Encrypted Media Extensions

[Feat] [Tests]

Auto

Test for requestMediaKeySystemAccess in navigator

Auto

MediaKeys

Test for MediaKeys in window

Passkeys

[Feat] [Tests]

Auto

Supports passkey creation

Feature detection test from https://web.dev/passkey-registration/#feature-detection

Permissions API

[Feat] [Tests]

Auto

Test for 'permissions' in navigator

Interact

Permissions Policy

[Feat] [Tests]

Auto

document.permissionsPolicy

Interact

Interact

Web Authentication API

[Feat] [Tests]

Auto

Test for the existance of the following interfaces: 'CredentialsContainer', 'PublicKeyCredential', 'AuthenticatorResponse', 'AuthenticatorAttestationResponse', 'AuthenticatorAssertionResponse'

Content Security Policy 1.0

[Feat] [Tests]

Visual-square

iframe with file that will have lime background if external file is supported, but red again if the (CSP-blocked) inline script is supported. Prefixes are converted to known CSP header prefixes with support.

'SameSite' cookie attribute

[Feat] [Tests]

Visual-square

ChaCha20-Poly1305 cipher suites for TLS

[Feat] [Tests]

Interact

Content Security Policy Level 2

[Feat] [Tests]

Interact

HTTP Public Key Pinning

[Feat] [Tests]

Interact

Referrer Policy

[Feat] [Tests]

Interact

Interact

Test for content=never

Link type "noreferrer"

[Feat] [Tests]

Interact

Server Name Indication

[Feat] [Tests]

Interact

Strict Transport Security

[Feat] [Tests]

Interact

Subresource Integrity

[Feat] [Tests]

Interact

TLS 1.1

[Feat] [Tests]

Interact

TLS 1.2

[Feat] [Tests]

Interact

TLS 1.3

[Feat] [Tests]

Interact

Upgrade Insecure Requests

[Feat] [Tests]

Interact

X-Frame-Options HTTP header

[Feat] [Tests]

Interact

SVG (basic support)

[Feat] [Tests]

Auto(m)

Modernizr test for: "svg"

Visual-square

SVG fail
SVG in <object>

SVG effects for HTML

[Feat] [Tests]

Auto

Visual

SVG fail

Text must appear blurry

SVG with feGaussianBlur filter on foreignObject

Inline SVG in HTML5

[Feat] [Tests]

Auto(m)

Modernizr test for: "inlinesvg"

Visual-square

Test CSS transform on SVG

Visual-square

SVG SMIL animation

[Feat] [Tests]

Auto(m)

Modernizr test for: "smil"

Visual-square

SVG fail
SVG with animate element inside a rect

Visual-square

Inline SVG with animate element inside a rect

SVG in CSS backgrounds

[Feat] [Tests]

Visual

Must not look pixelated/blurry

SVG CSS background image at 250%

Visual-square

Visual-square

Tiled 5x5 SVG image as background

Visual-square

Tiled 5x5 SVG image as background with background-position

SVG filters

[Feat] [Tests]

Visual

object SVG not supported

Visual-square

SVG fail

Must be green (not lime)

SVG with <feColorMatrix type="hueRotate" values="120"/>

Visual-square

SVG fail
SVG with <feFlood flood-color="lime"/>

SVG fragment identifiers

[Feat] [Tests]

Visual-square

SVG image as background pointing at small lime square: svg-icons.svg#lime-view

Visual-square

SVG image as background pointing at small lime square with file: svg-icons.svg#svgView(viewBox(100,200,5,5))

Visual-square

SVG image in img element pointing at small lime square with file: svg-icons.svg#svgView(viewBox(100,200,5,5))

Visual-square

SVG image as background pointing at small lime square (id on rect element, no view element): svg-icons-noview.svg#lime-view

SVG in HTML img element

[Feat] [Tests]

Visual-square

Test for SVG image with embedded PNG

Visual-square

SVG vector-effect: non-scaling-stroke

[Feat] [Tests]

Visual-square

Test for vector-effect="non-scaling-stroke"

SVG favicons

[Feat] [Tests]

Interact

SVG fonts

[Feat] [Tests]

Visual

Windsong font

CSS3 attr() function for all properties [unoff]

[Feat] [Tests]

Test background-color: attr(data-color)

CSS Canvas Drawings [unoff]

[Feat] [Tests]

Auto

'getCSSCanvasContext' in document

CSS Environment Variables env() [unoff]

[Feat] [Tests]

Auto

CSS.supports test for env(foo, 10px)

Interact

CSS overflow: overlay [unoff]

[Feat] [Tests]

Auto

overflow: overlay; value "sticks"

Auto

Test if getComputedStyle returns "overflow"

CSS Reflections [unoff]

[Feat] [Tests]

Auto(m)

Modernizr test for: "cssreflections"

Visual-square

box-reflect: below 0;

High-quality kerning pairs & ligatures [unoff]

[Feat] [Tests]

Auto

Test if text-rendering: optimizeLegibility will result in smaller width on text 'AVAVAVAVAVAVAVAV'

CSS -webkit-user-drag property [unoff]

[Feat] [Tests]

Auto

-webkit-user-drag: none; property "sticks"

Interact

This link should be undraggable

This div should be draggable

CSS text-stroke and text-fill [unoff]

[Feat] [Tests]

Visual

green stroked text
text-stroke: 2px lime;

Visual

green stroked text

-webkit-text-stroke

-webkit-text-stroke: 2px lime;

background-position-x & background-position-y [unoff]

[Feat] [Tests]

Visual-square

Test for background-position-x:30px;

Visual-square

Test for background-position-y:30px;

Explicit descendant combinator >> [unoff]

[Feat] [Tests]

Visual-square

:focus-within CSS pseudo-class [unoff]

[Feat] [Tests]

Interact

Should turn lime on focus

Background-clip: text [unoff]

[Feat] [Tests]

Auto

-webkit-background-clip: text

Auto

background-clip: text

Visual

Text should be blue on white background

-webkit-background-clip: text

CSS pointer-events (for HTML) [unoff]

[Feat] [Tests]

Auto

Interact

SVG: click should turn it to lime

CSS text-size-adjust [unoff]

[Feat] [Tests]

Auto

text-size-adjust: none; property stays

CSS font-smooth [unoff]

[Feat] [Tests]

Visual

should appear lighter
should appear bolder

Visual

should appear lighter
should appear bolder
Test for osx-font-smoothing

CSS Backdrop Filter [unoff]

[Feat] [Tests]

Visual-square

backdrop-filter: invert(1);

Resource Hints: Lazyload [unoff]

[Feat] [Tests]

Auto

Test for 'lazyload' in an img element

Interact

Mutation events [unoff]

[Feat] [Tests]

Auto

DOMNodeInserted

Auto

DOMCharacterDataModified

Auto

DOMNodeRemoved

Auto

DOMAttrModified

Auto

DOMNodeRemovedFromDocument

Auto

DOMNodeInsertedIntoDocument

Shadow DOM (deprecated V0 spec) [unoff]

[Feat] [Tests]

Auto

Visual-square

KeyboardEvent.charCode [unoff]

[Feat] [Tests]

Interact

Type "a"

Test if event.charCode for the "a" key returns 97 (on keypress event)

KeyboardEvent.which [unoff]

[Feat] [Tests]

Interact

Type "a"

Custom Elements (deprecated V0 spec) [unoff]

[Feat] [Tests]

Auto

Test support for 'registerElement' in document

Auto

Test support for 'register' in document (old spec)

seamless attribute for iframes [unoff]

[Feat] [Tests]

Auto

Check for 'seamless' in document.createElement('iframe')

Visual-square

Owner page should style iframe[seamless] page body

Visual-square

Test if seamless iframe takes up the space of its content

Offline web applications [unoff]

[Feat] [Tests]

Auto(m)

Modernizr test for: "applicationcache"

Selectlist - Customizable select element [unoff]

[Feat] [Tests]

Auto

Auto

Scoped attribute [unoff]

[Feat] [Tests]

Visual-square

If the scoped attribute is ignored, the box will get a red background.

Context menu item (menuitem element) [unoff]

[Feat] [Tests]

Interact

Context menu of square must have a "TEST PASS" entry

Uses "menuitem" child elements

Decorators [unoff]

[Feat] [Tests]

Auto

Syntax test for: class Example { @reactive accessor myBool = false; }

Auto

Test decorator

Object.observe data binding [unoff]

[Feat] [Tests]

Auto

Import maps [unoff]

[Feat] [Tests]

Visual-square

Background Sync API [unoff]

[Feat] [Tests]

Auto

Test for 'SyncManager' in window

Cookie Store API [unoff]

[Feat] [Tests]

Auto

Test for cookieStore in window

Auto

Do Not Track API [unoff]

[Feat] [Tests]

Auto

navigator.doNotTrack

Auto

window.doNotTrack

document.evaluate & XPath [unoff]

[Feat] [Tests]

Auto

Test document.evaluate

Document.execCommand() [unoff]

[Feat] [Tests]

Auto

Test for 'execCommand' in document

Interact

TEST

Select text, then button should change background to lime & text to bold

Test for document.execCommand("backColor", false, 'lime');

Filesystem & FileWriter API [unoff]

[Feat] [Tests]

Auto

Check for requestFileSystem in window

Input Method Editor API [unoff]

[Feat] [Tests]

Auto

Test for "inputMethodContext" in an input field

Auto

Test for "getInputContext" in an input field

File System Access API [unoff]

[Feat] [Tests]

Auto

Test for FileSystemFileHandle in window

Network Information API [unoff]

[Feat] [Tests]

Auto

Test for navigator.connection

Auto

Test for props in navigator.connection

Interact

Portals [unoff]

[Feat] [Tests]

Auto

Test for HTMLPortalElement in window

Auto

Test for "activate" in portal element

Efficient Script Yielding: setImmediate() [unoff]

[Feat] [Tests]

Auto

Test if setImmediate calls a function

Speech Recognition API [unoff]

[Feat] [Tests]

Auto

Test if "SpeechRecognition" in window is a function

Web SQL Database [unoff]

[Feat] [Tests]

Auto(m)

Modernizr test for: "websqldatabase"

Web Bluetooth [unoff]

[Feat] [Tests]

Auto

Web Serial API [unoff]

[Feat] [Tests]

Auto

Test for navigator.serial

WebHID API [unoff]

[Feat] [Tests]

Auto

Test for 'HIDDevice' in window

Auto

Test for 'hid' in navigator

Web NFC [unoff]

[Feat] [Tests]

Auto

Test for 'NDEFReader' in window

WebUSB [unoff]

[Feat] [Tests]

Auto

(https only)

Test for 'usb' in navigator

Auto

Test various USB* properties in window

WebVR API [unoff]

[Feat] [Tests]

Auto

getVRDevices

Test for getVRDevices

Auto

getVRDisplays

Test for navigator.getVRDisplays

Auto

vr.getDisplays

Test for navigator.vr.getDisplays

Element.scrollIntoViewIfNeeded() [unoff]

[Feat] [Tests]

Visual-square

scrollIntoViewIfNeeded()

Directory selection from file input [unoff]

[Feat] [Tests]

Interact

must allow directory to be selected

Test for webkitdirectory & "webkitRelativePath" property on files

Speech Synthesis API [unoff]

[Feat] [Tests]

Auto

Test if "speechSynthesis" in window is an object

Interact

Clicking button should make browser speak

Speak using: var speak = new SpeechSynthesisUtterance('hello'); speak.lang = 'en-GB'; window.speechSynthesis.speak(spk);

HTTP Live Streaming (HLS) [unoff]

[Feat] [Tests]

Auto

Interact

SPDY protocol [unoff]

[Feat] [Tests]

URL Scroll-To-Text Fragment [unoff]

[Feat] [Tests]

Interact

EOT - Embedded OpenType fonts [unoff]

[Feat] [Tests]

Visual

Windsong font

XHTML+SMIL animation [unoff]

[Feat] [Tests]

Auto

Document Policy [unoff]

[Feat] [Tests]

Auto

"policy" attribute in iframes

Feature Policy [unoff]

[Feat] [Tests]

Auto

document.featurePolicy

Interact

Trusted Types for DOM manipulation [unoff]

[Feat] [Tests]

Auto

FIDO U2F API [unoff]

[Feat] [Tests]

Interact

Currently untestable, hopefully this will stay up to date on info until it is.

IntersectionObserver V2 [unoff]

[Feat] [Tests]

Auto

User agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)