Everything Which is Possible in Alphabetical Order

Information courtesy github.com/Fyrd/caniuse

More detailed information available at caniuse.com

Icons courtesy github.com/alrra/browser-logos
Markdown stylesheet courtesy github.com/jasonm23/markdown-css-themes
Markdown courtesy daringfireball.net

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

If a temporal or number <input> has max and/or min attributes, then :in-range matches when the value is within the specified range and :out-of-range matches when the value is outside the specified range. If there are no range constraints, then neither pseudo-class matches.

29
26
5.1
11.6


::placeholder CSS pseudo-element

The ::placeholder pseudo-element represents placeholder text in an input field: text that represents the input and provides a hint to the user on how to fill out the form. For example, a date-input field might have the placeholder text YYYY/MM/DD to clarify that numeric dates are to be entered in year-month-day order.

10
12
4
4
5
15


::selection CSS pseudo-element

The ::selection CSS pseudo-element applies rules to the portion of a document that has been highlighted (e.g., selected with the mouse or another pointing device) by the user.

9
12
2
4
3.1
9.5-9.6


:placeholder-shown CSS pseudo-class

Input elements can sometimes show placeholder text as a hint to the user on what to type in. See, for example, the placeholder attribute in HTML5. The :placeholder-shown pseudo-class matches an input element that is showing such placeholder text.


::first-letter CSS pseudo-element selector

CSS pseudo-element that allows styling only the first "letter" of text within an element. Useful for implementing initial caps or drop caps styling.

6
12
2
4
3.2
10.0-10.1


@font-face Web fonts

Method of displaying fonts downloaded from websites

5.5
12
3.5
4
3.2
10.0-10.1


AAC audio file format

Advanced Audio Coding format, designed to be the successor format to MP3, with generally better sound quality.

9
12
22
12
4
15


Animated PNG (APNG)

Like animated GIFs, but allowing 24-bit colors and alpha transparency

3
8
9.5-9.6


AC-3 (Dolby Digital) and EC-3 (Dolby Digital Plus) codecs

AC-3 and EC-3 are multi-channel lossy audio codecs, commonly used in movies. AC-3 supports 5.1 channels. Its successor EC-3 (or E-AC-3) supports 15.1 channels and bit rates up to 6144kbit/s. They're standardised as A/52:2012.

12


autocomplete attribute: on & off values

The autocomplete attribute for input elements indicates to the browser whether a value should or should not be autofilled when appropriate.

5.5
12
2
17
5.1
9


async attribute for external scripts

The boolean async attribute on script elements allows the external JavaScript file to run when it's available, without delaying page load first.

10
12
3.6
8
5
15


asm.js

an extraordinarily optimizable, low-level subset of JavaScript, indended to be a compile target from languages like C++.

13
22
28
15


Audio Tracks

Method of specifying and selecting between multiple audio tracks. Useful for providing audio descriptions, director's commentary, additional languages, alternative takes, etc.

10
12
6.1


Autofocus attribute

Allows a form field to be immediately focused on page load.

10
12
4
5
5
9.5-9.6


Ambient Light API

Defines events that provide information about the ambient light level, as measured by a device's light sensor.

22


accept attribute for file input

Allows a filter to be defined for what type of files a user may pick with from an <input type="file"> dialog

10
4
9
6
15


Arrow functions

Function shorthand using => syntax and lexical this binding.

12
22
45
32


Audio element

Method of playing sound on webpages (without requiring a plug-in).

9
12
3.5
4
4
9.5-9.6


Beacon API

Allows data to be sent asynchronously to a server with navigator.sendBeacon, even after a page was closed. Useful for posting analytics data the moment a user was finished using the page.

31
39
26


Basic console logging functions

Method of outputting data to the browser's console, intended for development purposes.

8
12
4
4
3.1
11


Blending of HTML/SVG elements

Allows blending between arbitrary SVG and HTML elements

32
41
7.1
29


Blob constructing

Construct Blobs (binary large objects) either using the BlobBuilder API (deprecated) or the Blob constructor.

10
12
6
8
6
12.1


Brotli Accept-Encoding/Content-Encoding

More effective lossless compression algorithm than gzip and deflate.

44


BroadcastChannel

BroadcastChannel allows scripts from the same origin but other browsing contexts (windows, workers) to send each other messages.

38


Base64 encoding and decoding

Utility functions for of encoding and decoding strings to and from base 64: window.atob() and window.btoa().

10
12
2
4
3.1
10.6


Blob URLs

Method of creating URL handles to the specified File or Blob object.

10
12
4
8
6
15


background-position-x & background-position-y

CSS longhand properties to define x or y positions separately.

5.5
12
4
3.1
15


Battery Status API

Method to provide information about the battery status of the hosting device.

10
38
25


Crisp edges/pixelated images

Forces images to be scaled with an algorithm that preserves contrast and edges in the image, without smoothing colors or introduce blur. This is intended for images such as pixel art. Official values that accomplish this for the image-rendering property are crisp-edges and pixelated.

7
3.6
41
6
11.6


Content Security Policy 1.0

Mitigate cross-site scripting attacks by whitelisting allowed sources of script, style, and other resources.

10
12
4
14
5.1
15


CSS Motion Path

Allows elements to be animated along SVG paths or shapes

46
33


Canvas (basic support)

Method of generating fast, dynamic graphics using JavaScript.

9
12
2
4
3.1
9


CSS Hyphenation

Method of controlling when words at the end of lines should be hyphenated using the "hyphens" property.

10
12
6
5.1


CSS currentColor value

A CSS value that will apply the existing color value to other properties like background-color, etc.

9
12
2
4
4
9.5-9.6


CSSOM Scroll-behavior

Method of specifying the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.

36


CSS text-size-adjust

On mobile devices, the text-size-adjust CSS property allows Web authors to control if and how the text-inflating algorithm is applied to the textual content of the element it is applied to.


CSS pointer-events (for HTML)

This CSS property, when set to "none" allows elements to not receive hover/click events, instead the event will occur on anything behind it.

11
12
3.6
4
4
15


CSS Animation

Complex method of animating certain properties of an element

10
12
5
4
4
12


