📃 September 2022 release notes
Newly available
The following features are newly available:
-
Inline-size containment:
The
contain: inline-size
CSS declaration prevents the element's inline dimension from being set by the element's contents. This permits the browser to avoid slower layout calculations. -
Forced colors:
The
forced-colors
CSS @media rule detects when a user has chosen to use a forced colors mode, also known as high-contrast mode, and theforced-color-adjust
CSS property sets whether forced colors apply to an element. -
:modal:
The
:modal
pseudo-class selects elements that put other elements into a non-interactive state, such as a fullscreen element or a<dialog>
element used withshowModal()
. -
Motion path:
The
offset
CSS property animates an element along a defined motion path. -
overflow:
The
overflow
CSS property sets the behavior for when content doesn't fit in an element. -
overscroll-behavior:
The
overscroll-behavior
CSS property disables default scrolling behaviors when the edges of a scrolling area are reached. -
Permissions:
The
navigator.permissions
API checks whether a permission, such as access to geolocation data, has been granted. -
resolution media query:
The
resolution
CSS media query sets styles based on the pixel density, or how many pixels a device uses to display a single CSS pixel. -
text-align-last:
The
text-align-last
CSS property sets the alignment of the last line of text before a forced line break.
Widely available
The following features are now widely available:
-
display: table:
The
display: table
CSS declaration renders an element with the box layout of a<table>
HTML element. Child elements may use equivalents to<table>
internal elements such asdisplay: table-row
for<tr>
. -
dominant-baseline:
The
dominant-baseline
CSS property sets the specific baseline used to align an elements's text and inline-level contents. -
font-optical-sizing:
The
font-optical-sizing
CSS property sets whether text rendering is optimized for viewing at different sizes. -
Hashbang comments:
The
#!
comment at the absolute start of a script or module is treated as a normal comment and is ignored by the JavaScript engine. -
Opacity (SVG):
The
fill-opacity
, andstroke-opacity
SVG attributes and CSS properties control the transparency of a stroke or fill of an SVG element. -
Q unit:
The
Q
CSS length unit is an absolute length anchored to the physical measurement of quarter-millimeters.1Q
is equivalent to 1/40 of 1 centimeter. - Import and export of mutable globals (WebAssembly): Mutable global variables are importable and exportable.
-
Web animations:
The
animate()
method ofElement
objects programmatically animates elements over time and can synchronize the animations of multiple elements.
New in Chrome
The following features are now available in Chrome:
-
blocking="render":
The
blocking="render"
attribute for<link>
,<script>
, and<style>
elements blocks rendering until the external script or stylesheet has been loaded. For<link rel="expect">
, rendering is blocked until a specific element is in the DOM. -
checkVisibility():
The
checkVisibility()
method checks if an element is potentially visible, with optional parameters for the kinds of visibility to check. For example, it checks whether the element has the styledisplay: none
, but can also check forvisibility: hidden
. -
Container queries:
Container size queries with the
@container
at-rule apply styles to an element based on the dimensions of its container. -
:has():
The
:has()
CSS functional pseudo-class matches an element if any of the selectors passed as parameters would match at least one element. - Custom highlights: Custom highlights style arbitrary text ranges, without adding extra elements to the DOM.
-
Hyphenate character:
The
hyphenate-character
CSS property sets the character or string to use at the end of a line before a line break. -
ic unit:
The CSS
ic
unit corresponds to the width of CJK ideographic characters. -
text-decoration in ::selection:
The
text-decoration
CSS property in a::selection
rule sets the underline and other text decoration styles on the text a user has highlighted. - WebDriver BiDi: WebDriver BiDi is a bidirectional protocol that allows a WebDriver client and a browser to communicate with each other.
-
Window Controls Overlay:
The
display_override:\ ["window-controls-overlay"]
web application manifest member shows content in the title bar area of a progressive web app that is installed on a desktop device.
New in Chrome Android
The following features are now available in Chrome Android:
-
blocking="render":
The
blocking="render"
attribute for<link>
,<script>
, and<style>
elements blocks rendering until the external script or stylesheet has been loaded. For<link rel="expect">
, rendering is blocked until a specific element is in the DOM. -
checkVisibility():
The
checkVisibility()
method checks if an element is potentially visible, with optional parameters for the kinds of visibility to check. For example, it checks whether the element has the styledisplay: none
, but can also check forvisibility: hidden
. -
Container queries:
Container size queries with the
@container
at-rule apply styles to an element based on the dimensions of its container. -
:has():
The
:has()
CSS functional pseudo-class matches an element if any of the selectors passed as parameters would match at least one element. - Custom highlights: Custom highlights style arbitrary text ranges, without adding extra elements to the DOM.
-
Hyphenate character:
The
hyphenate-character
CSS property sets the character or string to use at the end of a line before a line break. -
ic unit:
The CSS
ic
unit corresponds to the width of CJK ideographic characters. - Picture-in-picture (video): The picture-in-picture API allow websites to create a floating, always-on-top video window. Also known as PiP or pop-out video.
-
text-decoration in ::selection:
The
text-decoration
CSS property in a::selection
rule sets the underline and other text decoration styles on the text a user has highlighted. - WebDriver BiDi: WebDriver BiDi is a bidirectional protocol that allows a WebDriver client and a browser to communicate with each other.
New in Edge
The following features are now available in Edge:
-
blocking="render":
The
blocking="render"
attribute for<link>
,<script>
, and<style>
elements blocks rendering until the external script or stylesheet has been loaded. For<link rel="expect">
, rendering is blocked until a specific element is in the DOM. -
checkVisibility():
The
checkVisibility()
method checks if an element is potentially visible, with optional parameters for the kinds of visibility to check. For example, it checks whether the element has the styledisplay: none
, but can also check forvisibility: hidden
. -
Container queries:
Container size queries with the
@container
at-rule apply styles to an element based on the dimensions of its container. -
:has():
The
:has()
CSS functional pseudo-class matches an element if any of the selectors passed as parameters would match at least one element. - Custom highlights: Custom highlights style arbitrary text ranges, without adding extra elements to the DOM.
-
text-decoration in ::selection:
The
text-decoration
CSS property in a::selection
rule sets the underline and other text decoration styles on the text a user has highlighted. -
Window Controls Overlay:
The
display_override:\ ["window-controls-overlay"]
web application manifest member shows content in the title bar area of a progressive web app that is installed on a desktop device.
New in Firefox
The following features are now available in Firefox:
-
Offscreen canvas:
The
OffscreenCanvas
API provides a canvas that can be drawn to off screen, with no dependencies on the DOM, which can be used to run heavy rendering operations inside a worker context.
New in Firefox for Android
The following features are now available in Firefox for Android:
-
Offscreen canvas:
The
OffscreenCanvas
API provides a canvas that can be drawn to off screen, with no dependencies on the DOM, which can be used to run heavy rendering operations inside a worker context.
New in Safari
The following features are now available in Safari:
-
animation-composition:
The
animation-composition
CSS property chooses how to combine animations that affect the same property. -
Array by copy:
The
toReversed()
,toSorted()
,toSpliced()
, andwith()
methods of arrays and typed arrays return changed copies of arrays. They stand in contrast to methods such assort()
orreverse()
that change arrays in place. - AVIF: AVIF (AV1 Image File Format) is an image format based on the AV1 video format.
-
calc() keywords:
The
e
,pi
,infinity
, andNaN
keywords represent well-defined constants accepted in CSS math functions such ascalc()
. -
Container queries:
Container size queries with the
@container
at-rule apply styles to an element based on the dimensions of its container. -
EXT_texture_compression_bptc WebGL extension:
The
EXT_texture_compression_bptc
extension for WebGL 1.0 and 2.0 contexts adds the BPTC compressed texture formats tocompressedTexImage2D()
andcompressedTexSubImage2D()
. -
EXT_texture_norm16c WebGL extension:
The
EXT_texture_norm16
extension to WebGL 2.0 contexts adds 16 bit signed normalized and unsigned normalized fixed-point texture, renderbuffer, and texture buffer formats. -
Grid animation:
Grid animation allows you to animate the
grid-template-columns
andgrid-template-rows
CSS properties. -
JavaScript modules in shared workers:
The
SharedWorker()
constructor accepts{ type: "module" }
to load scripts that useimport
andexport
. Also known as ECMAScript modules or ESM in shared workers. - Push messages: The Push API subscribes to and receives server-initiated messages. Subscribers receive pushed messages in the background, even after periods inactive or offline.
-
Subgrid:
The
subgrid
value for thegrid-template-columns
andgrid-template-rows
properties allows a grid item to inherit the grid definition of its parent grid container. -
Web authentication easy public key access:
The
getAuthenticatorData()
,getPublicKey()
, andgetPublicKeyAlgorithm()
methods ofAuthenticatorAttestationResponse
access credential data insideattestationObject
without the need to parse it. -
OES_draw_buffers_indexed WebGL extension:
The
OES_draw_buffers_indexed
extension for WebGL 2.0 contexts allows you to control blending on a per-color basis when writing to multiple color buffers simultaneously.
New in Safari on iOS
The following features are now available in Safari on iOS:
-
animation-composition:
The
animation-composition
CSS property chooses how to combine animations that affect the same property. -
Array by copy:
The
toReversed()
,toSorted()
,toSpliced()
, andwith()
methods of arrays and typed arrays return changed copies of arrays. They stand in contrast to methods such assort()
orreverse()
that change arrays in place. - AVIF: AVIF (AV1 Image File Format) is an image format based on the AV1 video format.
-
calc() keywords:
The
e
,pi
,infinity
, andNaN
keywords represent well-defined constants accepted in CSS math functions such ascalc()
. -
Container queries:
Container size queries with the
@container
at-rule apply styles to an element based on the dimensions of its container. -
EXT_texture_norm16c WebGL extension:
The
EXT_texture_norm16
extension to WebGL 2.0 contexts adds 16 bit signed normalized and unsigned normalized fixed-point texture, renderbuffer, and texture buffer formats. -
Grid animation:
Grid animation allows you to animate the
grid-template-columns
andgrid-template-rows
CSS properties. -
JavaScript modules in shared workers:
The
SharedWorker()
constructor accepts{ type: "module" }
to load scripts that useimport
andexport
. Also known as ECMAScript modules or ESM in shared workers. -
Subgrid:
The
subgrid
value for thegrid-template-columns
andgrid-template-rows
properties allows a grid item to inherit the grid definition of its parent grid container. -
Web authentication easy public key access:
The
getAuthenticatorData()
,getPublicKey()
, andgetPublicKeyAlgorithm()
methods ofAuthenticatorAttestationResponse
access credential data insideattestationObject
without the need to parse it. -
OES_draw_buffers_indexed WebGL extension:
The
OES_draw_buffers_indexed
extension for WebGL 2.0 contexts allows you to control blending on a per-color basis when writing to multiple color buffers simultaneously.