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:
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-squaregetContext('experimental-webgl')
Visual-squaregetContext('webgl')
|
|
Canvas blend modes[Feat] [Tests] |
Visual-squareDraw cyan and yellow rects on canvas with globalCompositeOperation to result in lime rectangle
|
|
WebGL 2.0[Feat] [Tests] |
Visual-squaregetContext('experimental-webgl2')
Visual-squaregetContext('webgl2')
|
|
CSS image-set[Feat] [Tests] |
|
|
CSS background-attachment[Feat] [Tests] |
Autobackground-attachment: fixed; property "sticks"
Autobackground-attachment: local; property "sticks"
InteractInteract |
|
CSS Anchor Positioning[Feat] [Tests] |
AutoCSS.supports test for anchor-name: --foo
|
|
CSS Appearance[Feat] [Tests] |
Autoappearance: none; property stays
|
|
CSS caret-color[Feat] [Tests] |
Autocaret-color: blue; property "sticks"
InteractCaret must be orange |
|
CSS print-color-adjust[Feat] [Tests] |
Autocolor-adjust Test color-adjust: exact
Autoprint-color-adjust Test print-color-adjust: exact
|
|
CSS Container Queries (Size)[Feat] [Tests] |
Auto |
|
CSS Container Style Queries[Feat] [Tests] |
AutoTest for CSS custom property:
@container style(--works: true)
AutoTest for regular CSS value:
@container style(font-weight: bold)
|
|
CSS Containment[Feat] [Tests] |
Autostrict CSS.supports test for contain: strict
Autocontent CSS.supports test for contain: content
Autosize CSS.supports test for contain: size
Autolayout CSS.supports test for contain: layout
Autopaint CSS.supports test for contain: paint
|
|
CSS content-visibility[Feat] [Tests] |
AutoCSS.supports test for content-visibility: hidden
|
|
CSS position:fixed[Feat] [Tests] |
AutoInteract |
|
CSS font-palette[Feat] [Tests] |
AutoCSS.supports test for font-palette: normal
|
|
CSS font-stretch[Feat] [Tests] |
Autofont-stretch: condensed; property stays
Visual
Expanded Condensed Show expanded & condensed text |
|
CSS hanging-punctuation[Feat] [Tests] |
AutoCSS.supports test for hanging-punctuation: first
AutoCSS.supports test for all hanging-punctuation variations
Visual“foo quote mark should appear outside blue area Test for hanging-punctuation: first
|
|
CSS Initial Letter[Feat] [Tests] |
AutoCSS.supports test for initial-letter: 3
AutoCSS.supports test for initial-letter-align: alphabetic
AutoCSS.supports test for initial-letter-wrap: first
|
|
CSS initial value[Feat] [Tests] |
Auto |
|
letter-spacing CSS property[Feat] [Tests] |
AutoAAAAAAAAAAA
AAAAAAAAAAA
AAAAAAAAAAA
Test for fractional letter-spacing
Visual-squareTest for negative letter spacing
|
|
CSS Motion Path[Feat] [Tests] |
Automotion-path: path("M900,190 L993,245;")
Automotion-offset: 50%
Autooffset-path: path("M900,190 L993,245;")
Autooffset-distance: 50%
|
|
CSS overflow property[Feat] [Tests] |
AutoCSS.supports test for overflow-x: clip
Visual-squareTest for overflow: hidden visible;
Visual-squareTest for overflow-x: hidden; overflow-y: visible;
Visual-squareTest if overflow-x: clip works
|
|
CSS overscroll-behavior[Feat] [Tests] |
AutoCSS.supports test for overscroll-behavior-y: contain
Auto-ms-scroll-chaining: chained; property "sticks"
|
|
CSS page-break properties[Feat] [Tests] |
Autobreak-before: always; property "sticks"
Autopage-break-before: always; property "sticks"
Visual-squareTest page-break-inside:avoid
Visual-squareTest column-break-inside:avoid
Interact |
|
Rebeccapurple color[Feat] [Tests] |
AutoTest if color is recognized
AutoTest if color is rgb(102, 51, 153)
AutoColor should be purple |
|
CSS Scroll-behavior[Feat] [Tests] |
Autoscroll-behavior: smooth; property "sticks"
AutoTest if el.scrollBy({
"behavior": "smooth",
"left": 0,
"top": 0
}); does not throw an error
|
|
CSS Scroll Snap[Feat] [Tests] |
Autoscroll-snap-type: inline mandatory; property "sticks"
Autoscroll-snap-destination: 10px; property "sticks"
Autoscroll-snap-coordinate: 10px; property "sticks"
Autoscroll-snap-points-x: repeat(10px); property "sticks"
Autoscroll-snap-points-x: snapList(10px); property "sticks" (older spec)
Autoscroll-snap-margin: 5px; property "sticks"
Autoscroll-snap-type: x proximity; property "sticks"
Autoscroll-margin: 5px; property "sticks"
|
|
CSS position:sticky[Feat] [Tests] |
Autoposition: sticky; property stays
Interact |
|
CSS Subgrid[Feat] [Tests] |
AutoCSS.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] |
AutoCSS.supports test for text-justify: inter-word
AutoTest if text-justify: distribute sticks
AutoCSS.supports test for text-justify: inter-character
|
|
CSS text-orientation[Feat] [Tests] |
Autotext-orientation: sideways property "sticks"
Visual
HOTEL Text should be vertical, but upright |
|
CSS text-wrap: balance[Feat] [Tests] |
AutoCSS.supports test for text-wrap: balance
Autotext-wrap-style CSS.supports test for text-wrap-style: balance
|
|
CSS touch-action property[Feat] [Tests] |
Autotouch-action: none; property stays
|
|
CSS @when / @else conditional rules[Feat] [Tests] |
Auto@when Auto@else Autoinline @when |
|
CSS widows & orphans[Feat] [Tests] |
Autoorphans: 5; property "sticks"
Autowidows: 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] |
Autofont-size-adjust: 1; property stays
Visual-square
x
Test for font-size-adjust: 3
|
|
CSS font-variant-numeric[Feat] [Tests] |
AutoTest all font-variant-numeric values
|
|
prefers-color-scheme media query[Feat] [Tests] |
Autoprefers-dark-interface AutoTest all prefers-color-scheme variations
|
|
prefers-reduced-motion media query[Feat] [Tests] |
Auto |
|
CSS user-select: none[Feat] [Tests] |
Autouser-select: none; property "sticks"
InteractThis text should be unselectable by the user. user-select: none;
|
|
CSS will-change property[Feat] [Tests] |
Autowill-change: contents; property stays
|
|
:indeterminate CSS pseudo-class[Feat] [Tests] |
VisualVisualVisual |
|
::placeholder CSS pseudo-element[Feat] [Tests] |
VisualPlaceholder should be lime ::placeholder { color: lime; background-color: lime; opacity: 1 } (double colon)
VisualPlaceholder should be lime :placeholder { color: lime; background-color: lime; opacity: 1 } (single colon)
VisualPlaceholder should be lime ::input-placeholder { color: lime; background-color: lime; opacity: 1 } (double colon)
VisualPlaceholder should be lime :input-placeholder { color: lime; background-color: lime; opacity: 1 } (single colon)
|
|
:placeholder-shown CSS pseudo-class[Feat] [Tests] |
VisualPlaceholder should be lime :placeholder-shown { color: lime; background-color: lime; opacity: 1 } (single colon)
|
|
CSS :read-only and :read-write selectors[Feat] [Tests] |
Visualdiv
contenteditable
Test for :read-only & :read-write where appropriate
Visual-square:read-write Visual-square:read-only |
|
CSS scrollbar styling[Feat] [Tests] |
VisualShould have green & lime scrollbar VisualShould 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
Visual
text - weight: 200
CFF2 format
Visual
text - weight: 200
CFF2 format (AdobeVFPrototype)
|
|
CSS Masks[Feat] [Tests] |
Visual![]() mask-image: url(alpha.png);
|
|
CSS all property[Feat] [Tests] |
Visual-squareTest for all:inherit
|
|
CSS :any-link selector[Feat] [Tests] | ||
CSS background-blend-mode[Feat] [Tests] |
Visual-squarediv with background image, background color & background-blend-mode: multiply
|
|
CSS Cascade Layers[Feat] [Tests] |
Visual-squareTest 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-squaredisplay-p3 Test color(display-p3 0 1 0);
Visual-squaresrgb Test color(srgb 0 1 0);
Visual-squareprophoto-rgb Test color(prophoto-rgb 0 1 0);
Visual-squarerec2020 Test color(rec2020 0 1 0);
Visual-squarexyz Test color(xyz 0 1 0);
|
|
CSS Container Query Units[Feat] [Tests] |
Visual-squarecqw Test for width:100cqw; height:100cqw;
Visual-squarecqh Test for width:100cqh; height:100cqh;
Visual-squarecqi Test for width:100cqi; height:100cqi;
Visual-squarecqb Test for width:100cqb; height:100cqb;
Visual-squarecqmin Test for width:100cqmin; height:100cqmin;
Visual-squarecqmax Test for width:100cqmax; height:100cqmax;
|
|
CSS Cross-Fade Function[Feat] [Tests] |
Visual-squareTest for cross-fade(url(green64x64.png), url(red30x30.png), 0%);
Visual-squareTest 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-squareTest for wrap-flow: both
|
|
CSS Grid Layout (level 1)[Feat] [Tests] |
Visual-squareGrid with two columns, two rows and three elements taking up space.
Visual-squareGrid 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-squareVisual-square |
|
LCH and Lab color values[Feat] [Tests] |
Visual-squarelch(87.74% 119.78 136.02) Visual-squarelab(87.74% -86.18 83.18) |
|
CSS line-clamp[Feat] [Tests] |
Visual-squareNOTE: Forced -webkit- prefixes |
|
:is() CSS pseudo-class[Feat] [Tests] |
Visual-square:matches() Visual-square:any() Visual-squareis() |
|
CSS math functions min(), max() and clamp()[Feat] [Tests] |
Visual-squaremin() Visual-squaremax() Visual-squareclamp() |
|
Blending of HTML/SVG elements[Feat] [Tests] |
Visual-squareOverlapping divs with mix-blend-mode: multiply
|
|
CSS namespaces[Feat] [Tests] |
Visual-squareVisual-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-squareVisual-squareVisual-squarehsl(from var(--color) calc(12deg * 10) s calc(100% / 2))
Visual-squarecurrentcolor 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-squarelength text-indent: 30px;
Visual-squareeach-line text-indent: 30px each-line;
Visual-squarehanging text-indent: 30px hanging;
|
|
CSS unset value[Feat] [Tests] |
Visual-squareTest for background:unset
|
|
CSS writing-mode property[Feat] [Tests] |
Visual-square |
|
CSS zoom[Feat] [Tests] |
Visual-squareTest for zoom: 30
|
|
CSS currentColor value[Feat] [Tests] |
Visual-squareTest for background:currentColor; with parent having color set to "lime"
|
|
CSS justify-content: space-evenly[Feat] [Tests] |
Visual-squareflexbox Visual test for justify-content: space-evenly support in flexbox
Visual-squaregrid justify-content: space-evenly in a grid
|
|
Small, Large, and Dynamic viewport units[Feat] [Tests] |
Visual-squaresvh Test for width:100svh; height:100svh;
Visual-squarelvh Test for width:100lvh; height:100lvh;
Visual-squaredvh Test for width:100dvh; height:100dvh;
Visual-squaresvw Test for width:100svw; height:100svw;
Visual-squarelvw Test for width:100lvw; height:100lvw;
Visual-squaredvw 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] |
InteractThis 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-squareTest for conic-gradient(lime, lime, red); Visual-squareTest for multiple stops |
|
Media Queries: interaction media features[Feat] [Tests] |
Visual-squareTest support for @media (pointer:none), (pointer:coarse), (pointer:fine)
Visual-squareTest support for @media (any-hover:none), (any-hover:on-demand), (any-hover:hover)
Visual-squareTest support for @media (any-pointer:none), (any-pointer:coarse), (any-pointer:fine)
Visual-squareTest support for @media (hover:none), (hover:on-demand), (hover:hover)
|
|
Media Queries: Range Syntax[Feat] [Tests] |
Visual-squareTest support for @media (1px < width < 99999px)
|
|
gap property for Flexbox[Feat] [Tests] |
Visual-squaregap Test for gap: 30px;
Visual-squarerow-gap Test for row-gap: 30px;
Visual-squarecolumn-gap Test for column-gap: 30px;
|
|
:optional CSS pseudo-class[Feat] [Tests] |
Visual-squareVisual-squareTest to ensure :optional does not apply to a required field
|
|
display: flow-root[Feat] [Tests] |
AutoCSS.supports test for display: flow-root
|
|
display: run-in[Feat] [Tests] |
Autodisplay: run-in; property "sticks"
|
|
CSS Table display[Feat] [Tests] |
Visualtopleft
topright
bottomleft
bottomright
![]() Should be 2x2 table |
|
CSS Counters[Feat] [Tests] |
Visual-squareGenerated counter content should fill block with lime color.
|
|
CSS 2.1 selectors[Feat] [Tests] |
Visual-squareTest for child ( > )selector
Visual-squareAdjacent sibling selector test ( + )
Visual-squareAttribute selector ( [role="none"] )
|
|
CSS min/max-width/height[Feat] [Tests] |
Visual-squareVisual-squareVisual-squareVisual-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;
Autotext-emphasis: circle filled; property "sticks"
Autotext-emphasis-position: under left; property "sticks"
Visual-squareTest 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-squarebackground-clip: content-box;
Visual-squarebackground-origin: content-box;
Visual-squarebackground-size: 30px 30px;
Visual-squarebackground-size: cover;
Visual-squarebackground: url(green5x5.png) no-repeat 0/cover; (shorthand)
|
|
CSS background-repeat round and space[Feat] [Tests] |
Autobackground-repeat: round; property "sticks"
Interact |
|
CSS3 Border images[Feat] [Tests] |
Auto(m)Modernizr test for: "borderimage"
VisualMust include 2 or 3 full horizontal yellow diamonds Test for "round" - longhand
VisualMust include full horizontal yellow diamonds w/spaces Test for "space"
Visual-squareSeparate properties:
border-image-source: url(green5x5.png);
border-image-slice: 2;
Visual-squareShorthand 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"
Autoanimation-timing-function: steps(4, end) property "sticks"
Autoanimation-timing-function: step-start property "sticks"
Visual-squareanimation: 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-squareTest for support for basic support
Visual-squareTest for support for radius value
Visual-squareTest for support for multiple shadows
Visual-squareTest for support for "inset" shadow
Visual-squareTest for support for multiple inset shadows with radius
|
|
CSS Gradients[Feat] [Tests] |
Auto(m)Modernizr test for: "cssgradients"
Visual-squarelinear-gradient(to right, lime, lime, red);
Visual-squareradial-gradient(lime, lime)
Visual-squarelinear-gradient(lime, lime)
|
|
CSS3 image-orientation[Feat] [Tests] |
Autoimage-orientation: from-image; property stays
Visual-squareTest image-orientation: from-image
Visual-squareTest image-orientation: 180deg
Visual-squareTest image-orientation: 180deg on image with no exif setting
Visual-squareTest image-orientation: flip on image with no exif setting
|
|
CSS Logical Properties[Feat] [Tests] |
AutoTest for padding-inline-end: 10px
AutoTest for margin-block: 0px
AutoTest for inset-inline-start: 0px
AutoTest for border-start-start-radius: 0px
Visual-squareTest for margin-start:30px
Visual-squareTest for margin-inline-start:30px
Visual-squareTest for text-align:end
|
|
CSS3 Opacity[Feat] [Tests] |
Auto(m)Modernizr test for: "opacity"
Visual-squareTest for opacity: 0
|
|
CSS3 Text-shadow[Feat] [Tests] |
Auto(m)Modernizr test for: "textshadow"
Visual![]() font-size: 25px;
color: white;
text-shadow: 25px 0 3px lime; position: relative;
left: -25px;
Visual![]() Multiple shadow test
Visual-squareMultiple shadows with radius value
|
|
CSS3 Transitions[Feat] [Tests] |
Auto(m)Modernizr test for: "csstransitions"
Autotransition-timing-function: steps(4, end) property "sticks"
InteractGreen 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-squareVisual-square |
|
CSS Flexible Box Layout Module[Feat] [Tests] |
Auto(m)Modernizr test for: "flexbox"
Visual-squareTest for display: box; (old syntax)
Visual-squareTest for display: flexbox; (2009 syntax)
Visual-squareTest for display: flex; (current syntax)
|
|
CSS3 font-kerning[Feat] [Tests] |
Autofont-kerning: normal; property "sticks"
AutoTest if text width changes when switching from font-kerning: none to font-kerning: normal on text 'AVAVAVAVAVAVAVAV'
|
|
Font unicode-range subsetting[Feat] [Tests] |
Autounicode-range: U+0400-14FF; property stays
|
|
CSS3 Multiple backgrounds[Feat] [Tests] |
Auto(m)Modernizr test for: "multiplebgs"
Visual-squarebackground-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-squarecolumn-width: 15px;
column-gap: 0;
Visual-squarecolumn-width: 30px;
column-gap: 0;
break-after: column;
|
|
CSS3 2D Transforms[Feat] [Tests] |
Auto(m)Modernizr test for: "csstransforms"
Visual-squaretransform: translate(30px);
Visual-squareCSS transform on an SVG element
|
|
CSS3 3D Transforms[Feat] [Tests] |
Auto(m)Modernizr test for: "csstransforms3d"
Autobackface-visibility CSS.supports test for backface-visibility: visible
Visual-squareParent:
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] |
VisualShould 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] |
VisualLime underline text-decoration-color: lime
VisualDashed underline text-decoration-style: dashed
VisualLine-through text-decoration-line: line-through
VisualLine-through/dashed/lime text-decoration-line: line-through dashed lime
VisualSkip 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-squareIf font-feature-settings:'ss06' 1; (or old syntax) works, the glyphs are replaced with larger ones.
|
|
calc() as CSS unit value[Feat] [Tests] |
Visual-squarewidth: calc(10px + 20px);
Visual-squareheight: calc(60px - 100%);
width: calc((100% / 2) + 15px - 0.5em);
border-right: calc(0.5em) solid lime;
|
|
ch (character) unit[Feat] [Tests] |
Visual-squarespan with single character and font-size: 10ch;
|
|
CSS background-position edge offsets[Feat] [Tests] |
Visual-squareTest 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-squareTest for background:element()
|
|
CSS Feature Queries[Feat] [Tests] |
Visual-squareTest for @supports ( display: block )
|
|
CSS filter() function[Feat] [Tests] |
Visual-square |
|
CSS Filter Effects[Feat] [Tests] |
Visual-squarefilter: invert(1);
Visual-squarefilter: url(css-filter.svg#invert);
|
|
CSS Hyphenation[Feat] [Tests] |
Visual-squareTest for hyphens: none
Visual-squareTest for hyphens: auto
Visual-squareTest for hyphens: manual
|
|
CSS3 Media Queries[Feat] [Tests] |
Visual-squareVisual-squareTest support for nested @media
|
|
CSS Regions[Feat] [Tests] |
Visual-squareTwo elements: One content iframe with flow-into: flowname; and one div with flow-from: flowname; (IE10pp3)
Visual-squareTwo elements: One with flow: "flowname"; and one with content: from-flow("flowname"); (Sept '11 WebKit nightlies)
Visual-squareTwo 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-squareTest to make element float box take up no space using polygon(0px 0px, 0px 0px)
|
|
CSS3 text-align-last[Feat] [Tests] |
Visual-squareTest for text-align-last: right
Visual-squareTest for text-align-last: right
Visual-squareTest for text-align-last: end
Visual-squareTest for text-align-last: end
|
|
CSS Variables (Custom Properties)[Feat] [Tests] |
Visual-squareon parent:
--success-color: lime
on child:
background-color: var(--success-color);
|
|
CSS3 Box-sizing[Feat] [Tests] |
Visual-squareVisual-squareTest for box-sizing: padding-box
|
|
CSS3 tab-size[Feat] [Tests] |
Visual-squaretab-size: 0;
Visual-squaretab-size: 60px;
|
|
CSS font-variant-alternates[Feat] [Tests] |
Visual-squareTest for font-variant-alternates: styleset(myset)
Interact |
|
Intrinsic & Extrinsic Sizing[Feat] [Tests] |
Visual-squaremin-content width: min-content
Visual-squarewidth: min-intrinsic
Visual-squaremax-content width: max-content
Visual-squarefit-content() width: fit-content(30px)
|
|
CSS3 object-fit/object-position[Feat] [Tests] |
Visual-square![]() object-fit: contain
Visual-square![]() object-position: 30px 30px;
|
|
CSS outline properties[Feat] [Tests] |
Visual-squareElement with 0 width/height and 30px lime outline.
Visual-squareTest for outline-color: invert
Visual-squareoutline-offset Test for outline-offset: 30px;
|
|
rem (root em) units[Feat] [Tests] |
Visual-squarespan with single character and font-size: 5rem;
|
|
Viewport units: vw, vh, vmin, vmax[Feat] [Tests] |
Visual-squareTest for width:100vmin; height:100vmin;
Visual-squareTest for width:100vh; height:100vh;
Visual-squareTest for width:100vw; height:100vw;
Visual-squareTest for font-size: 100vw;
Visual-squareTest for font-size: 100vh;
Visual-squareTest for width:100vmax; height:100vmax;
|
|
CSS3 word-break[Feat] [Tests] |
Visual-squareTest for word-break: break-all;
Visual-squareTest for word-break: keep-all;
|
|
CSS3 Overflow-wrap[Feat] [Tests] |
Visual-squareword-wrap: break-word;
Visual-squareoverflow-wrap: break-word;
|
|
CSS resize property[Feat] [Tests] |
InteractMust be able to resize element resize: both
|
|
CSS3 Cursors (original values)[Feat] [Tests] |
Interact |
|
CSS grab & grabbing cursors[Feat] [Tests] |
Interactgrab
grabbing |
|
CSS3 Cursors: zoom-in & zoom-out[Feat] [Tests] |
Interact |
|
CSS Repeating Gradients[Feat] [Tests] |
Visual-squarebackground: repeating-linear-gradient(0deg, lime, lime 30px, red 30px, red 60px);
|
|
CSS clip-path property (for HTML)[Feat] [Tests] |
Visual-squareTest for clip-path: polygon()
Visual-squareTest for clip-path: url('svg-clippath.svg#clipPolygon')
InteractTest for clip-path: url(#foo) with inline SVG (button needed due to Chrome/Safari bug)
|
|
Media Queries: resolution feature[Feat] [Tests] |
Visual-squareTest for min-device-pixel-ratio
Visual-squareTest for min-resolution: 1dpi
Visual-squareTest for min-resolution: 0.01dppx
Visual-squareTest for min-resolution: 1dpcm
Visual-squareTest 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] |
VisualWindsong font ![]() TTF font test
VisualWindsong font ![]() OTF font test
|
|
EventTarget.addEventListener()[Feat] [Tests] |
AutoTest for addEventListener without useCapture param
AutoTest for addEventListener with useCapture param
Autoclick should turn it to lime Test for stopPropagation in event object
|
|
ChildNode.remove()[Feat] [Tests] |
AutoTest for "remove" in document.body
|
|
Node.compareDocumentPosition()[Feat] [Tests] |
AutoTest for 'compareDocumentPosition' in document.body
Interact |
|
Window.devicePixelRatio[Feat] [Tests] |
Auto |
|
EventTarget.dispatchEvent[Feat] [Tests] |
Auto |
|
document.scrollingElement[Feat] [Tests] |
AutoTest for 'scrollingElement' in document
|
|
document.head[Feat] [Tests] |
AutoTest if document.head matches document.getElementsByTagName('head')[0]
|
|
DOM manipulation convenience methods[Feat] [Tests] |
Auto |
|
DOMContentLoaded[Feat] [Tests] |
AutoValidates once DOMContentLoaded is triggered
|
|
DOMMatrix[Feat] [Tests] |
AutoDOMMatrix Test for DOMMatrix in window
AutoWebKitCSSMatrix Test for WebKitCSSMatrix in window
AutoCSSMatrix Test for CSSMatrix in window
AutoMethods Test if DOMMatrix methods exist
AutoTest if DOMMatrix is used in SVG
AutoStatic methods Test if static DOMMatrix methods exist
|
|
Element.closest()[Feat] [Tests] |
AutoTest Element.closest for self, parent and non-matching selector
|
|
document.elementFromPoint()[Feat] [Tests] |
AutoTest for 'elementFromPoint' in document
AutoTest if elementFromPoint matches expected element
|
|
getComputedStyle[Feat] [Tests] |
AutoTest getComputedStyle to see if it correctly returns "display" property set on element.
AutoTest getComputedStyle to see if it correctly returns "content" property set on element's :after pseudo-element.
|
|
HTMLElement.innerText[Feat] [Tests] |
AutoTest if innerText got set as expected
|
|
autocomplete attribute: on & off values[Feat] [Tests] |
Auto |
|
Element.insertAdjacentElement() & Element.insertAdjacentText()[Feat] [Tests] |
AutoinsertAdjacentElement Test for 'insertAdjacentElement' in document.body
AutoinsertAdjacentText Test for 'insertAdjacentText' in document.body
|
|
Mutation events[Feat] [Tests] |
AutoDOMNodeInserted AutoDOMCharacterDataModified AutoDOMNodeRemoved AutoDOMAttrModified AutoDOMNodeRemovedFromDocument AutoDOMNodeInsertedIntoDocument |
|
"once" event listener option[Feat] [Tests] |
Auto |
|
Passive event listeners[Feat] [Tests] |
AutoTest triggering a custom event with passive: true
|
|
querySelector/querySelectorAll[Feat] [Tests] |
AutoAutoquerySelector test on selector '[data-foo=bar] + *'
AutoquerySelectorAll test on selector '[data-foo=bar] + *'
|
|
Shadow DOM (V1)[Feat] [Tests] |
Autoel.attachShadow Test for 'attachShadow' in document.body
Autowindow.ShadowRoot Test for 'ShadowRoot' in window
|
|
Node.textContent[Feat] [Tests] |
AutoTest if textContent got set as expected
|
|
Declarative Shadow DOM[Feat] [Tests] |
VisualTest slotted content VisualTest shadowdom content VisualTest shadowdom content (shadowroot attribute) VisualTest slotted content (shadowroot attribute) |
|
Client Hints: DPR, Width, Viewport-Width[Feat] [Tests] |
Visual-squareDPR Test if "DPR" header is returned
Visual-squareWidth Test if "Width" header is returned
Visual-squareViewport-Width Test if "Viewport-Width" header is returned
|
|
defer attribute for external scripts[Feat] [Tests] |
Visual-squareTest to see if defer script runs later.
|
|
focusin & focusout events[Feat] [Tests] |
InteractFocus & unfocus field to test |
|
inputmode attribute[Feat] [Tests] |
InteractMust show numeric keypad |
|
KeyboardEvent.code[Feat] [Tests] |
InteractType "a" Test if event.code for the "a" key returns "KeyA"
|
|
KeyboardEvent.getModifierState()[Feat] [Tests] |
InteractType "a" Test for e.getModifierState('Shift');
|
|
KeyboardEvent.key[Feat] [Tests] |
InteractType "a" Test if event.key for the "a" key returns "a"
InteractPress arrow up Test if event.key for the arrow up key returns "ArrowUp"
|
|
KeyboardEvent.location[Feat] [Tests] |
InteractType "a" Test if event.location for the "a" key returns 0
InteractType "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] |
InteractShould start on "3" Interactxywh=50,50,50,50 |
|
theme-color Meta Tag[Feat] [Tests] |
Interact |
|
Audio element[Feat] [Tests] |
Autodocument.createElement('audio').canPlayType
InteractAudio element with 6 different sources (no MIME set)
InteractAudio element with 6 different sources (with MIME set)
|
|
Audio Tracks[Feat] [Tests] |
AutoTest for audioTracks in video
|
|
Autofocus attribute[Feat] [Tests] |
Auto |
|
Canvas (basic support)[Feat] [Tests] |
Auto(m)Modernizr test for: "canvas"
Visual-squareDraw 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-squareTest for classList.add & classList.remove
Visual-squareTest for second toggle parameter
Visual-squareTest if multiple parameters for "add" are supported
|
|
Custom Elements (V1)[Feat] [Tests] |
Autowindow.customElements.define Test for customElements.define in window
AutoCustomized built-in element |
|
dataset & data-* attributes[Feat] [Tests] |
AutoTest for 'dataset' in document.body and getting the correct value returned from a data-foo attribute.
Visual-squareTest .dataset on SVG
Interact |
|
Details & Summary elements[Feat] [Tests] |
AutoInteract(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] |
AutoCheck for 'showModal' in document.createElement('dialog')
InteractShould open dialog box |
|
disabled attribute of the fieldset element[Feat] [Tests] |
AutoInteractInput field should be disabled |
|
Attributes for form submission[Feat] [Tests] |
AutoTest for form attribute properties
Interact |
|
Form validation[Feat] [Tests] |
AutoRun checkValidity() on an email field with invalid email input
VisualAll fields should be lime Test for :valid, :invalid and :required CSS selectors
InteractForm should show warning and NOT submit |
|
getElementsByClassName[Feat] [Tests] |
AutoVisual-squareTest if two divs were correctly retrieved using getElementsByClassName
Visual-squareTest if SVG element was correctly retrieved using getElementsByClassName
|
|
hidden attribute[Feat] [Tests] |
AutoTest for 'hidden' in document.body
Visual-squareRed square is hidden if attribute is supported
|
|
Session history management[Feat] [Tests] |
Auto(m)Modernizr test for: "history"
AutoTest if history.pushState was successful
|
|
HTML5 semantic elements[Feat] [Tests] |
AutoTest if display value of main element is block
Visual-squaresection, article, aside, hgroup, header, footer, nav tested for default "block" style.
|
|
sandbox attribute for iframes[Feat] [Tests] |
AutoTest for "sandbox" property in iframe DOM object
Visual-squareSandboxed iframe with page on other domain that would set its background to red if JS runs.
Visual-squareSandboxed 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-squareSandboxed 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] |
AutoVisual-squareTest for iframe with srcdoc having lime background
|
|
naturalWidth & naturalHeight image properties[Feat] [Tests] |
Auto |
|
HTML Imports[Feat] [Tests] |
AutoTest support for 'import' in document.createElement('link')
|
|
Email, telephone & URL input types[Feat] [Tests] |
AutoTest if url type "sticks" for an input element
AutoTest if tel type "sticks" for an input element
AutoTest if email type "sticks" for an input element
Interact
Email: Tel: URL: |
|
Multiple file selection[Feat] [Tests] |
AutoInteractMust allow selection of more than 1 files |
|
input placeholder attribute[Feat] [Tests] |
Auto"placeholder" in document.createElement('input')
VisualPlaceholder text must say "PASS" Text input with placeholder value of "PASS"
|
|
Search input type[Feat] [Tests] |
AutoTest if type as search is recognized
Interact
<- search <- text Search should appear differently |
|
Lazy loading via attribute for images & iframes[Feat] [Tests] |
Autoimg Test for "loading" property in img element
Autoiframe Test for "loading" property in iframe element
|
|
OffscreenCanvas[Feat] [Tests] |
AutoTest for 'OffscreenCanvas' in window
AutoTest for .getContext('2d') on an offscreen canvas
AutoTest for .getContext('webgl') on an offscreen canvas
|
|
Reversed attribute of ordered lists[Feat] [Tests] |
AutoTest for 'reversed' in ol element
VisualShould number from 3 to 1 |
|
Ping attribute[Feat] [Tests] |
AutoInteract |
|
readonly attribute of input and textarea elements[Feat] [Tests] |
AutoTest for "readOnly" in input element
Interact |
|
Custom protocol handling[Feat] [Tests] |
AutoTest for 'registerProtocolHandler' in navigator
|
|
relList (DOMTokenList)[Feat] [Tests] |
Auto"relList" in document.createElement("a")
Auto"relList" in document.createElement("link")
|
|
Ruby annotation[Feat] [Tests] |
Autodisplay: ruby; property stays
Autodisplay: ruby-base-container; property stays
Autoruby-position: over; property "sticks"
Autoruby-align: space-between; property "sticks"
Visual
(bottom1)(bottom2)
![]() Elements should be stacked on top of each other |
|
Spellcheck attribute[Feat] [Tests] |
AutoCheck for 'spellcheck' in document.createElement('input')
AutoCheck for 'spellcheck' in document.createElement('textarea')
Interact
On: Off: Must have spellcheck only for first field |
|
Srcset and sizes attributes[Feat] [Tests] |
AutoTest for 'srcset' in document.createElement('img')
AutoTest for 'sizes' in document.createElement('img')
AutoTest if "sizes" works as expected
|
|
HTML templates[Feat] [Tests] |
AutoTest for 'content' when creating a template element
|
|
Video element[Feat] [Tests] |
AutoAutoInteractVideo with controls and all three formats available.
InteractVideo with controls and all three formats available (with MIME).
|
|
Video Tracks[Feat] [Tests] |
AutoTest for videoTracks in video
|
|
indeterminate checkbox[Feat] [Tests] |
VisualMiddle checkbox should appear different from checked & unchecked |
|
meter element[Feat] [Tests] |
Visualmeter widget at 50% |
|
progress element[Feat] [Tests] |
VisualProgress widget at 50% VisualIndeterminate progress widget |
|
Picture element[Feat] [Tests] |
Visual-squarePicture 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-squareTest to see if async script runs later.
|
|
wbr (word break opportunity) element[Feat] [Tests] |
Visual-square |
|
contenteditable attribute (basic support)[Feat] [Tests] |
InteractThis element should be editable. Div element with attribute contenteditable="true"
|
|
Datalist element[Feat] [Tests] |
InteractShow "foo" and "foobar" as options when "f" is entered |
|
Download attribute[Feat] [Tests] |
InteractClicking link must download pass.txt, not navigate Link with download attribute pointing at a file.
|
|
Drag and Drop[Feat] [Tests] |
InteractInteractdrag file here
|
|
Form attribute[Feat] [Tests] |
Interact |
|
HTML Media Capture[Feat] [Tests] |
Interact |
|
Color input type[Feat] [Tests] |
InteractMust provide widget to select color |
|
Date and time input types[Feat] [Tests] |
InteractMust provide widget to select date InteractMust provide widget to select time InteractMust provide widget to select date and time InteractMust provide widget to select month InteractMust provide widget to select week |
|
input event[Feat] [Tests] |
InteractTest input event on input type=text
InteractTest input event on input type=checkbox
|
|
accept attribute for file input[Feat] [Tests] |
InteractMust only accept audio files InteractMust only accept image files |
|
Number input type[Feat] [Tests] |
InteractMust provide number widget InteractMust provide number widget with increments of 2 and max value of 6. |
|
Range input type[Feat] [Tests] |
InteractMust provide slider widget InteractSlider 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] |
InteractElement focus should cycle from right to left |
|
Path2D[Feat] [Tests] |
AutoTest all Path2D methods
|
|
Minimum length attribute for input fields[Feat] [Tests] |
AutoTest for 'minlength' in an input element
InteractForm should show warning and NOT submit |
|
Pattern attribute for input fields[Feat] [Tests] |
AutoTest for "pattern" in input
VisualAll fields should be lime Test for :valid, :invalid with pattern attribute
InteractForm should only submit if value is "pass" |
|
Array.prototype.find[Feat] [Tests] |
AutoSimple array.find() test
|
|
Array.prototype.findIndex[Feat] [Tests] |
Auto |
|
flat & flatMap array methods[Feat] [Tests] |
AutoTest for Array.prototype.flat
AutoTest for Array.prototype.flatMap
AutoTest for Array.prototype.flat
AutoTest for Array.prototype.flatMap
|
|
Array.prototype.includes[Feat] [Tests] |
Auto |
|
Async functions[Feat] [Tests] |
AutoTest if async function can be created
|
|
BigInt[Feat] [Tests] |
AutoTest for BigInt in window
AutoTest for typeof 1n
|
|
const[Feat] [Tests] |
AutoTest for const FOO = 'bar';
AutoTest if const is block scoped
AutoTest if const is block scoped with "use strict"
AutoTest for const FOO = 'bar'; with "use strict"
Visual-squareTest if const cannot be changed
Visual-squareTest if const cannot be changed (with "use strict")
|
|
Date.prototype.toLocaleDateString[Feat] [Tests] |
Autono param Autoen-US & en-GB locale tests Autooptions AutoOther locales Autooptions IANA timeZone & timeZoneName |
|
Internationalization API[Feat] [Tests] |
AutoTest for Intl.Collator
AutoTest for Intl.DateTimeFormat
AutoTest for Intl.NumberFormat
|
|
Lookbehind in JS regular expressions[Feat] [Tests] |
Auto |
|
localeCompare()[Feat] [Tests] |
AutoAutoTest 'a'.localeCompare('b') === -1
Autolocale Test 'ä'.localeCompare('z', 'de') < 0
Autolocale Test 'ä'.localeCompare('z', 'sv') > 0
Autooptions Test 'ä'.localeCompare('a', 'de', { sensitivity: 'base' })
Autooptions Test 'ä'.localeCompare('a', 'sv', { sensitivity: 'base' }) > 0
|
|
Object.entries[Feat] [Tests] |
AutoAuto |
|
Object.values method[Feat] [Tests] |
Auto |
|
String.prototype.padStart(), String.prototype.padEnd()[Feat] [Tests] |
AutoTest for padStart & padEnd in String.prototype
AutoSmall padStart & padEnd tests
|
|
Promise.prototype.finally[Feat] [Tests] |
AutoTest if finally block is reached
|
|
Promises[Feat] [Tests] |
AutoCreate a promise and resolve with parameter
Autofinally() Create a promise and test finally
|
|
Shared Array Buffer[Feat] [Tests] |
AutoTest for SharedArrayBuffer without COOP/COEP enabled Test for 'SharedArrayBuffer' in window
InteractTest for SharedArrayBuffer with COOP/COEP enabled |
|
JavaScript modules via script tag[Feat] [Tests] |
Visual-squareTest 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] |
AutoAutoCreate a JS object, convert to JSON string, convert back to object and compare.
|
|
ECMAScript 5 Strict Mode[Feat] [Tests] |
AutoTest for error thrown using "use strict" and var a = {a:1,a:1};
|
|
Arrow functions[Feat] [Tests] |
AutoTest if var fn = (n => n + 1) properly increments by one
|
|
ES6 classes[Feat] [Tests] |
AutoAutostrict mode |
|
ES6 Generators[Feat] [Tests] |
Auto |
|
ES6 Number[Feat] [Tests] |
AutoisFinite AutoisInteger AutoisSafeInteger AutoisNaN AutoEPSILON AutoMIN_SAFE_INTEGER AutoMAX_SAFE_INTEGER |
|
String.prototype.includes[Feat] [Tests] |
AutoTest for 'includes' in String.prototype
AutoTest if .includes() works
|
|
let[Feat] [Tests] |
Autolet foo = 'bar'
Autolet foo = 'bar' with "use strict"
Visual-squareTest let support using the "application/javascript;version=1.7" type on the script tag
|
|
Proxy object[Feat] [Tests] |
AutoTest for global Proxy object & revocable method
|
|
Rest parameters[Feat] [Tests] |
AutoTest if rest parameter has correct amount of items
|
|
ES6 Template Literals (Template Strings)[Feat] [Tests] |
Auto |
|
Typed Arrays[Feat] [Tests] |
AutoCheck for Int8Array in window
AutoCheck for Uint8Array in window
AutoCheck for Uint8ClampedArray in window
AutoCheck for Int16Array in window
AutoCheck for Uint16Array in window
AutoCheck for Int32Array in window
AutoCheck for Uint32Array in window
AutoCheck for Float32Array in window
AutoCheck for Float64Array in window
AutoTest for ArrayBuffer
|
|
JavaScript modules: dynamic import()[Feat] [Tests] |
Visual-squareTest import()
|
|
Intl.PluralRules API[Feat] [Tests] |
AutoTest for 'PluralRules' in window.Intl
AutoTest that new Intl.PluralRules('en-US').select(1) === 'one'
|
|
Accelerometer[Feat] [Tests] |
AutoTest for 'Accelerometer' in window
AutoTest constructor
|
|
Ambient Light Sensor[Feat] [Tests] |
AutoCheck for 'ondevicelight' in window
AutoCheck for 'onlightlevel' in window
|
|
Asynchronous Clipboard API[Feat] [Tests] |
AutoTest for navigator.clipboard methods InteractCan request "clipboard-write" permission InteractFirst copy text from input field: Test readText() method |
|
Base64 encoding and decoding[Feat] [Tests] |
AutoTest if window.btoa and window.atob work
|
|
Web Audio API[Feat] [Tests] |
Auto |
|
Auxclick[Feat] [Tests] |
AutoTest for onauxclick in window
Interactturn lime on non-primary click |
|
Battery Status API[Feat] [Tests] |
AutoTest if "battery" in navigator is an object
AutoTest if "getBattery" in navigator is a function
|
|
Beacon API[Feat] [Tests] |
AutoTest for 'sendBeacon' in navigator
Visual-squareTest if sendBeacon works on beforeunload event
|
|
Printing Events[Feat] [Tests] |
Autoonbeforeprint Autoonafterprint Test for "onafterprint" in window
Interact |
|
BroadcastChannel[Feat] [Tests] |
Auto"BroadcastChannel" in window
|
|
Synchronous Clipboard API[Feat] [Tests] |
AutoCheck for "onpaste" in document
AutoTest for ClipboardEvent in window
AutoClipboardEvent constructor InteractPasting text should turn background lime Test if document.onpaste is triggered and has clipboardData
InteractPasting 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 InteractCopy this text Copying text should turn background lime Test if document.oncopy is triggered and has clipboardData
Interactpaste button should fire paste event |
|
Basic console logging functions[Feat] [Tests] |
AutoTest for console.log();
AutoTest for console.error();
AutoTest for console.warn();
AutoTest for console.info();
|
|
Constraint Validation API[Feat] [Tests] |
AutoAutoAutoTest validity properties
|
|
createImageBitmap[Feat] [Tests] |
AutoTest for 'createImageBitmap' in window
AutoresizeWidth&resizeHeight |
|
CSS Painting API[Feat] [Tests] |
AutoTest for 'paintWorklet' in window.CSS
Visual-square |
|
CSS.supports() API[Feat] [Tests] |
Autotwo arguments Test for CSS.supports("color", "lime");
AutosupportsCSS Test for supportsCSS("color", "lime");
Autosingle argument condition Test for CSS.supports("color: lime");
|
|
CustomEvent[Feat] [Tests] |
AutoTest for document.createEvent('CustomEvent')
AutoTest if window.CustomEvent exists
AutoTest for CustomEvent constructor
|
|
DeviceOrientation & DeviceMotion events[Feat] [Tests] |
AutoCheck for DeviceOrientationEvent in window
AutoMust change to lime when device orientation changes. Add 'deviceorientation' event listener to window.
AutoCheck for 'oncompassneedscalibration' in window
AutoCheck for DeviceMotionEvent in window
|
|
document.currentScript[Feat] [Tests] |
AutoTest for 'currentScript' in document
AutoTest if document.currentScript is the last accessible script
|
|
Document Object Model Range[Feat] [Tests] |
AutoTest for 'createRange' in document
|
|
Scroll methods on elements (scroll, scrollTo, scrollBy)[Feat] [Tests] |
AutoTest if 'scroll',
'scrollTo',
'scrollBy' exist in an element
Visual-squarescroll({behavior: 'smooth'}) Visual-squarescrollBy with options Visual-squarescrollTo(0, 100) |
|
Server-sent events[Feat] [Tests] |
Auto |
|
Fetch[Feat] [Tests] |
AutoTest for "fetch" in window
|
|
File API[Feat] [Tests] |
AutoAuto"Blob" in window
Auto"File" in window
AutoTest for File constructor
Interact |
|
CSS Font Loading[Feat] [Tests] |
AutoTest if window.FontFace is a function
|
|
Fullscreen API[Feat] [Tests] |
AutoCheck for requestFullScreen in document.body (supports old draft)
AutoCheck for requestFullscreen in document.body (supports current draft)
InteractClicking button should send request to go into full screen mode Test requestFullscreen
|
|
Gamepad API[Feat] [Tests] |
AutoTest for 'Gamepad' in window
|
|
Geolocation[Feat] [Tests] |
Auto(m)Modernizr test for: "geolocation"
AutoTest for getCurrentPosition, watchPosition and clearWatch in navigator.geolocation
InteractMust 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] |
AutoTest for window.crypto.getRandomValues()
|
|
Gyroscope[Feat] [Tests] |
AutoTest for 'Gyroscope' in window
AutoTest constructor
|
|
navigator.hardwareConcurrency[Feat] [Tests] |
AutoTest for 'hardwareConcurrency' in navigator
VisualProcessors available:
|
|
Hashchange event[Feat] [Tests] |
Auto(m)Modernizr test for: "hashchange"
Visual-squareiframe with addEventListener('hashchange', function() {
document.body.style.background = 'lime';
}, false);
|
|
High Resolution Time API[Feat] [Tests] |
Autotest if performance.now() returns a number
|
|
IndexedDB[Feat] [Tests] |
Auto(m)Modernizr test for: "indexeddb"
AutoTest for "indexedDB" in window
AutoTest if onupgradeneeded or onsuccess fired
Interact |
|
IndexedDB 2.0[Feat] [Tests] |
AutoTest for 'onclose' in db & 'objectStoreNames' in transaction
|
|
Selection controls for input & textarea[Feat] [Tests] |
AutoTest 'setSelectionRange'
'selectionStart',
'selectionEnd' in input
AutoTest 'setSelectionRange'
'selectionStart',
'selectionEnd' in textarea
AutoTest if setSelectionRange works and selectionStart & selectionEnd are correct
|
|
IntersectionObserver[Feat] [Tests] |
AutoTest for 'IntersectionObserver' in window
AutoInteract |
|
Magnetometer[Feat] [Tests] |
AutoTest for 'Magnetometer' in window
AutoTest constructor
|
|
matches() DOM method[Feat] [Tests] |
AutoTest for "matchesSelector" in document.body
AutoTest for "matches" in document.body
|
|
matchMedia[Feat] [Tests] |
AutoCheck for matchMedia in window
|
|
Media Source Extensions[Feat] [Tests] |
AutoAutoTest for "sourceopen" event and check existence of 'sourceBuffers'
|
|
Web MIDI API[Feat] [Tests] |
AutoTest for "getMIDIAccess" in navigator object
|
|
Mutation Observer[Feat] [Tests] |
Auto"MutationObserver" in window
AutoTest if MutationObserver works
|
|
Web Storage - name/value pairs[Feat] [Tests] |
Auto(m)Modernizr test for: "localstorage"
AutoTest if getItem, setItem and removeItem work.
|
|
Navigation Timing API[Feat] [Tests] |
AutoTest for performance in window
AutoTest for "timing" in window.performance
AutoTest for all properties in performance.timing
|
|
Web Notifications[Feat] [Tests] |
AutoTest for "notifications" in window (older spec)
AutoTry creating "Notification", check for "show" function in notification instance.
AutoTest for 'Notification' in window
InteractMust show a notification Create notification
|
|
Object RTC (ORTC) API for WebRTC[Feat] [Tests] |
AutoAuto |
|
Online/offline status[Feat] [Tests] |
AutoTest for 'onLine' in navigator
AutoShould go lime when going from off to online AutoShould go lime when going from on to offline |
|
Orientation Sensor[Feat] [Tests] |
AutoTest for 'AbsoluteOrientationSensor' in window
AutoTest constructor
|
|
PageTransitionEvent[Feat] [Tests] |
AutoAutoVisual-squareTest for iframe with page that turns lime on "pageshow" event
|
|
Page Visibility[Feat] [Tests] |
Autotypeof document.hidden == "boolean"
Autotypeof document.visibilityState == "string"
|
|
Payment Request API[Feat] [Tests] |
AutoTest for 'PaymentRequest' in window
AutoTest for PaymentResponse.prototype.retry
|
|
Picture-in-Picture[Feat] [Tests] |
AutoTest for webkitSetPresentationMode
AutoInteract |
|
Pointer Lock API[Feat] [Tests] |
AutoTest for requestPointerLock in document.body
Autotest for movementX in new MouseEvent('mousemove')
Interact |
|
Proximity API[Feat] [Tests] |
AutoCheck for 'ondeviceproximity' in window
AutoCheck for 'onuserproximity' in window
|
|
Push API[Feat] [Tests] |
AutoTest for PushSubscription in window
AutoTest for PushManager in window
|
|
requestAnimationFrame[Feat] [Tests] |
AutoTest the requestAnimationFrame callback
AutoCheck for requestAnimationFrame in window
AutoCheck for cancelAnimationFrame in window
|
|
requestIdleCallback[Feat] [Tests] |
AutoAutoTest if requestIdleCallback callback is called
|
|
Resize Observer[Feat] [Tests] |
AutoTest for 'ResizeObserver' in window
|
|
Resource Timing (basic support)[Feat] [Tests] |
AutoTest if window.performance.getEntriesByName is a function
|
|
WebRTC Peer-to-peer connections[Feat] [Tests] |
AutoTest for "RTCPeerConnection" in window object
|
|
Screen Orientation[Feat] [Tests] |
AutoTest if window.screen.orientation is a string
AutoTest if window.screen.orientation is an object
InteractInteract |
|
Selection API[Feat] [Tests] |
AutoTest for 'getSelection' in window
AutoTest for 'onselectstart' in document
AutoTest for 'onselectionchange' in document
VisualSelect this text selectstart triggered: no selectionchange triggered: no |
|
Server Timing[Feat] [Tests] |
AutoTest for 'PerformanceServerTiming' in window
Visual-squareTest server-timing values
|
|
Service Workers[Feat] [Tests] |
AutoTest for 'serviceWorker' in navigator
|
|
getUserMedia/Stream API[Feat] [Tests] |
AutoTest for "getUserMedia" in navigator object
AutoTest for "srcObject" in video element
AutoTest for navigator.mediaDevices.getUserMedia
Interact |
|
Streams[Feat] [Tests] |
AutoWritableStream Autobasic support AutopipeTo / pipeThrough AutoBYOB |
|
Temporal[Feat] [Tests] |
AutoTest for Temporal in window
|
|
TextEncoder & TextDecoder[Feat] [Tests] |
AutoTest for 'TextEncoder' in window
AutoTest if TextEncoder returns expected result
AutoTest for 'TextDecoder' in window
AutoTest if TextDecoder returns expected result
|
|
Touch events[Feat] [Tests] |
Auto(m)Modernizr test for: "touch"
|
|
unhandledrejection/rejectionhandled events[Feat] [Tests] |
AutoTest for 'onunhandledrejection' in window
AutoTest for 'onrejectionhandled' in window
|
|
URL API[Feat] [Tests] |
AutoAutoTest all url properties
AutoTest base parameter
|
|
URLSearchParams[Feat] [Tests] |
Autowindow.URLSearchParams Test for 'URLSearchParams' in window
Auto.get() Test for new URLSearchParams() & params.get()
|
|
User Timing API[Feat] [Tests] |
AutoTest performance.mark and performance.getEntriesByType('mark')
AutoTest performance.measure and performance.getEntriesByType('measure')
|
|
Vibration API[Feat] [Tests] |
AutoTest if "vibrate" in navigator is a function
|
|
View Transitions API (single-document)[Feat] [Tests] |
AutoAuto |
|
Screen Wake Lock API[Feat] [Tests] |
AutoTest for 'wakeLock' in navigator
|
|
Web Animations API[Feat] [Tests] |
AutoTest .animate(), should animate from red to lime
AutoTest if player.pause is function
AutoTest if getAnimations works on document
AutoTest for document.timeline.currentTime
AutoTest for various animation API constructors in window
AutoTest if animation.ready is a promise
AutoTest if various animation props & methods exist
AutoTest if animation effect methods exist
AutoTest if effect timing props exist
AutoTest for animation.effect.composite
|
|
Web Share API[Feat] [Tests] |
AutoTest for "share" in navigator
|
|
WebCodecs API[Feat] [Tests] |
AutoAudioDecoder AutoVideoDecoder AutoAudioEncoder AutoVideoEncoder AutoOther interfaces |
|
WebGPU[Feat] [Tests] |
AutoTest for navigator.gpu
AutoTest for GPUBufferUsage.COPY_SRC
|
|
Web Sockets[Feat] [Tests] |
Auto(m)Modernizr test for: "websockets"
AutoTest for binary websockets support
|
|
WebTransport[Feat] [Tests] |
AutoTest for "WebTransport" in window
|
|
Web Workers[Feat] [Tests] |
Auto(m)Modernizr test for: "webworkers"
AutoCreate a new Worker using new Worker('worker.js');
Then, test postMessage and onmessage event.
|
|
WebXR Device API[Feat] [Tests] |
Autoxr.supportsSession Test for navigator.xr.supportsSession
|
|
Cross-document messaging[Feat] [Tests] |
Auto(m)Modernizr test for: "postmessage"
|
|
XMLHttpRequest advanced features[Feat] [Tests] |
AutoAutoTest for 'timeout' property
AutoTest for xhr.responseType = 'json'
|
|
DOM Parsing and Serialization[Feat] [Tests] |
AutoTest DOMParser.parseFromString
AutoTest XMLSerializer.serializeToString
AutoTest innerHTML get and set
AutoTest outerHTML get and set
AutoTest insertAdjacentHTML with beforebegin and beforeend
|
|
Element.insertAdjacentHTML()[Feat] [Tests] |
Visual-squareInteract |
|
scrollIntoView[Feat] [Tests] |
Visual-squarescrollIntoView() Visual-squarescrollIntoView(false) Visual-squarescrollIntoView({behavior: 'smooth'}) |
|
Element.getBoundingClientRect()[Feat] [Tests] |
Interact |
|
Pointer events[Feat] [Tests] |
InteractMust turn lime on click or tap Tests support for "pointerdown" event
InteractMust turn lime on "pointerover" Tests support for "pointerover" event
|
|
console.time and console.timeEnd[Feat] [Tests] |
AutoTest for console.time() & console.timeEnd();
|
|
AbortController & AbortSignal[Feat] [Tests] |
AutoTest for AbortController & AbortSignal in window
AutoTest creating new AbortController
|
|
Blob constructing[Feat] [Tests] |
Auto"BlobBuilder" in window
|
|
Blob URLs[Feat] [Tests] |
Auto
Select a file to test support
Test for window.URL.createObjectURL by selecting file.
|
|
FileReader API[Feat] [Tests] |
AutoCheck for FileReader in window
|
|
FileReaderSync[Feat] [Tests] |
AutoTest filereadersync in a worker
AutoTest if filereadersync exists in a worker
|
|
maxlength attribute for input and textarea elements[Feat] [Tests] |
AutoTest for maxLength property
InteractShould only allow one character to be entered InteractChange text length to 1+ chars, then click Test for el.validity.tooLong
|
|
ImageCapture API[Feat] [Tests] |
AutoAuto |
|
Media Capture from DOM Elements API[Feat] [Tests] |
Autovideo Test for 'captureStream' in document.createElement('video')
Autoaudio Test for 'captureStream' in document.createElement('audio')
Autocanvas Test for 'captureStream' in document.createElement('canvas')
|
|
MediaRecorder API[Feat] [Tests] |
AutoTest for 'MediaRecorder' in window
Interact |
|
Shared Web Workers[Feat] [Tests] |
AutoCreate 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] |
Autovideo.canPlayType('application/dash+xml')
|
|
WebAssembly[Feat] [Tests] |
Autowindow.Wasm & Wasm.instantiateModule Autowindow.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-squarediv with data URL as background image
|
|
JPEG 2000 image format[Feat] [Tests] |
Visual-square30x30 lime jpeg2000 image
|
|
JPEG XL image format[Feat] [Tests] |
Visual-squarelime jpegxl image
|
|
JPEG XR image format[Feat] [Tests] |
Visual-square30x30 lime jpegxr image
Visual-square30x30 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] | ||
CSS Paged Media (@page)[Feat] [Tests] |
Interact |
|
HTTP/2 protocol[Feat] [Tests] |
Interact |
|
HTTP/3 protocol[Feat] [Tests] |
Interact |
|
Built-in PDF viewer[Feat] [Tests] |
Interact |
|
WAI-ARIA Accessibility features[Feat] [Tests] |
Interact |
|
zstd (Zstandard) content-encoding[Feat] [Tests] |
Interact |
|
FLAC audio format[Feat] [Tests] |
AutocanPlayType('audio/flac') InteractAudio element with flac file
|
|
AAC audio file format[Feat] [Tests] |
InteractAudio element with aac file
|
|
MP3 audio format[Feat] [Tests] |
InteractAudio element with mp3 file
|
|
Ogg Vorbis audio format[Feat] [Tests] |
InteractAudio element with ogg vorbis file
|
|
Opus audio format[Feat] [Tests] |
InteractAudio element with opus file
|
|
Wav audio format[Feat] [Tests] |
InteractAudio element with wav file
|
|
WOFF - Web Open Font Format[Feat] [Tests] |
VisualWindsong font ![]() |
|
WOFF 2.0 - Web Open Font Format[Feat] [Tests] |
VisualWindsong 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] |
AutoInteractVideo with source element and MIME set
InteractVideo with source element
InteractVideo, no MIME, no type attribute.
|
|
Ogg/Theora video format[Feat] [Tests] |
AutoInteractVideo with source element and MIME set
InteractVideo with source element
InteractVideo, no MIME, no type attribute.
|
|
WebM video format[Feat] [Tests] |
AutoInteractVideo with source element and MIME set
InteractVideo with source element
InteractVideo, no MIME, no type attribute.
|
|
AV1 video format[Feat] [Tests] |
Interactmkv Interactopus mp4 Interactaac mp4 |
|
HEVC/H.265 video format[Feat] [Tests] |
Interact |
|
WebVTT - Web Video Text Tracks[Feat] [Tests] |
InteractMust 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] |
AutoTest for second frame using Canvas element
Visual![]() Must animate |
|
PNG alpha transparency[Feat] [Tests] |
Visual![]() ![]() |
|
Cross-Origin Resource Sharing[Feat] [Tests] |
AutoInstant XHR request on page that should permit it.
|
|
Credential Management API[Feat] [Tests] |
Auto |
|
Web Cryptography[Feat] [Tests] |
AutoTest if crypto.subtle.generateKey is function
|
|
Encrypted Media Extensions[Feat] [Tests] |
AutoTest for requestMediaKeySystemAccess in navigator
AutoMediaKeys Test for MediaKeys in window
|
|
Passkeys[Feat] [Tests] |
AutoSupports passkey creation Feature detection test from https://web.dev/passkey-registration/#feature-detection
Interact |
|
Permissions API[Feat] [Tests] |
AutoTest for 'permissions' in navigator
Interact |
|
Permissions Policy[Feat] [Tests] |
Autodocument.permissionsPolicy InteractInteract |
|
Web Authentication API[Feat] [Tests] |
AutoTest for the existance of the following interfaces:
'CredentialsContainer',
'PublicKeyCredential',
'AuthenticatorResponse',
'AuthenticatorAttestationResponse',
'AuthenticatorAssertionResponse'
|
|
Content Security Policy 1.0[Feat] [Tests] |
Visual-squareiframe 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] | ||
HTTP Public Key Pinning[Feat] [Tests] |
Interact |
|
Referrer Policy[Feat] [Tests] |
InteractInteractTest 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] | ||
X-Frame-Options HTTP header[Feat] [Tests] |
Interact |
|
SVG (basic support)[Feat] [Tests] |
Auto(m)Modernizr test for: "svg"
Visual-squareSVG in <object>
|
|
SVG effects for HTML[Feat] [Tests] |
AutoVisual![]() Text must appear blurry SVG with feGaussianBlur filter on foreignObject
|
|
Inline SVG in HTML5[Feat] [Tests] |
Auto(m)Modernizr test for: "inlinesvg"
Visual-squareTest CSS transform on SVG
Visual-square |
|
SVG SMIL animation[Feat] [Tests] |
Auto(m)Modernizr test for: "smil"
Visual-squareSVG with animate element inside a rect
Visual-squareInline SVG with animate element inside a rect
|
|
SVG in CSS backgrounds[Feat] [Tests] |
VisualMust not look pixelated/blurry SVG CSS background image at 250%
Visual-squareVisual-squareTiled 5x5 SVG image as background
Visual-squareTiled 5x5 SVG image as background with background-position
|
|
SVG filters[Feat] [Tests] |
Visual![]() Visual-squareMust be green (not lime) SVG with <feColorMatrix type="hueRotate" values="120"/>
Visual-squareSVG with <feFlood flood-color="lime"/>
|
|
SVG fragment identifiers[Feat] [Tests] |
Visual-squareSVG image as background pointing at small lime square: svg-icons.svg#lime-view
Visual-squareSVG image as background pointing at small lime square with file: svg-icons.svg#svgView(viewBox(100,200,5,5))
Visual-squareSVG image in img element pointing at small lime square with file: svg-icons.svg#svgView(viewBox(100,200,5,5))
Visual-squareSVG 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-squareTest for SVG image with embedded PNG
Visual-square |
|
SVG vector-effect: non-scaling-stroke[Feat] [Tests] |
Visual-squareTest for vector-effect="non-scaling-stroke"
|
|
SVG favicons[Feat] [Tests] |
Interact |
|
SVG fonts[Feat] [Tests] |
VisualWindsong 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] |
AutoCSS.supports test for env(foo, 10px)
Interact |
|
CSS overflow: overlay [unoff][Feat] [Tests] |
Autooverflow: overlay; value "sticks"
AutoTest if getComputedStyle returns "overflow"
|
|
CSS Reflections [unoff][Feat] [Tests] |
Auto(m)Modernizr test for: "cssreflections"
Visual-squarebox-reflect: below 0;
|
|
High-quality kerning pairs & ligatures [unoff][Feat] [Tests] |
AutoTest 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 |
|
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-squareTest for background-position-x:30px;
Visual-squareTest for background-position-y:30px;
|
|
Explicit descendant combinator >> [unoff][Feat] [Tests] |
Visual-square |
|
:focus-within CSS pseudo-class [unoff][Feat] [Tests] |
InteractShould turn lime on focus |
|
Background-clip: text [unoff][Feat] [Tests] |
Auto-webkit-background-clip: text Autobackground-clip: text Visual
Text should be blue on white background
-webkit-background-clip: text |
|
CSS pointer-events (for HTML) [unoff][Feat] [Tests] |
AutoInteractSVG: click should turn it to lime |
|
CSS text-size-adjust [unoff][Feat] [Tests] |
Autotext-size-adjust: none; property stays
|
|
CSS font-smooth [unoff][Feat] [Tests] |
Visualshould appear lighter
should appear bolder Visualshould appear lighter
should appear bolder Test for osx-font-smoothing
|
|
CSS Backdrop Filter [unoff][Feat] [Tests] |
Visual-squarebackdrop-filter: invert(1);
|
|
Resource Hints: Lazyload [unoff][Feat] [Tests] |
AutoTest for 'lazyload' in an img element
Interact |
|
Shadow DOM (deprecated V0 spec) [unoff][Feat] [Tests] |
AutoVisual-square |
|
KeyboardEvent.charCode [unoff][Feat] [Tests] |
InteractType "a" Test if event.charCode for the "a" key returns 97 (on keypress event)
|
|
KeyboardEvent.which [unoff][Feat] [Tests] |
InteractType "a" |
|
Custom Elements (deprecated V0 spec) [unoff][Feat] [Tests] |
AutoTest support for 'registerElement' in document
AutoTest support for 'register' in document (old spec)
|
|
seamless attribute for iframes [unoff][Feat] [Tests] |
AutoCheck for 'seamless' in document.createElement('iframe')
Visual-squareOwner page should style iframe[seamless] page body
Visual-squareTest 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] |
AutoAuto |
|
Scoped attribute [unoff][Feat] [Tests] |
Visual-squareIf the scoped attribute is ignored, the box will get a red background.
|
|
Context menu item (menuitem element) [unoff][Feat] [Tests] |
InteractContext menu of square must have a "TEST PASS" entry Uses "menuitem" child elements
|
|
Decorators [unoff][Feat] [Tests] |
AutoSyntax test for:
class Example {
@reactive accessor myBool = false;
}
AutoTest decorator
|
|
Object.observe data binding [unoff][Feat] [Tests] |
Auto |
|
Import maps [unoff][Feat] [Tests] |
Visual-square |
|
Background Sync API [unoff][Feat] [Tests] |
AutoTest for 'SyncManager' in window
|
|
Cookie Store API [unoff][Feat] [Tests] |
AutoTest for cookieStore in window
Auto |
|
Do Not Track API [unoff][Feat] [Tests] |
Autonavigator.doNotTrack Autowindow.doNotTrack |
|
document.evaluate & XPath [unoff][Feat] [Tests] |
AutoTest document.evaluate
|
|
Document.execCommand() [unoff][Feat] [Tests] |
AutoTest for 'execCommand' in document
InteractTEST
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] |
AutoCheck for requestFileSystem in window
|
|
Input Method Editor API [unoff][Feat] [Tests] |
AutoTest for "inputMethodContext" in an input field
AutoTest for "getInputContext" in an input field
|
|
File System Access API [unoff][Feat] [Tests] |
AutoTest for FileSystemFileHandle in window
|
|
Network Information API [unoff][Feat] [Tests] |
AutoTest for navigator.connection
AutoTest for props in navigator.connection
Interact |
|
Portals [unoff][Feat] [Tests] |
AutoTest for HTMLPortalElement in window
AutoTest for "activate" in portal element
|
|
Efficient Script Yielding: setImmediate() [unoff][Feat] [Tests] |
AutoTest if setImmediate calls a function
|
|
Speech Recognition API [unoff][Feat] [Tests] |
AutoTest 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] |
AutoTest for navigator.serial
|
|
WebHID API [unoff][Feat] [Tests] |
AutoTest for 'HIDDevice' in window
AutoTest for 'hid' in navigator
|
|
Web NFC [unoff][Feat] [Tests] |
AutoTest for 'NDEFReader' in window
|
|
WebUSB [unoff][Feat] [Tests] |
Auto(https only) Test for 'usb' in navigator
AutoTest various USB* properties in window
|
|
WebVR API [unoff][Feat] [Tests] |
AutogetVRDevices Test for getVRDevices
AutogetVRDisplays Test for navigator.getVRDisplays
Autovr.getDisplays Test for navigator.vr.getDisplays
|
|
Element.scrollIntoViewIfNeeded() [unoff][Feat] [Tests] |
Visual-squarescrollIntoViewIfNeeded() |
|
Directory selection from file input [unoff][Feat] [Tests] |
Interactmust allow directory to be selected Test for webkitdirectory & "webkitRelativePath" property on files
|
|
Speech Synthesis API [unoff][Feat] [Tests] |
AutoTest if "speechSynthesis" in window is an object
InteractClicking 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] |
AutoInteract |
|
SPDY protocol [unoff][Feat] [Tests] |
Interact |
|
URL Scroll-To-Text Fragment [unoff][Feat] [Tests] |
Interact |
|
EOT - Embedded OpenType fonts [unoff][Feat] [Tests] |
VisualWindsong font ![]() |
|
XHTML+SMIL animation [unoff][Feat] [Tests] |
Auto |
|
Document Policy [unoff][Feat] [Tests] |
Auto"policy" attribute in iframes |
|
Feature Policy [unoff][Feat] [Tests] |
Autodocument.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 |