CSS background-attachment

Method of defining how a background image is attached to a scrollable element. Values include scroll (default), fixed and local.

5.5
12
2
4
3.1
9


CSS filter() function

This function filters a CSS input image with a set of filter functions (like blur, grayscale or hue)

9


CSS3 Box-sizing

Method of specifying whether or not an element's borders and padding should be included in size units

8
12
2
4
3.1
9.5-9.6


CSS Logical Properties

Use start/end properties that depend on LTR or RTL writing direction instead of left/right

3
4
3.1
15


CSS3 Multiple column layout

Method of flowing information in multiple columns

10
12
2
4
3.1
11.1


CSS Masks

Method of displaying part of an element, using a selected image as a mask

3.5
4
4
15


CSS outline

The CSS outline property is a shorthand property for setting one or more of the individual outline properties outline-style, outline-width and outline-color in a single rule. In most cases the use of this shortcut is preferable and more convenient.

8
12
2
4
3.1
9


CSS box-decoration-break

Controls whether the box's margins, borders, padding, and other decorations wrap the broken edges of the box fragments (when the box is split by a break (page/column/region/line).

32
22
6.1
11


CSS3 text-align-last

CSS property to describe how the last line of a block or a line right before a forced line break when text-align is justify.

5.5
12
12
47
34


CSS Counter Styles

The @counter-style CSS at-rule allows custom counter styles to be defined. A @counter-style rule defines how to convert a counter value into a string representation.

33


CSS zoom

Non-standard method of scaling content.

5.5
12
4
4
15


CSS background-position edge offsets

Allows CSS background images to be positioned relative to the specified edge using the 3 to 4 value syntax. For example: background-position: right 5px bottom 5px; for positioning 5px from the bottom-right corner.

9
12
13
25
7
10.5


Clipboard API

API to provide copy, cut and paste events as well as provide access to the OS clipboard.

5.5
12
22
13
4
12.1


CSS Counters

Method of controlling number values in generated content, using the counter-reset and counter-increment properties.

8
12
2
4
3.1
9


CSS3 Border images

Method of using images for borders

11
12
3.5
4
3.1
10.5


CSS Generated content for pseudo-elements

Method of displaying text or images before or after the given element's contents using the ::before and ::after pseudo-elements. All browsers with support also support the attr() notation in the content property.

8
12
2
4
3.1
9


Custom Elements

Method of defining and using new types of DOM elements in a document.

33
20


CSS inline-block

Method of displaying an element as a block while flowing it with text.

5.5
12
2
4
3.1
9


CSS image-set

Method of letting the browser pick the most appropriate CSS background image from a given set, primarily for high PPI screens.

21
6
15


CSS font-size-adjust

Method of adjusting the font size in a matter that relates to the height of lowercase vs. uppercase letters. This makes it easier to set the size of fallback fonts.

3


CSS Cross-Fade Function

Image function to create a "crossfade" between images. This allows one image to transition (fade) into another based on a percentage value.

17
5.1
15


CSS :read-only and :read-write selectors

:read-only and :read-write pseudo-classes to match elements which are considered user-alterable

13
27
34
7
15


Channel messaging

Method for having two-way communication between browsing contexts (using MessageChannel)

10
12
41
4
5
10.6


CSS3 font-kerning

Controls the usage of the kerning information (spacing between letters) stored in the font. Note that this only affects OpenType fonts with kerning information, it has no effect on other fonts.

34
29
7
16


CSS min/max-width/height

Method of setting a minimum or maximum width or height to an element.

7
12
2
4
3.1
9


CSS3 Transitions

Simple method of animating certain properties of an element, with ability to define property, duration, delay and timing function.

10
12
4
4
3.1
10.5


CSS all property

A shorthand property for resetting all CSS properties except for direction and unicode-bidi.

27
37
9.1
24


CSS Shapes Level 1

Allows geometric shapes to be set in CSS to define an area for text to flow around.

37
7.1
24


CSS revert value

A CSS keyword value that resets a property's value to the default specified by the browser in its UA stylesheet, as if the webpage had not included any CSS. For example, display:revert on a <div> would result in display:block. This is in contrast to the initial value, which is simply defined on a per-property basis, and for display would be inline.

9.1


CSS Reflections

Method of displaying a reflection of an element

4
4
15


CSS font-stretch

If a font has multiple types of variations based on the width of characters, the font-stretch property allows the appropriate one to be selected. The property in itself does not cause the browser to stretch to a font.

9
12
9
48
35


CSS position:fixed

Method of keeping an element in a fixed location regardless of scroll position

7
12
2
4
3.1
9


CSS Repeating Gradients

Method of defining a repeating linear or radial color gradient as a CSS image.

10
12
3.6
10
5.1
11.1


CSS3 Cursors: grab & grabbing

Support for grab, grabbing values for the CSS3 cursor property.

2
4
3.1
11.6


CSS3 tab-size

Method of customizing the width of the tab character. Only effective using 'white-space: pre' or 'white-space: pre-wrap'.

4
21
6.1
10.6


crypto.getRandomValues()

Method of generating cryptographically random values.

11
12
21
11
6.1
15


CSS font-smooth

Controls the application of anti-aliasing when fonts are rendered.

25
5
4
15


contenteditable attribute (basic support)

Method of making any HTML element editable.

5.5
12
3
4
3.1
9


CSS Canvas Drawings

Method of using HTML5 Canvas as a background image. Not currently part of any specification.

4
4
15


Custom protocol handling

Method of allowing a webpage to handle a given protocol using navigator.registerProtocolHandler. This allows certain URLs to be opened by a given web application, for example mailto: addresses can be opened by a webmail client.

3
13
11.6


CSS3 Overflow-wrap

Allows lines to be broken within words if an otherwise unbreakable string is too long to fit. Currently mostly supported using the word-wrap property.

5.5
12
3.5
4
3.1
10.5


classList (DOMTokenList)

Method of easily manipulating classes on elements, using the DOMTokenList object.

10
12
3.6
8
5.1
11.5


CSS Backdrop Filter

Method of applying filter effects (like blur, grayscale or hue) to content/elements below the target element.

