1. Printing Events

    Window fires `beforeprint` and `afterprint` events so the printed document can be annotated.

  2. Content Security Policy 1.0

    Mitigate cross-site scripting attacks by only allowing certain sources of script, style, and other resources.

  3. Content Security Policy Level 2

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

  4. CSS print-color-adjust

    The `print-color-adjust` (or `-webkit-print-color-adjust` as prefixed in WebKit/Blink browsers) property is a CSS extension that can be used to force printing of background colors and images.

  5. :default CSS pseudo-class

    The `:default` pseudo-class matches checkboxes and radio buttons which are checked by default, `<option>`s with the `selected` attribute, and the default submit button (if any) of a form.

  6. CSS Filter Effects

    Method of applying filter effects using the `filter` property to elements, matching filters available in SVG. Filter functions include blur, brightness, contrast, drop-shadow, grayscale, hue-rotate, invert, opacity, sepia and saturate.

  7. ::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.

  8. :focus-visible CSS pseudo-class

    The `:focus-visible` pseudo-class applies while an element matches the `:focus` pseudo-class, and the UA determines via heuristics that the focus should be specially indicated on the element (typically via a “focus ring”).

  9. :focus-within CSS pseudo-class

    The `:focus-within` pseudo-class matches elements that either themselves match `:focus` or that have descendants which match `:focus`.

  10. CSS hanging-punctuation

    Allows some punctuation characters from start (or the end) of text elements to be placed "outside" of the box in order to preserve the reading flow.

  11. :has() CSS relational pseudo-class

    Select elements containing specific content. For example, `a:has(img)` selects all `<a>` elements that contain an `<img>` child.

  12. CSS ::marker pseudo-element

    The `::marker` pseudo-element allows list item markers to be styled or have their content value customized.

  13. :is() CSS pseudo-class

    The `:is()` (formerly `:matches()`, formerly `:any()`) pseudo-class checks whether the element at its position in the outer selector matches any of the selectors in its selector list. It's useful syntactic sugar that allows you to avoid writing out all the combinations manually as separate selectors. The effect is similar to nesting in Sass and most other CSS preprocessors.

  14. CSS Motion Path

    Allows elements to be animated along SVG paths or shapes via the `offset-path` property. Originally defined as the `motion-path` property.

  15. ::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.

  16. :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.

  17. Document Policy

    A mechanism that allows developers to set certain rules and policies for a given site. The rules can change default browser behaviour, block certain features or set limits on resource usage. Document Policy is useful both for security and performance, and is similar to [Permissions Policy](/permissions-policy).

  18. ECMAScript 2015 (ES6)

    Support for the ECMAScript 2015 specification. Features include Promises, Modules, Classes, Template Literals, Arrow Functions, Let and Const, Default Parameters, Generators, Destructuring Assignment, Rest & Spread, Map/Set & WeakMap/WeakSet and many more.

  19. Feature Policy

    This specification defines a mechanism that allows developers to selectively enable and disable use of various browser features and APIs. Feature Policy is deprecated and has been replaced with [Permissions Policy](/permissions-policy) and [Document Policy](/document-policy).

  20. CSS Flexible Box Layout Module

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

  21. JSON parsing

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

  22. High-quality kerning pairs & ligatures

    When used in HTML, the unofficial `text-rendering: optimizeLegibility` CSS property enables high-quality kerning and ligatures in certain browsers. Newer browsers have this behavior enabled by default.

  23. 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/">`

  24. 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)">`

  25. Resource Hints: preload

    Using `<link rel="preload">`, browsers can be informed to prefetch resources without having to execute them, allowing fine-grained control over when and how resources are loaded.

  26. 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)">`

  27. 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.

  28. Page Visibility

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

  29. Passive event listeners

    Event listeners created with the `passive: true` option cannot cancel (`preventDefault()`) the events they receive. Primarily intended to be used with touch events and `wheel` events. Since they cannot prevent scrolls, passive event listeners allow the browser to perform optimizations that result in smoother scrolling.

  30. Passkeys

    Passkeys, also known as Multi-device FIDO Credentials, provide users with an alternative to passwords that is much easier to use and far more secure.

  31. Path2D

    Allows path objects to be declared on 2D canvas surfaces

  32. Payment Request API

    Payment Request is a new API for the open web that makes checkout flows easier, faster and consistent on shopping sites.

  33. Built-in PDF viewer

    Support for a PDF viewer that is part of the browser, rather than requiring a PDF file to be opened in an external application.

  34. Permissions Policy

    A security mechanism that allows developers to explicitly enable or disable various powerful browser features for a given site. Similar to [Document Policy](/document-policy).

  35. 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

  36. Ping attribute

    When used on an anchor, this attribute signifies that the browser should send a ping request the resource the attribute points to.

  37. 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.

  38. 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.

  39. Portals

    Portals enable seamless navigation between sites or pages. A new page can be loaded as an inset using the `<portal>` element (similar to an iframe) which can then seamlessly transition to the new navigated state when "activated".

  40. prefers-color-scheme media query

    Media query to detect if the user has set their system to use a light or dark color theme.

  41. prefers-reduced-motion media query

    CSS media query based on a user preference for preferring reduced motion (animation, etc).

  42. progress element

    Method of indicating a progress state.

  43. Promise.prototype.finally

    When the promise is settled, whether fulfilled or rejected, the specified callback function is executed.

  44. Promises

    A promise represents the eventual result of an asynchronous operation.

  45. Proxy object

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

  46. Referrer Policy

    A policy that controls how much information is shared through the HTTP `Referer` header. Helps to protect user privacy.

  47. 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.

  48. Rest parameters

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

  49. DOM Parsing and Serialization

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

  50. html element: p