9


CSS page-break properties

Properties to control the way elements are broken across (printed) pages.

5.5
12
2
4
3.1
10.0-10.1


CSS resize property

Method of allowing an element to be resized by the user, with options to limit to a given direction.

4
4
4
12.1


CSS Regions

Method of flowing content into multiple elements.

10
12
15
6.1


CSS.supports() API

The CSS.supports() static methods returns a Boolean value indicating if the browser supports a given CSS feature, or not.

12
23
28
9
12.1


CSS 2.1 selectors

Basic CSS selectors including: * (universal selector), > (child selector), :first-child, :link, :visited, :active, :hover, :focus, :lang(), + (adjacent sibling selector), [attr], [attr="val"], [attr~="val"], [attr|="bar"], .foo (class selector), #foo (id selector)

7
12
2
4
3.1
9


CSS touch-action property

touch-action is a CSS property that controls filtering of gesture events, providing developers with a declarative mechanism to selectively disable touch scrolling (in one or both axes), pinch-zooming or double-tap-zooming.

10
12
36
9.1
23


CSS Text 4 text-spacing

This property controls spacing between adjacent characters on the same line within the same inline formatting context using a set of character-class-based rules.

8
12


CSS Feature Queries

CSS Feature Queries allow authors to condition rules based on whether particular property declarations are supported in CSS using the @supports at rule.

12
22
28
9
12.1


CSS3 3D Transforms

Method of transforming an element in the third dimension using the transform property. Includes support for the perspective property to set the perspective in z-space and the backface-visibility property to toggle display of the reverse side of a 3D-transformed element.

10
12
10
12
4
15


CSS background-blend-mode

Allows blending between CSS background images, gradients, and colors.

30
35
7.1
22


calc() as CSS unit value

Method of allowing calculated values for length units, i.e. width: calc(100% - 3em)

9
12
4
19
6
15


CustomEvent

A DOM event interface that can carry custom application-defined data.

9
12
6
9
5.1
11


CSS Appearance

The appearance property defines how elements (particularly form controls) appear by default. By setting the value to none the default appearance can be entirely redefined using other CSS properties.

12
2
4
3.1
15


CSS3 Text-overflow

Append ellipsis when text overflows its containing element

6
12
7
4
3.1
9


CSS Device Adaptation

A standard way to override the size of viewport in web page using the @viewport rule, standardizing and replacing Apple's own popular <meta> viewport implementation.

10
12


Client Hints: DPR, Width, Viewport-Width

DPR, Width, and Viewport-Width hints enable proactive content negotiation between client and server, enabling automated delivery of optimized assets - e.g. auto-negotiating image DPR resolution.

46
33


CSS3 image-orientation

CSS property used generally to fix the intended orientation of an image. This can be done using 90 degree increments or based on the image's EXIF data using the "from-image" value.

26


CSS3 Colors

Method of describing colors using Hue, Saturation and Lightness (hsl()) rather than just RGB, as well as allowing alpha-transparency with rgba() and hsla().

9
12
2
4
3.1
9.5-9.6


CSS font-feature-settings

Method of applying advanced typographic and language-specific font features to supported OpenType fonts.

10
12
4
16
4
15


CSS Font Loading

This CSS module defines a scripting interface to font faces in CSS, allowing font faces to be easily created and loaded from script. It also provides methods to track the loading status of an individual font, or of all the fonts on an entire page.

41
35
22


CSS Scroll snap points

CSS technique that allows customizable scrolling experiences like pagination of carousels by setting defined snap points.

10
12
39
9


CSS user-select: none

Method of preventing text/element selection using CSS.

10
12
2
4
3.1
15


Cross-Origin Resource Sharing

Method of performing XMLHttpRequests across domains

8
12
3.5
4
4
12


CSS text-stroke

Method of declaring the outline (stroke) width and color for text.

4
3.1
15


CSS3 word-break

Property to prevent or allow words to be broken over multiple lines between letters.

5.5
12
15
4
3.1
15


CSS3 Box-shadow

Method of displaying an inner or outer shadow effect to elements

9
12
3.5
4
3.1
10.5


CSS clip-path property

Method of defining the visible region of an element using SVG or a shape definition.

3.5
24
7
15


CSS3 selectors

Advanced element selection using selectors including: [foo^="bar"], [foo$="bar"], [foo*="bar"], :root, :nth-child(), :nth-last-child(), nth-of-type, nth-last-of-type(), :last-child, :first-of-type, :last-of-type, :only-child, :only-of-type, :empty, :target, :enabled, :disabled, :checked, :not(), ~ (general sibling)

7
12
3.5
4
3.2
9.5-9.6


Content Security Policy Level 2

Mitigate cross-site scripting attacks by whitelisting allowed sources of script, style, and other resources. CSP 2 adds hash-source, nonce-source, and five new directives

31
36
23


Color input type

Form field allowing the user to select a color.

29
20
11


CSS Gradients

Method of defining a linear or radial color gradient as a CSS image.

10
12
3.6
4
4
11.1


Cross-document messaging

Method of sending information from a page on one domain to a page on a different one (using postMessage)

8
12
3
4
4
9.5-9.6


const

Declares a constant with block level scope

11
12
2
4
3.1
10.0-10.1


CSS Exclusions Level 1

Exclusions defines how inline content flows around elements. It extends the content wrapping ability of floats to any block-level element.

10
12


CSS Variables

Permits the declaration and usage of cascading variables in stylesheets.

31
49
9.1


CSS3 Multiple backgrounds

Method of using multiple images as a background

9
12
3.6
4
3.1
10.5


CSS3 Text-shadow

Method of applying one or more shadow or blur effects to text

10
12
3.5
4
3.1
9.5-9.6


CSS Filter Effects

Method of applying filter effects (like blur, grayscale, brightness, contrast and hue) to elements, previously only possible by using SVG.

13
3.6
18
6
15


CSS unset value

A CSS value that's the same as "inherit" if a property is inherited or "initial" if a property is not inherited.

13
27
41
9.1
28


CSS font-variant-alternates

Controls the usage of alternate glyphs associated to alternative names defined in @font-feature-values for certain types of OpenType fonts.

34


CSS3 Media Queries

Method of applying styles based on media information. Includes things like page and device dimensions

9
12
3.5
4
3.1
9.5-9.6


CSS writing-mode property

Property to define whether lines of text are laid out horizontally or vertically and the direction in which blocks progress.

5.5
12
41
8
5.1
15


CSS3 Background-image options

New properties to affect background images, including background-clip, background-origin and background-size

9
12
3.6
4
3.1
10.0-10.1


CSS will-change property

Method of optimizing animations by informing the browser which elements will change and what properties will change.

36
36
9.1
24


CSS3 Cursors: zoom-in & zoom-out

Support for zoom-in, zoom-out values for the CSS3 cursor property.

12
2
4
3.1
11.6


CSS Grid Layout

Method of using a grid concept to lay out content, providing a mechanism for authors to divide available space for lay out into columns and rows using a set of predictable sizing behaviors

10
12


CSS3 Cursors (original values)

CSS3 cursor values added in the 2004 spec, including none, context-menu, cell, vertical-text, alias, copy, no-drop, not-allowed, nesw-resize, nwse-resize, col-resize, row-resize and all-scroll.

5.5
12
2
4
3.1
9


CSS3 Border-radius (rounded corners)

Method of making the border corners round. Covers support for the shorthand border-radius as well as the long-hand properties (e.g. border-top-left-radius)

9
12
2
4
3.1
10.5


CSS3 2D Transforms

Method of transforming an element including rotating, scaling, etc. Includes support for transform as well as transform-origin properties.

9
12
3.5
4
3.1
10.5


CSS initial value

A CSS value that will apply a property's initial value as defined in the CSS specification that defines the property

12
19
4
3.2
15


CSS3 object-fit/object-position

Method of specifying how an object (image or video) should fit inside its box. object-fit options include "contain" (fit according to aspect ratio), "fill" (stretches object to fill) and "cover" (overflows box but maintains ratio), where object-position allows the object to be repositioned like background-image does.

36
31
7.1
10.6


CSS Table display

Method of displaying elements as tables, rows, and cells. Includes support for all display: table-* properties as well as display: inline-table

8
12
2
4
3.1
9


Canvas blend modes

Method of defining the effect resulting from overlaying two layers on a Canvas element.

13
20
30
6.1
17


CSS element() function

This function renders a live image generated from an arbitrary HTML element

2


CSS3 Opacity

Method of setting the transparency level of an element

5.5
12
2
4
3.1
9


CSS position:sticky

Keeps elements positioned as "fixed" or "relative" depending on how it appears in the viewport. As a result the element is "stuck" when necessary while scrolling.

32
6.1


DeviceOrientation & DeviceMotion events

API for detecting orientation and motion events from the device running the browser.

11
12
6
7
15


Data URIs

Method of embedding images and other files in webpages as a string of text, generally using base64 encoding.

8
12
2
4
3.1
9


document.head

Convenience property for accessing the <head> element

9
12
4
4
5.1
11


Dialog element

Method of easily creating custom dialog boxes to display to the user with modal or non-modal options. Also includes a ::backdrop pseudo-element for behind the element.

37
24


Document Object Model Range

A contiguous range of content in a Document, DocumentFragment or Attr

9
12
2
4
3.1
9


Download attribute

When used on an anchor, this attribute signifies that the browser should download the resource the anchor points to rather than navigate to it.

13
20
14
15


Datalist element

Method of setting a list of options for a user to select in a text field, while leaving the ability to enter a custom value.

10
12
4
20
9


DOM Parsing and Serialization

Various DOM parsing and serializing functions, specifically DOMParser, XMLSerializer, innerHTML, outerHTML and adjacentHTML.

5.5
12
2
4
3.1
10.0-10.1


disabled attribute of the fieldset element

Allows disabling all of the form control descendants of a fieldset via a disabled attribute on the fieldset element itself.

6
12
4
20
6
10.0-10.1


DOMContentLoaded

JavaScript event that fires when the DOM is loaded, but before all page assets are loaded (CSS, images, etc.).

9
12
2
4
3.1
9


defer attribute for external scripts

The boolean defer attribute on script elements allows the external JavaScript file to run when the DOM is loaded, without delaying page load first.

5.5
12
3.5
8
5
15


Details & Summary elements

The

element generates a simple no-JavaScript widget to show/hide element contents, optionally by clicking on its child element.

12
6
15


dataset & data-* attributes

Method of applying and accessing custom data to elements.

5.5
12
2
4
3.1
9


Document.execCommand()

Allows running commands to manipulate the contents of an editable region in a document switched to designMode

5.5
12
9
4
6
10.0-10.1


Date and time input types

Form field widget to easily allow users to enter a date, time or both, generally by using a calendar/time input widget.

12
20
9


Drag and Drop

Method of easily dragging and dropping elements on a page, requiring minimal JavaScript.

5.5
12
3.5
4
3.1
12


ES6 Number

Extensions to the Number built-in object in ES6, including constant properties EPSILON, MIN_SAFE_INTEGER, and MAX_SAFE_INTEGER, and methods isFinite, isInteger, isSafeInteger, and isNaN.

12
16
19
9
15


Element.closest()

DOM method that returns the current element if it matches the given selector, or else the closest ancestor element that matches the given selector, or else null.

35
41
9
28


Efficient Script Yielding: setImmediate()

Yields control flow without the minimum delays enforced by setTimeout

10
12


EventTarget.addEventListener()

The modern standard API for adding DOM event handlers. Introduced in the DOM Level 2 Events spec. Also implies support for the capture phase of DOM event dispatch.

9
12
2
4
3.1
9


EOT - Embedded OpenType fonts

Type of font that can be derived from a regular font, allowing small files and legal use of high-quality fonts. Usage is restricted by the file being tied to the website

6


Email, telephone & URL input types

Text input fields intended for email addresses, telephone numbers or URLs. Particularly useful in combination with form validation

10
12
4
5
5
9.5-9.6


ECMAScript 5 Strict Mode

Method of placing code in a "strict" operating context.

10
12
4
13
5
11.6


Element.insertAdjacentHTML()

Inserts a string of HTML into a specified position in the DOM relative to the given element.

6
12
8
4
4
10.0-10.1


Element.getBoundingClientRect()

Method to get the size and position of an element's bounding box, relative to the viewport.

5.5
12
3
4
4
10.0-10.1


EventTarget.dispatchEvent

Method to programmatically trigger a DOM event.

9
12
2
4
3.2
9.5-9.6


ECMAScript 5

Full support for the ECMAScript 5 specification. Features include Function.prototype.bind, Array methods like indexOf, forEach, map & filter, Object methods like defineProperty, create & keys, the trim method on Strings and many more.

9
12
2
4
3.1
9


Font unicode-range subsetting

This @font-face descriptor defines the set of Unicode codepoints that may be supported by the font face for which it is declared. The descriptor value is a comma-delimited list of Unicode range () values. The union of these ranges defines the set of codepoints that serves as a hint for user agents when deciding whether or not to download a font resource for a given text run.

9
12
44
4
3.1
15


FLAC audio format

Popular lossless audio compression format


File API

Method of manipulating file objects in web applications client-side, as well as programmatically selecting them and accessing their data.

10
12
3.6
6
5.1
11.1


Full Screen API

API for allowing content (like a video or canvas element) to take up the entire screen.

11
12
10
15
5.1
12.1


Filesystem & FileWriter API

Method of reading and writing files to a sandboxed file system.

8
15


Flexible Box Layout Module

Method of positioning elements in horizontal or vertical stacks. Support includes the support for the all properties prefixed with flex as well as display: flex, display: inline-flex, align-content, align-items, align-self, justify-content and order.

10
12
2
4
3.1
12.1


Form attribute

Attribute for associating input and submit buttons with a form.

4
10
5.1
9.5-9.6


Fetch

A modern replacement for XMLHttpRequest.

39
40
27


Form validation

Method of setting required fields and field types without requiring JavaScript. This includes preventing forms from being submitted when appropriate, the checkValidity() method as well as support for the :invalid, :valid, and :required CSS pseudo-classes.

10
12
4
10
5
10.0-10.1


FIDO U2F API

Javascript API to interact with Universal Second Factor (U2F) devices. This allows users to log into sites more securely using two-factor authentication with a USB dongle.

41


FileReader API

Method of reading the contents of a File or Blob object into memory

10
12
3.6
6
6
11.1


Gamepad API

API to support input from USB gamepad controllers through JavaScript.

12
29
21
24


Geolocation

Method of informing a website of the user's geographical location

9
12
3.5
4
5
10.6


getComputedStyle

API to get the current computed CSS styles applied to an element. This may be the current value applied by an animation or as set by a stylesheet.

9
12
3
4
3.1
9


getElementsByClassName

Method of accessing DOM elements by class name

9
12
3
4
3.1
9.5-9.6


getUserMedia/Stream API

Method of accessing external device data (such as a webcam video stream). Formerly this was envisioned as the element.

12
17
21
12


HTML templates

Method of declaring a portion of reusable markup that is parsed but not rendered until cloned.

13
22
26
7.1
15


hidden attribute

The hidden attribute may be applied to any element, and effectively hides elements similar to display: none in CSS.

11
12
4
6
5.1
11.1


HTML5 form features

Expanded form options, including things like date pickers, sliders, validation, placeholders and multiple file uploads. Previously known as "Web forms 2.0".

10
12
4
4
4
9


HTML Imports

Method of including and reusing HTML documents in other HTML documents.

36
23


High Resolution Time API

Method to provide the current time in sub-millisecond resolution and such that it is not subject to system clock skew or adjustments. Called using performance.now()

10
12
15
20
8
15


HTTP/2 protocol

Networking protocol for low-latency transport of content over the web. Originally started out from the SPDY protocol, now standardized as HTTP version 2.

11
12
36
41
9
28


Hashchange event

Event triggered in JavaScript when the URL's hash has changed (for example: page.html#foo to page.html#bar)

8
12
3.6
5
5
10.6


Inline SVG in HTML5

Method of using SVG tags directly in HTML documents. Requires HTML5 parser.

9
12
4
7
5.1
11.6


IndexedDB

Method of storing data client-side, allows indexed database queries.

10
12
4
11
7.1
15


Intrinsic & Extrinsic Sizing

Allows for the heights and widths to be specified in intrinsic values using the fill, max-content, min-content, and fit-content properties.

3
22
6.1
15


input placeholder attribute

Method of setting placeholder text for text-like input fields, to suggest the expected inserted information.

10
12
4
4
3.1
11


input event

The input event is fired when the user changes the value of an <input> element, <select> element, or <textarea> element. By contrast, the "change" event usually only fires after the form control has lost focus.

9
12
3
26
5.1
11.6


Internationalization API

Locale-sensitive collation (string comparison), number formatting, and date and time formatting.

11
12
29
24
15


Input Method Editor API

Provides scripted access to the Input Method Editor (IME). An IME is often used to input characters from East Asian languages by typing roman characters and selecting from the resulting suggestions.

11
12


Improved kerning pairs & ligatures

Currently non-standard method of improving kerning pairs & ligatures using text-rendering: optimizeLegibility.

3
4
5
15


JPEG XR image format

The latest JPEG image format of Joint Photographic Experts Group which boasts better compression and supports lossless compression, alpha channel, and 48-bit deep color over normal jpg format.

9
12


JSON parsing

Method of converting JavaScript objects to JSON strings and JSON back to objects using JSON.stringify() and JSON.parse()

8
12
3.5
4
4
10.5


JPEG 2000 image format

JPEG 2000 (JP2) was created by the Joint Photographic Experts Group committee in 2000 with the intention of superseding their original discrete cosine transform-based JPEG standard (created in 1992) with a newly designed, wavelet-based method. It offers some advantages in image fidelity over standard JPEG.

5


KeyboardEvent.charCode

A legacy KeyboardEvent property that gives the Unicode codepoint number of a character key pressed during a keypress event.

9
12
3
4
5.1
12.1


KeyboardEvent.code

A KeyboardEvent property representing the physical key that was pressed, ignoring the keyboard layout and ignoring whether any modifier keys were active.

38
48
35


KeyboardEvent.location

A KeyboardEvent property that indicates the location of the key on the input device. Useful when there are more than one physical key for the same logical key (e.g. left or right "Control" key; main or numpad "1" key).

9
12
15
4
5.1
12.1


KeyboardEvent.key

A KeyboardEvent property whose value is a string identifying the key that was pressed. Covers character keys, non-character keys (e.g. arrow keys), and dead keys.

9
12
23
12.1


KeyboardEvent.getModifierState()

KeyboardEvent method that returns the state (whether the key is pressed/locked or not) of the given modifier key.

9
12
15
30
12.1


KeyboardEvent.which

A legacy KeyboardEvent property that is equivalent to either KeyboardEvent.keyCode or KeyboardEvent.charCode depending on whether the key is alphanumeric.

9
12
2
4
5.1
10.0-10.1


let

Declares a variable with block level scope

11
12
44
41
28


letter-spacing CSS property

Controls spacing between characters of text (i.e. "tracking" in typographical terms). Not to be confused with kerning.

6
12
2
4
3.2
10.0-10.1


Minimum length attribute for input fields

Declares a lower bound on the number of characters a user can input.

40
27


Media Queries: interaction media features

Allows a media query to be set based on the presence and accuracy of the user's pointing device, and whether they have the ability to hover over elements on the page. This includes the pointer, any-pointer, hover, and any-hover media features.

12
41
9
28


maxlength attribute for input and textarea elements

Declares an upper bound on the number of characters the user can input. Normally the UI ignores attempts by the user to type in additional characters beyond this limit.

6
12
2
4
3.2
9.5-9.6


Media Queries: resolution feature

Allows a media query to be set based on the device pixels used per CSS unit. While the standard uses min/max-resolution for this, some browsers support the older non-standard device-pixel-ratio media query.

9
12
3.5
4
4
9.5-9.6


Media Queries: scripting media feature

Allows a media query to be set based on whether the current document supports scripting languages (such as JavaScript). This is the scripting media feature.


MPEG-4/H.264 video format

Commonly used video compression format.

9
12
21
4
3.2
25


Multiple file selection

Allows users to select multiple files in the file picker.

10
12
3.6
5
4
10.6


Mutation Observer

Method for observing and reacting to changes to the DOM. Replaces MutationEvents, which is deprecated.

11
12
14
18
6
15


Media Source Extensions

API allowing media data to be accessed from HTML video and audio elements.

11
12
42
23
8
15


Media attribute

Allows audio and video sources to be assigned to media queries

9
12
15
4
5.1
10.0-10.1


meter element

Method of indicating the current level of a gauge.

13
16
8
6
11


matches() DOM method

Method of testing whether or not a DOM element matches a given selector. Formerly known (and largely supported with prefix) as matchesSelector.

9
12
3.6
4
5
11.5


matchMedia

API for finding out whether or not a media query applies to the document.

10
12
6
9
5.1
12.1


MP3 audio format

Popular lossy audio compression format

9
12
3.5
4
4
15


MathML

Special tags that allow mathematical formulas and notations to be written on web pages.

2
24
5.1
9.5-9.6


Number input type

Form field type for numbers.

10
12
29
6
5
9


Network Information API

The Network Information API enables web applications to access information about the network connection in use by the device.


Node.innerText

A currently-nonstandard property representing the text within a DOM element and its descendants. As a getter, it approximates the text the user would get if they highlighted the contents of the element with the cursor and then copied to the clipboard.

6
12
45
4
3.2
9.5-9.6


New semantic elements

HTML5 offers some new elements, primarily for semantic purposes. The elements include: section, article, aside, header, footer, nav, figure, figcaption, time, mark, main.

9
12
3
4
3.1
9


Navigation Timing API

API for accessing timing information related to navigation and elements.

9
12
7
6
8
15


Node.textContent

DOM Node property representing the text content of a node and its descendants

9
12
2
4
3.2
9.5-9.6


Offline web applications

Now deprecated method of defining web page files to be cached using a cache manifest file, allowing them to work offline on subsequent visits to the page.

10
12
3
4
4
10.6


Ogg Vorbis audio format

Vorbis is a free and open source audio format, most commonly used with the Ogg container.

3.5
4
10.5


Online/offline status

Events to indicate when the user's connected (online and offline events) and the navigator.onLine property to see current status.

8
12
3.5
14
5
12.1


Object.observe data binding

Method for data binding, a now-withdrawn ECMAScript 7 proposal

36
23


Opus

Royalty-free open audio codec by IETF, which incorporated SILK from Skype and CELT from Xiph.org, to serve higher sound quality and lower latency at the same bitrate.

15
33
20


Object RTC (ORTC) API for WebRTC

Enables mobile endpoints to talk to servers and web browsers with Real-Time Communications (RTC) capabilities via native and simple JavaScript APIs

13


Ogg/Theora video format

Free lossy video compression format.

3.5
4
10.5


Permissions API

High-level JavaScript API for checking and requesting permissions

43
30


Proximity API

Defines events that provide information about the distance between a device and an object, as measured by a proximity sensor.

15


PNG alpha transparency

Semi-transparent areas in PNG files

7
12
2
4
3.1
9


PageTransitionEvent

Fired at the Window when the page's entry in the session history stops being the current entry. Includes the pageshow and pagehide events.

11
12
2
4
5
15


Pattern attribute for input fields

Allows validation of an input field based on a given regular expression pattern.

10
12
4
10
5.1
9.5-9.6


PointerLock API

API that provides access to raw mouse movement data. This is done by ignoring boundaries resulting from screen edges where the cursor can't go beyond, providing proper control for first person or real time strategy games.

13
14
22
15


Page Visibility

JavaScript API for determining whether a document is visible on the display

10
12
10
14
6.1
12.1


Proxy object

The Proxy object allows custom behaviour to be defined for fundamental operations. Useful for logging, profiling, object virtualisation, etc.

12
18


Public Key Pinning

Declare that a website's HTTPS certificate should only be treated as valid if the public key is contained in a specified list to prevent MITM attacks that use valid CA-issued certificates.

35
38
23


progress element

Method of indicating a progress state.

10
12
6
8
6
11


Promises

A promise represents the eventual result of an asynchronous operation.

12
27
32
7.1
19


Pointer events

This specification integrates various inputs from mice, touchscreens, and pens, making separate implementations no longer necessary and authoring for cross-device pointers easier. Not to be mistaken with the unrelated "pointer-events" CSS property.

10
12
44


Push API

API to allow messages to be pushed from a server to a browser, even when the site isn't focused or even open in the browser.

44
44


PNG favicons

Icon used by browsers to identify a webpage or site. While all browsers support the .ico format, the PNG format can be preferable.

11
12
2
4
3.1
9


Picture element

A responsive images method to control which image resource a user agent presents to a user, based on resolution, media query and/or support for a particular image format

13
38
38
9.1
25


querySelector/querySelectorAll

Method of accessing DOM elements using CSS selectors

8
12
3.5
4
3.1
10.0-10.1


Resource Timing

Method to help web developers to collect complete timing information related to resources on a document.

10
12
35
25
15


rem (root em) units

Type of unit similar to em, but relative only to the root element, not any parent element. Thus compounding does not occur as it does with em units.

9
12
3.6
4
5
11.6


Resource Hints: Lazyload

Gives a hint to the browser to lower the loading priority of a resource.

11
12


relList (DOMTokenList)

Method of easily manipulating rel attribute values on elements, using the DOMTokenList object (similar to classList).

30
9


Referrer Policy

Allow control of HTTP referrers via the referrer meta tag.

12
36
21
7.1
15


requestAnimationFrame

API allowing a more efficient way of running script-based animation, compared to traditional methods using timeouts. Also covers support for cancelAnimationFrame

10
12
4
10
6
15


Resource Hints: dns-prefetch

Gives a hint to the browser to perform a DNS lookup in the background to improve performance. This is indicated using <link rel="dns-prefetch" href="http://example-domain.com/">

9
12
3.5
4
5
15


Reversed attribute of ordered lists

This attribute makes an ordered list number its items in descending order (large to small), instead of ascending order (small to large; the default). The order that the list items are displayed in is not affected.

18
20
6.1
12.1


Resource Hints: preconnect

Gives a hint to the browser to begin the connection handshake (DNS, TCP, TLS) in the background to improve performance. This is indicated using <link rel="preconnect" href="https://example-domain.com/">

39
46
33


Rest parameters

Allows representation of an indefinite number of arguments as an array.

12
15
47
34


Ruby annotation

Method of adding pronunciation or other annotations using ruby elements (primarily used in East Asian typography).

5.5
12
38
5
5
15


Resource Hints: prefetch

Informs the browsers that a given resource should be prefetched so it can be loaded more quickly. This is indicated using <link rel="prefetch" href="(url)">

11
12
2
8
15


Range input type

Form field type that allows the user to select a value using a slider widget.

10
12
23
4
3.1
9


Resource Hints: prerender

Gives a hint to the browser to render the specified page in the background, speeding up page load if the user navigates to it. This is indicated using <link rel="prerender" href="(url)">

11
12
13
15


seamless attribute for iframes

The seamless attribute makes an iframe's contents actually part of a page, and adopts the styles from its hosting page. The attribute has been removed from the current specification.


Server-sent events

Method of continuously sending data from a server to the browser, rather than repeatedly requesting it (EventSource interface, used to fall under HTML5)

6
6
5
9


Scoped CSS

Allows CSS rules to be scoped to part of the document, based on the position of the style element.

21


Srcset attribute

Allows authors to define various image resources and "hints" that assist a user agent to determine the most appropriate image source to display (e.g. high-resolution displays, small monitors, etc).

12
38
34
7.1
21


SVG fragment identifiers

Method of displaying only a part of an SVG image by defining a view ID or view box dimensions as the file's fragment identifier.

9
12
15
36
7.1
10.0-10.1


Shadow DOM

Method of establishing and maintaining functional boundaries between DOM trees and how these trees interact with each other within a document, thus enabling better functional encapsulation within the DOM.

25
15


SVG (basic support)

Method of displaying basic Vector Graphics features using the embed or object elements. Refers to the SVG 1.1 spec.

9
12
2
4
3.1
9


Spellcheck attribute

Attribute for input/textarea fields to enable/disable the browser's spellchecker.

10
12
2
9
5.1
10.5


SVG filters

Method of using photoshop-like effects on SVG objects including blurring and color manipulation.

10
12
3
5
6
9


Subresource Integrity

Subresource Integrity enables browsers to verify that file is delivered without unexpected manipulation.

43
45
32


SVG favicons

Icon used by browsers to identify a webpage or site. While all browsers support the .ico format, the SVG format can be preferable to more easily support higher resolutions or larger icons.

4
9


Shared Web Workers

Method of allowing multiple scripts to communicate with a single web worker.

29
4
5
10.6


SVG fonts

Method of using fonts defined as SVG shapes. Removed from SVG 2.0 and considered as a deprecated feature with support being removed from browsers.

4
3.2
9


Speech Recognition API

Method to provide speech input in a web browser.

25
27


SVG effects for HTML

Method of using SVG transforms, filters, etc on HTML elements using either CSS or the foreignObject element

9
12
3
4
4
9


sandbox attribute for iframes

Method of running external site pages with reduced privileges (e.g. no JavaScript) in iframes.

10
12
17
4
5
15


SVG SMIL animation

Method of using animation elements to animate SVG images

4
4
4
9


SVG in CSS backgrounds

Method of using SVG images as CSS backgrounds

9
12
4
4
3.2
9.5-9.6


Strict Transport Security

Declare that a website is only accessible over a secure connection (HTTPS).

11
12
4
4
7
12


Search input type

Search field form input type. Intended to look like the underlying platform's native search field widget (if there is one). Other than its appearance, it's the same as an <input type="text">.

10
12
4
26
5.1
11.6


Speech Synthesis API

A web API for controlling a text-to-speech output.

33
7
27


srcdoc attribute for iframes

Override the content specified in the src attribute (if present) with HTML content within the attribute.

25
20
6
15


SPDY protocol

Networking protocol for low-latency transport of content over the web. Superseded by HTTP version 2.

11
13
4
8
12.1


SVG in HTML img element

Method of displaying SVG images in HTML using .

9
12
4
4
3.2
9


Server Name Indication

An extension to the TLS computer networking protocol by which a client indicates which hostname it is attempting to connect to at the start of the handshaking process.

7
12
2
6
3.1
9


Service Workers

Method that enables applications to take advantage of persistent background processing, including hooks to enable bootstrapping of web applications while offline.

44
40
24


Screen Orientation

Provides the ability to read the screen orientation state, to be informed when this state changes, and to be able to lock the screen orientation to a specific state.

11
12
18
38
25


Session history management

Method of manipulating the user's browser's session history in JavaScript using history.pushState, history.replaceState and the popstate event.

10
12
4
5
5
11.5


Typed Arrays

JavaScript typed arrays provide a mechanism for accessing raw binary data much more efficiently.

10
12
4
7
5.1
11.6


text-decoration styling

Method of defining the type, style and color of lines in the text-decoration property. These can be defined as shorthand (e.g. text-decoration: line-through dashed blue) or as single properties (e.g. text-decoration-color: blue)

6
7.1


Touch events

Method of registering when, where and how the interface is touched, for devices with a touch screen. These DOM events are similar to mousedown, mousemove, etc.

12
4
22
15


Toolbar/context menu

Method of defining a toolbar menu, a context menu or a list of (interactive) options using the

element.

8


text-emphasis styling

Method of using small symbols next to each glyph to emphasize a run of text, commonly used in East Asian languages. The text-emphasis shorthand, and its text-emphasis-style and text-emphasis-color longhands, can be used to apply marks to the text. The text-emphasis-position property, which inherits separately, allows setting the emphasis marks' position with respect to the text.

25
6.1
15


Test feature - updated

>


Text API for Canvas

Method of displaying text on Canvas elements

9
12
3.5
4
4
10.5


TTF/OTF - TrueType and OpenType font support

Support for the TrueType (.ttf) and OpenType (.otf) outline font formats in @font-face.

9
12
3.5
4
3.1
10.0-10.1


Upgrade Insecure Requests

Declare that browsers should transparently upgrade HTTP resources on a website to HTTPS.

42
43
30


User Timing API

Method to help web developers measure the performance of their applications by giving them access to high precision timestamps.

10
12
38
25
15


Vibration API

Method to access the vibration mechanism of the hosting device.

11
30
17


Viewport units: vw, vh, vmin, vmax

Length units representing 1% of the viewport size for viewport width (vw), height (vh), the smaller of the two (vmin), or the larger of the two (vmax).

9
12
19
20
6
15


Video element

Method of playing videos on webpages (without requiring a plug-in).

9
12
3.5
4
4
10.5


Video Tracks

Method of specifying and selecting between multiple video tracks. Useful for providing sign language tracks, burnt-in captions or subtitles, alternative camera angles, etc.

12
6.1


WOFF 2.0 - Web Open Font Format

TrueType/OpenType font that provides better compression than WOFF 1.0.

39
36
23


Wav audio format

Waveform Audio File Format, aka WAV or WAVE, a typically uncompressed audio format.

12
3.5
8
4
10.5


WebVTT - Web Video Text Tracks

Format for marking up text captions for multimedia resources.

10
12
31
18
6
15


Web Animations API

Lets you create animations that are run in the browser and as well as inspect and manipulate animations created through declarative means like CSS.

33
36
23


WAI-ARIA Accessibility features

Method of providing ways for people with disabilities to use dynamic web content and web applications.

8
12
2
4
4
9.5-9.6


WebGL - 3D Canvas graphics

Method of generating dynamic 3D graphics using JavaScript, accelerated through hardware

11
12
4
8
5.1
12


Web SQL Database

Method of storing data client-side, allows Sqlite database queries for access and manipulation

4
3.1
10.5


WebP image format

Image format that supports lossy and lossless compression, as well as animation and alpha transparency.

9
11.1


Web Cryptography

JavaScript API for performing basic cryptographic operations in web applications

11
12
34
37
7.1
24


WOFF - Web Open Font Format

Compressed TrueType/OpenType font that contains information about the font's source.

9
12
3.6
5
5.1
11.1


Web Sockets

Bidirectional communication technology for web apps

10
12
4
4
5
11


Web Audio API

High-level JavaScript API for processing and synthesizing audio

12
25
10
6
15


wbr (word break opportunity) element

Represents an extra place where a line of text may optionally be broken.

5.5
12
2
4
3.2
9.5-9.6


Web Workers

Method of running scripts in the background, isolated from the web page

10
12
3.5
4
4
10.6


WebM video format

Multimedia format designed to provide a royalty-free, high-quality open video compression format for use with HTML5 video. WebM supports the video codec VP8 and VP9.

4
6
10.6


WebRTC Peer-to-peer connections

Method of allowing two users to communicate directly, browser to browser using the RTCPeerConnection API.

22
23
18


Web MIDI API

The Web MIDI API specification defines a means for web developers to enumerate, manipulate and access MIDI devices

43
30


Web Storage - name/value pairs

Method of storing data locally like cookies, but for larger amounts of data (sessionStorage and localStorage, used to fall under HTML5).

8
12
2
4
4
10.5


Window.devicePixelRatio

Read-only property that returns the ratio of the (vertical) size of one physical pixel on the current display device to the size of one CSS pixel.

11
12
18
4
3.1
11.6


Web Notifications

Method of alerting the user outside of a web page by displaying notifications (that do not require interaction by the user).

22
5
6
25


XHTML served as application/xhtml+xml

A strict form of HTML, and allows embedding of other XML languages

9
12
2
4
3.1
9


XHTML+SMIL animation

Method of using SMIL animation in web pages

6


XMLHttpRequest advanced features

Adds more functionality to XHR (aka AJAX) requests like file uploads, transfer progress information and the ability to send form data. Previously known as XMLHttpRequest Level 2, these features now appear simply in the XMLHttpRequest spec.

10
12
3.5
7
5
12