HTML

Baseline Ready

A practical reference for deciding whether an HTML feature is ready to use now.

  • Widely available
    143
    features
  • Newly available
    19
    features
  • Limited support
    76
    features

Widely available

Widely available
Widely Canvas and graphics

2D canvas

The CanvasRenderingContext2D API is the "2d" rendering context for the <canvas> element. It represents a flat, two-dimensional space for drawing graphics and animations.

Widely Canvas and graphics

captureStream() for <canvas>

The captureStream() method for <canvas> elements returns a MediaStream which includes a CanvasCaptureMediaStreamTrack representing real-time video of the canvas image. You can use this to record the canvas, or send it elsewhere, such as another canvas or WebRTC connection.

Widely Canvas and graphics

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.

Widely Canvas and graphics

WebGL

The WebGLRenderingContext API is the "webgl" rendering context for the <canvas> element. It represents a space for drawing two- and three-dimensional graphics and animations.

Widely Data display

<meter>

The <meter> element represents a scalar value within a known range or a fractional value, typically shown as a progress bar.

Widely Data display

<progress>

The <progress> element displays an indicator showing the completion progress of a task, typically displayed as a progress bar.

Widely Data display

Description list

The <dl>, <dt>, and <dd> HTML elements represent a list of terms and their associated descriptions. Use a description list to create glossaries or similar list of key-value pairs.

Widely Data display

Tables

The <table> HTML element, with several related elements, represents tabular data in rows and columns of cells.

Widely Device APIs

Gamepad

The navigator.getGamepads() API accesses and responds to signals from game controllers.

Widely Device APIs

Geolocation API

The navigator.geolocation API requests the user's latitude, longitude, heading, and speed.

Widely Document structure

<address>

The <address> element represents contact information for a person or people, or for an organization.

Widely Document structure

<article>

The <article> element represents self-contained content, which is intended to be independently distributable or reusable, such as a comment, a blog post, or news article.

Widely Document structure

<figure> and <figcaption>

The <figure> and <figcaption> HTML elements represent an illustration, diagram, text, or other self-contained reference content, with an optional caption.

Widely Document structure

<h1> through <h6>

The <h1> through <h6> HTML elements represent six levels of section headings, in order of decreasing importance.

Widely Document structure

<ol>, <ul>, and <li>

The <ol>, <ul>, and <li> HTML elements represent ordered and unordered lists.

Widely Editing

contenteditable

The contenteditable global HTML attribute allows the user to edit the content of an element, such as inserting or deleting text.

Widely Embedded

Encrypted media extensions

The mediaKeys property of HTMLMediaElement and the navigator.requestMediaKeySystemAccess() method control the playback of content subject to digital rights management. Also known as EME.

Widely Embedded

Media capture

The navigator.mediaDevices.getUserMedia() API requests access to devices that produce audio or video streams, such as microphones or video cameras.

Widely Embedding

<iframe>

The <iframe> element embeds another HTML page into the current page.

Widely Embedding

srcdoc

The srcdoc attribute for the <iframe> HTML element sets a string of HTML to embed in the document. The value of srcdoc overrides loading a document from the src attribute.

Widely Forms

<button>

The <button> HTML element represents a button that triggers some action, such as submitting a form or opening a dialog, styled as a labeled rectangular box by default.

Widely Forms

<fieldset> and <legend>

The <fieldset> and <legend> elements group several form control elements within a web form.

Widely Forms

<form>

The <form> element contains interactive controls for submitting information.

Widely Forms

<input type="button">

The <input type="button"> HTML element represents a button that triggers some action, such as submitting a form or opening a dialog, styled as a labeled rectangular box by default. Not to be confused with the <button> element, which contains HTML content.

Widely Forms

<input type="checkbox">

The <input type="checkbox"> HTML element represents a tickable box with two states, checked and unchecked.

Widely Forms

<input type="file" multiple>

The <input type="file" multiple> HTML element shows a file picker from which users can choose one or more files to upload with a form.

Widely Forms

<input type="file">

The <input type="file"> HTML element shows a file picker from which users can choose a file to upload with the form.

Widely Forms

<input type="hidden">

The <input type="hidden"> HTML element represents a form field that is not shown visually but is still included in the form submission.

Widely Forms

<input type="image">

The <input type="image"> HTML element is an image that can be used to submit a form, like the <input type="submit"> element.

Widely Forms

<input type="number">

The <input type="number"> HTML element represents numeric input data.

Widely Forms

<input type="password">

The <input type="password"> HTML element represents a field for users to enter a password. The password is hidden from view, typically replaced by dots or asterisks.

Widely Forms

<input type="radio">

The <input type="radio"> HTML element represents one button in a group such that only one can be chosen at a time.

Widely Forms

<input type="range">

The <input type="range"> element represents a slider for choosing an inexact value between a minimum and maximum value.

Widely Forms

<input type="reset">

The <input type="reset"> HTML element represents a button that sets all form fields to their initial values.

Widely Forms

<input type="search">

The <input type="search"> HTML element represents a text field for search queries.

Widely Forms

<input type="submit">

The <input type="submit"> HTML element represents a button that triggers an action on its associated <form>, such as sending the form data to a server.

Widely Forms

<input>

The <input type="text"> HTML element allows the user to enter information into a form. By default, an <input> element is a text input.

Widely Forms

<label>

The <label> HTML element represents a caption for a form field.

Widely Forms

<output>

The <output> element represents the result of a calculation, user action, or form entry.

Widely Forms

<select>

The <select> element provides a menu of options for a user to pick from, typically rendered as a dropdown list.

Widely Forms

<textarea>

The <textarea> element represents an editing control that allows users to enter multi-line, free-form, plain text.

Widely Forms

autofocus

The autofocus HTML attribute gives focus to an element on page load.

Widely Forms

Constraint validation API

Methods that validate form controls before submission, such as checkValidity(), reportValidity() and setCustomValidity().

Widely Forms

Date and time <input> types

The <input type="date"> and <input type="time"> HTML elements show date and time pickers.

Widely Forms

dirname

The dirname attribute of <textarea> and <input> HTML elements includes the field's writing direction as form data on submission.

Widely Forms

Email, telephone, and URL <input> types

The <input type="email">, <input type="tel">, and <input type="url"> HTML elements represent email address, telephone number, and URL fields in a form.

Widely Forms

inputmode

The inputmode global HTML attribute gives a hint about what type of data is to be entered into an <input> element, such as text, numeric, or email, so the browser may help the user enter data using an adapted input mechanism, such as an on-screen virtual keyboard.

Widely Graphics

<canvas>

The <canvas> HTML element is a space to draw graphics in, using the 2D canvas API, WebGL, or WebGPU.

Widely Interaction

DOM

The DOM (Document Object Model) API represents HTML and XML documents as trees of nodes. You can use the API to inspect and modify the structure and content of a document.

Widely Interaction

Selection

The Selection API controls and modifies user text selections within the page.

Widely Interactive

<details>

The <details> element is a disclosure widget which can be expanded to reveal additional content. When closed, only the nested <summary> element is visible.

Widely Interactive

<dialog>

The <dialog> HTML element represents a modal or non-modal dialog box, such as a confirmation prompt or a subwindow used to enter data.

Widely Interactive

inert

The inert HTML attribute marks an element and its descendants as non-interactive. Inert elements don't get focus or fire click events.

Widely Interactive

tabindex

The tabindex HTML attribute make an element focusable, and sets the element's relative ordering for sequential focus navigation.

Widely Media

<audio>

The <audio> element plays sound such as audio effects or music, optionally with controls provided by the browser.

Widely Media

<img>

The <img> element adds an image into the document.

Widely Media

<picture>

The <picture> element is used for art direction in responsive images, where a different image is displayed based on the <source> element.

Widely Media

<source>

The <source> element sets a media resource for the <picture>, <video>, and <audio> elements.

Widely Media

<video>

The <video> element plays videos or movies, optionally with controls provided by the browser.

Widely Media

Text tracks

The <track> element is used as a child of the media elements that lets you specify a timed text track to be displayed in parallel with the media element.

Widely Metadata and scripts

<ruby>

The <ruby> element produces small annotations that are rendered with its base text.

Widely Metadata and scripts

Import maps

A <script type="importmap"> HTML element provides an import map as a JSON string. An import map controls how the browser should resolve module specifiers when importing JavaScript modules.

Widely Metadata and scripts

JavaScript modules

JavaScript modules allow code to be organized into reusable units. Modules use import to load other modules and export to declare what is available to import from other modules. In HTML, modules are loaded with <script type="module">.

Widely Metadata and scripts

srcset and sizes

The srcset and sizes attributes for <img> elements set a list of possible sources for the image and a corresponding list of size conditions for choosing a source, to show a responsive image that fits the size of the display.

Widely Navigation

<a>

The <a> element creates a hyperlink to any resource that's accessible via a URL, such as web pages, files, email addresses, or locations within the same page.

Widely Other

accesskey

The accesskey global HTML attribute gives a hint for generating a keyboard shortcut for the current element. The attribute value must consist of a single printable character.

Widely Other

Change event

The change event for <input>, <select>, and <textarea> elements fires when the user modifies the element's value. Unlike the input event, the change event does not necessarily fire on every alteration to an element's value.

Widely Other

CSS object model

The CSS object model API reads, creates, and modifies CSS stylesheets and inline styles. Also known as CSSOM.

Widely Other

Dataset

The dataset API attaches and accesses custom data on elements, using either the dataset property of HTMLElement or attributes prefixed with data-.

Widely Other

download

The download attribute for <a> elements loads the target URL as a file to be saved, instead of navigating to it. An optional attribute value sets a default file name.

Widely Other

Drag and Drop

The Drag and Drop API lets users drag and drop elements and external files such as images onto web pages. Developers can customize which elements can become draggable, the type of feedback the draggable elements produce, and the droppable elements.

Widely Other

enterkeyhint

The enterkeyhint global HTML attribute sets the label for a virtual keyboard's Enter key. For example, enterkeyhint="search" may label the key with a magnifying glass icon.

Widely Other

Focus events

Focus events, such as focus and blur, fire when an element gets or loses focus.

Widely Other

ImageBitmapRenderingContext

The ImageBitmapRenderingContext API is the "bitmaprenderer" rendering context for the <canvas> element. It is commonly used to transfer frames from an OffscreenCanvas to a user-visible <canvas> element.

Widely Other

lang

The lang global HTML attribute defines the language of an element. It's used by assistive technology to correctly read the content, translation tools to select the origin language, and other applications.

Widely Other

Media playback quality

The getVideoPlaybackQuality() method of HTMLVideoElement returns metrics that can be used to determine the playback quality of a video, such as how many frames were dropped.

Widely Other

Mouse events

Mouse events, such as click, mousedown, or mousemove, fire when users interact with an input or pointing device such as a mouse, trackpad, or touchscreen.

Widely Other

spellcheck

The spellcheck global HTML attribute sets whether the browser may check an element for spelling errors.

Widely Other

style (attribute)

The style global HTML attribute applies inline CSS styling declarations to individual elements.

Widely Other

title (attribute)

The title global HTML attribute sets information about an element, such as a name or description. The value is typically shown as a tooltip that appears on mouse over. Since it's not often available to touch-only, keyboard-only, or assistive technology users, it's not a substitute for other text.

Widely Other

translate

The translate HTML attribute marks whether an element's text should be translated.

Widely Other

WebGL2

The WebGL2RenderingContext API is the "webgl2" rendering context for the <canvas> element. It represents a space for drawing two- and three-dimensional graphics and animations. It corresponds to OpenGL ES 3.0.

Widely Performance

<link rel="modulepreload">

The rel="modulepreload" attribute for the <link> HTML element indicates that a module script should be fetched, parsed, and compiled preemptively, and stored for later execution.

Widely Performance

<link rel="preconnect">

The rel="preconnect" attribute for the <link> HTML element is a hint to the browser that the page or user is likely to request resources from another origin, so the browser should preemptively start a connection to the href value's origin.

Widely Performance

<link rel="preload">

The rel="preload" attribute for the <link> HTML element requests resources, such as images or style sheets, that the page needs soon, so the browser may prioritize them for loading before rendering begins.

Widely Sectioning

<aside>

The <aside> element represents a portion of a document whose content is only indirectly related to the document's main content.

Widely Sectioning

<header> and <footer>

The <header> and <footer> HTML elements represent content that precedes and follows the main page content, respectively.

Widely Sectioning

<main>

The <main> element represents the dominant content of a document. It is commonly used together with <header> and <footer>.

Widely Sectioning

<nav>

The <nav> element represents a section of a page whose purpose is to provide navigation links, either within the current document or to other documents.

Widely Sectioning

<section>

The <section> element is a generic standalone section of a document, which doesn't have a more specific semantic element to represent it.

Widely Security and APIs

Content Security Policy (CSP)

Content Security Policy (CSP) helps to mitigate certain security threats, including cross-site scripting (XSS) and clickjacking attacks. It consists of a set of directives from a website to a browser, which instruct the browser to restrict the things that the site is allowed to do.

Widely Security and APIs

Web authentication

The web authentication API allows you to create public key-based credentials and use them for authentication, such as when signing in. Also known as WebAuthn.

Widely Security and privacy

Referrer policy

The Referrer-Policy HTTP header and referrerpolicy HTML attributes control whether requests have the Referer header and what information the header contains.

Widely Security and privacy

Sandboxed iframes

The sandbox attribute for the <iframe> HTML element sets many security restrictions on the iframe, such as preventing form submissions or opening modal dialogs. Optional allow- values relax specific restrictions.

Widely Text and structure

<b>

The <b> HTML element draws reader's attention to text, styling text as bold by default.

Widely Text and structure

<base>

The <base> element sets the base URL (the URL that relative URLs are relative to) for all relative URLs in the document.

Widely Text and structure

<bdi>

The <bdi> element isolates text that may have a different text direction from its surrounding text. This prevents the browser's bidirectional text algorithm from affecting or being affected by the direction of the surrounding text.

Widely Text and structure

<bdo>

The <bdo> element overrides the directionality of text, so that the text within is rendered in a different direction than the surrounding text.

Widely Text and structure

<body>

The <body> element represents the content of an HTML document.

Widely Text and structure

<br>

The <br> element produces line breaks in text.

Widely Text and structure

<cite>

The <cite> element represents the title of a quoted, referenced, or mentioned creative work, such as a film or book.

Widely Text and structure

<code>

The <code> element displays its contents as a fragment of computer code.

Widely Text and structure

<del>

The <del> element element represents a range of text that has been deleted from a document, styling text as strikethrough by default.

Widely Text and structure

<dfn>

The <dfn> element marks a term to be defined, styling text as italic by default.

Widely Text and structure

<div>

The <div> HTML element is the generic container for content.

Widely Text and structure

<em>

The <em> HTML element emphasizes or stresses the content, styling text as italic by default.

Widely Text and structure

<embed>

The <embed> element represents an external resource such as a PDF or SVG document. It was historically used for plugins such as Shockwave Flash.

Widely Text and structure

<head>

The <head> element contains machine-readable information (metadata) about the document, such as the title, <script> and <style> elements, and <meta> elements.

Widely Text and structure

<hgroup>

The <hgroup> element represents a heading and related content.

Widely Text and structure

<hr>

The <hr> element represents a thematic break between paragraphs, often shown as a horizontal rule.

Widely Text and structure

<html>

The <html> element represents the top-level of an HTML document and is referred to as the root element.

Widely Text and structure

<i>

The <i> HTML element identifies idiomatic content, styling text as italic by default.

Widely Text and structure

<ins>

The <ins> element element represents a range of text that has been inserted into a document, styling text as underlined by default.

Widely Text and structure

<kbd>

The <kbd> element represents textual user input, such as keyboard or voice input, styling text in monospaced type by default.

Widely Text and structure

<link>

The <link> element creates a relationship between the current document and an external resource, such as a stylesheet or favicon.

Widely Text and structure

<mark>

The <mark> element represents text which is marked or highlighted for reference or notation purposes.

Widely Text and structure

<menu>

The <menu> element represents an unordered list of action items (<li>), such as a toolbar. It is a semantic alternative to the <ul> element.

Widely Text and structure

<meta>

The <meta> element represents metadata about the page used by the browser or search engines, including description, keywords, and character sets.

Widely Text and structure

<object>

The <object> element represents an external resource such as a PDF or SVG document. It was historically used for plugins such as Shockwave Flash.

Widely Text and structure

<q>

The <q> element represents a short inline quotation.

Widely Text and structure

<s>

The <s> HTML element indicates text that is no longer relevant or accurate, styling text as strikethrough by default.

Widely Text and structure

<samp>

The <samp> element represents a sample or quoted output from a computer program. Styled in a monospace font by default.

Widely Text and structure

<script> and <noscript>

The <script> element contains or loads data or executable code. This is typically used to load JavaScript code. The <noscript> element represents alternative content to show when scripting is not allowed.

Widely Text and structure

<slot>

The <slot> HTML element is a placeholder inside a web component where consumers of the component can insert their own markup.

Widely Text and structure

<small>

The <small> element represents side-comments and small print, like copyright and legal text, independent of its styled presentation. Styled in a reduced font size by default.

Widely Text and structure

<span>

The <span> HTML element is the generic inline container for content.

Widely Text and structure

<strong>

The <strong> HTML element brings attention to the content, styling text as bold by default.

Widely Text and structure

<style>

The <style> element embeds an inline CSS stylesheet in a document.

Widely Text and structure

<sub> and <sup>

The <sub> and <sup> elements sets inline text to be displayed as subscript or superscript for solely typographical reasons.

Widely Text and structure

<template>

The <template> HTML element holds HTML fragments which you can clone and insert into the document using JavaScript.

Widely Text and structure

<time>

The <time> HTML element represents a time, such as a calendar date, clock time, or duration. It may include the datetime attribute to translate dates into machine-readable format.

Widely Text and structure

<title>

The <title> element sets the title of the document and exposes it to users via the UI of the browser or app they're using and through assistive technology.

Widely Text and structure

<u>

The <u> HTML element makes non-textual annotations, styling text as underlined by default.

Widely Text and structure

<var>

The <var> element represents the name of a variable in a mathematical expression or a programming context.

Widely Text and structure

<wbr>

The <wbr> HTML element represents a word break opportunity, to explicitly mark a place within a word where a line might be broken.

Widely Text and structure

Image maps

The <area> and <map> elements define a clickable area on an image.

Widely Text semantics

<abbr>

The <abbr> HTML element represents an abbreviation or acronym.

Widely Text semantics

<blockquote>

The <blockquote> element represents an extended quotation, styling contents as an indented block by default.

Widely Text semantics

<data>

The <data> element links a given piece of content with a machine-readable translation.

Widely Text semantics

<p>

The <p> element represents a paragraph of text.

Widely Text semantics

<pre>

The <pre> element represents a block element of preformatted text that is presented exactly as written, including all white space.

Widely Web Components

Form-associated custom elements

Custom elements may act like built-in form elements, via the the attachInternals() method of HTMLElement and the ElementInternals API.

Widely Web Components

Imperative slot assignment

The assign() method for <slot> elements assigns nodes to the slot, as an alternative to using the slot and name HTML attributes. The nodes must be children of a shadow host and the shadow root must be created with the slotAssignment set to "manual". Also known as manual slot assignment.

Available with conditions

Newly available
Newly Canvas and graphics

willReadFrequently

The optional willReadFrequently parameter of a canvas's getContext() method permits the browser to optimize for frequent getImageData() calls by avoiding hardware acceleration. Also known as multiple readback.

Newly Embedded

Lazy-loading images and iframes

The loading="lazy" attribute for <img> and <iframe> elements blocks loading the external resource until the user scrolls to that element's part of the page.

Newly Embedded

Screen wake lock

The navigator.wakeLock.request("screen") API prevents the device's screen from dimming or being turned off.

Newly Forms

<input type="file" webkitdirectory>

The <input type="file" webkitdirectory> HTML element shows a file picker from which users can choose a folder to upload with the form.

Newly Forms

Invoker commands

The command and commandfor attributes for the <button> HTML element dispatch an action to an element when the button is invoked (by click or keystroke), as a declarative alternative to addEventListener() calls or onclick attribute handlers.

Newly Media

preservesPitch

The preservesPitch property for <audio> or <video> adjusts the pitch of audio to sound more natural when the playback rate is faster or slower than the default.

Newly Media

requestVideoFrameCallback()

The requestVideoFrameCallback() method for <video> schedules a function that runs with the next video frame. It is similar to requestAnimationFrame(), but for video.

Newly Metadata and scripts

Declarative shadow DOM

The shadowrootmode attribute on <template> creates a shadow root without the use of JavaScript. It is a declarative alternative to the attachShadow() method.

Newly Metadata and scripts

Popover

The popover HTML attribute creates an overlay to display content on top of other page content. Popovers can be shown declaratively using HTML, or using the showPopover() method.

Newly Metadata and scripts

Preloading responsive images

The imagesrcset and imagesizes attributes with the rel="preload" attribute for the <link> HTML element starts fetching responsive images before they're found in the body of the document.

Newly Other

contenteditable="plaintext-only"

The contenteditable="plaintext-only" global HTML attribute allows the user to edit the content of an element, but prevents rich-text formatting.

Newly Other

Scroll to text fragment

Text fragments are URL fragments on the form #:~:text=snippet and link to a snippet of text within a page. The browser may scroll, highlight, or otherwise bring that text to the reader's attention.

Newly Resource hints

<link rel="dns-prefetch">

The rel="dns-prefetch" attribute for the <link> HTML element is a hint to the browser that the page or user is likely to request resources from another domain, so the browser should preemptively resolve DNS for the href value's domain.

Newly Resource hints

Fetch priority

The fetch() priority option and the fetchpriority HTML attribute give hints to the browser about which requests to do before other requests of the same type.

Newly Security and APIs

Storage access

The document.requestStorageAccess() method allows content in iframes to request storing and reading cookies and other site data, while the document.hasStorageAccess() method checks if such access is granted.

Newly Security and APIs

Trusted types

Trusted types allow you to lock down insecure parts of the DOM API and prevent client-side cross-site scripting (XSS) attacks.

Newly Text and structure

<search>

The <search> HTML element is a container that represents the parts of the web page with search functionality.

Newly Text and structure

dialog.requestClose()

The requestClose() method of a <dialog> HTML element closes the dialog, firing a cancel event first, which listeners can use to prevent the dialog from closing. This differs from the close() method, which only fires the non-cancelable close event.

Newly Text and structure

Mutually exclusive <details> elements

Multiple <details> elements which use the same name attribute are mutually exclusive. When one member of the group is opened, all other members are closed.

Browse by category

WidelyCanvas and graphics

2D canvas

The CanvasRenderingContext2D API is the "2d" rendering context for the <canvas> element. It represents a flat, two-dimensional space for drawing graphics and animations.

Canvas and graphics
WidelyCanvas and graphics

captureStream() for <canvas>

The captureStream() method for <canvas> elements returns a MediaStream which includes a CanvasCaptureMediaStreamTrack representing real-time video of the canvas image. You can use this to record the canvas, or send it elsewhere, such as another canvas or WebRTC connection.

CanvasMediaStreamCapture
WidelyCanvas and graphics

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.

CanvasWorkerPerformance
WidelyCanvas and graphics

WebGL

The WebGLRenderingContext API is the "webgl" rendering context for the <canvas> element. It represents a space for drawing two- and three-dimensional graphics and animations.

WebGL3DGraphics
WidelyData display

<meter>

The <meter> element represents a scalar value within a known range or a fractional value, typically shown as a progress bar.

DataMeasurementsStatus
WidelyData display

<progress>

The <progress> element displays an indicator showing the completion progress of a task, typically displayed as a progress bar.

DataProgressStatus
WidelyData display

Description list

The <dl>, <dt>, and <dd> HTML elements represent a list of terms and their associated descriptions. Use a description list to create glossaries or similar list of key-value pairs.

DataListsMetadata
WidelyData display

Tables

The <table> HTML element, with several related elements, represents tabular data in rows and columns of cells.

DataTablesStructure
WidelyDevice APIs

Gamepad

The navigator.getGamepads() API accesses and responds to signals from game controllers.

Device APIs
WidelyDevice APIs

Geolocation API

The navigator.geolocation API requests the user's latitude, longitude, heading, and speed.

DeviceLocationPermissions
WidelyDocument structure

<address>

The <address> element represents contact information for a person or people, or for an organization.

DocumentContactMetadata
WidelyDocument structure

<article>

The <article> element represents self-contained content, which is intended to be independently distributable or reusable, such as a comment, a blog post, or news article.

DocumentSectionsContent
WidelyDocument structure

<figure> and <figcaption>

The <figure> and <figcaption> HTML elements represent an illustration, diagram, text, or other self-contained reference content, with an optional caption.

DocumentMediaCaptions
WidelyDocument structure

<h1> through <h6>

The <h1> through <h6> HTML elements represent six levels of section headings, in order of decreasing importance.

DocumentHeadingsNavigation
WidelyDocument structure

<ol>, <ul>, and <li>

The <ol>, <ul>, and <li> HTML elements represent ordered and unordered lists.

DocumentListsSemantics
WidelyEditing

contenteditable

The contenteditable global HTML attribute allows the user to edit the content of an element, such as inserting or deleting text.

EditingRich textInput
WidelyEmbedded

Encrypted media extensions

The mediaKeys property of HTMLMediaElement and the navigator.requestMediaKeySystemAccess() method control the playback of content subject to digital rights management. Also known as EME.

EmbeddedMedia
WidelyEmbedded

Media capture

The navigator.mediaDevices.getUserMedia() API requests access to devices that produce audio or video streams, such as microphones or video cameras.

EmbeddedMedia
WidelyEmbedding

<iframe>

The <iframe> element embeds another HTML page into the current page.

EmbeddingDocumentsIsolation
WidelyEmbedding

srcdoc

The srcdoc attribute for the <iframe> HTML element sets a string of HTML to embed in the document. The value of srcdoc overrides loading a document from the src attribute.

EmbeddingSandboxingDocuments
WidelyForms

<button>

The <button> HTML element represents a button that triggers some action, such as submitting a form or opening a dialog, styled as a labeled rectangular box by default.

FormsInteractiveControls
WidelyForms

<fieldset> and <legend>

The <fieldset> and <legend> elements group several form control elements within a web form.

FormsGroupingSemantics
WidelyForms

<form>

The <form> element contains interactive controls for submitting information.

FormsSubmissionInput
WidelyForms

<input type="button">

The <input type="button"> HTML element represents a button that triggers some action, such as submitting a form or opening a dialog, styled as a labeled rectangular box by default. Not to be confused with the <button> element, which contains HTML content.

Forms
WidelyForms

<input type="checkbox">

The <input type="checkbox"> HTML element represents a tickable box with two states, checked and unchecked.

Forms
WidelyForms

<input type="file" multiple>

The <input type="file" multiple> HTML element shows a file picker from which users can choose one or more files to upload with a form.

Forms
WidelyForms

<input type="file">

The <input type="file"> HTML element shows a file picker from which users can choose a file to upload with the form.

Forms
WidelyForms

<input type="hidden">

The <input type="hidden"> HTML element represents a form field that is not shown visually but is still included in the form submission.

Forms
WidelyForms

<input type="image">

The <input type="image"> HTML element is an image that can be used to submit a form, like the <input type="submit"> element.

Forms
WidelyForms

<input type="number">

The <input type="number"> HTML element represents numeric input data.

Forms
WidelyForms

<input type="password">

The <input type="password"> HTML element represents a field for users to enter a password. The password is hidden from view, typically replaced by dots or asterisks.

Forms
WidelyForms

<input type="radio">

The <input type="radio"> HTML element represents one button in a group such that only one can be chosen at a time.

Forms
WidelyForms

<input type="range">

The <input type="range"> element represents a slider for choosing an inexact value between a minimum and maximum value.

Forms
WidelyForms

<input type="reset">

The <input type="reset"> HTML element represents a button that sets all form fields to their initial values.

Forms
WidelyForms

<input type="search">

The <input type="search"> HTML element represents a text field for search queries.

Forms
WidelyForms

<input type="submit">

The <input type="submit"> HTML element represents a button that triggers an action on its associated <form>, such as sending the form data to a server.

Forms
WidelyForms

<input>

The <input type="text"> HTML element allows the user to enter information into a form. By default, an <input> element is a text input.

Forms
WidelyForms

<label>

The <label> HTML element represents a caption for a form field.

FormsLabelsInput
WidelyForms

<output>

The <output> element represents the result of a calculation, user action, or form entry.

FormsCalculated valuesFeedback
WidelyForms

<select>

The <select> element provides a menu of options for a user to pick from, typically rendered as a dropdown list.

FormsSelectionControls
WidelyForms

<textarea>

The <textarea> element represents an editing control that allows users to enter multi-line, free-form, plain text.

FormsText inputMultiline
WidelyForms

autofocus

The autofocus HTML attribute gives focus to an element on page load.

FormsFocusInput
WidelyForms

Constraint validation API

Methods that validate form controls before submission, such as checkValidity(), reportValidity() and setCustomValidity().

FormsValidationInput
WidelyForms

Date and time <input> types

The <input type="date"> and <input type="time"> HTML elements show date and time pickers.

FormsDate and timeInput
WidelyForms

dirname

The dirname attribute of <textarea> and <input> HTML elements includes the field's writing direction as form data on submission.

Forms
WidelyForms

Email, telephone, and URL <input> types

The <input type="email">, <input type="tel">, and <input type="url"> HTML elements represent email address, telephone number, and URL fields in a form.

Forms
WidelyForms

inputmode

The inputmode global HTML attribute gives a hint about what type of data is to be entered into an <input> element, such as text, numeric, or email, so the browser may help the user enter data using an adapted input mechanism, such as an on-screen virtual keyboard.

FormsMobileKeyboard
WidelyGraphics

<canvas>

The <canvas> HTML element is a space to draw graphics in, using the 2D canvas API, WebGL, or WebGPU.

GraphicsCanvasRendering
WidelyInteraction

DOM

The DOM (Document Object Model) API represents HTML and XML documents as trees of nodes. You can use the API to inspect and modify the structure and content of a document.

DOMInteractionDocument
WidelyInteraction

Selection

The Selection API controls and modifies user text selections within the page.

Interaction
WidelyInteractive

<details>

The <details> element is a disclosure widget which can be expanded to reveal additional content. When closed, only the nested <summary> element is visible.

InteractiveDisclosureFAQ
WidelyInteractive

<dialog>

The <dialog> HTML element represents a modal or non-modal dialog box, such as a confirmation prompt or a subwindow used to enter data.

InteractiveDialogModal
WidelyInteractive

inert

The inert HTML attribute marks an element and its descendants as non-interactive. Inert elements don't get focus or fire click events.

InteractiveFocus managementModal
WidelyInteractive

tabindex

The tabindex HTML attribute make an element focusable, and sets the element's relative ordering for sequential focus navigation.

FocusKeyboardNavigation
WidelyMedia

<audio>

The <audio> element plays sound such as audio effects or music, optionally with controls provided by the browser.

MediaAudioPlayback
WidelyMedia

<img>

The <img> element adds an image into the document.

MediaImagesContent
WidelyMedia

<picture>

The <picture> element is used for art direction in responsive images, where a different image is displayed based on the <source> element.

MediaResponsive imagesPerformance
WidelyMedia

<source>

The <source> element sets a media resource for the <picture>, <video>, and <audio> elements.

MediaSourcesFormats
WidelyMedia

<video>

The <video> element plays videos or movies, optionally with controls provided by the browser.

MediaVideoPlayback
WidelyMedia

Text tracks

The <track> element is used as a child of the media elements that lets you specify a timed text track to be displayed in parallel with the media element.

MediaCaptionsAccessibility
WidelyMetadata and scripts

<ruby>

The <ruby> element produces small annotations that are rendered with its base text.

Metadata and scripts
WidelyMetadata and scripts

Import maps

A <script type="importmap"> HTML element provides an import map as a JSON string. An import map controls how the browser should resolve module specifiers when importing JavaScript modules.

Metadata and scripts
WidelyMetadata and scripts

JavaScript modules

JavaScript modules allow code to be organized into reusable units. Modules use import to load other modules and export to declare what is available to import from other modules. In HTML, modules are loaded with <script type="module">.

Metadata and scripts
WidelyMetadata and scripts

srcset and sizes

The srcset and sizes attributes for <img> elements set a list of possible sources for the image and a corresponding list of size conditions for choosing a source, to show a responsive image that fits the size of the display.

Metadata and scripts
WidelyNavigation

<a>

The <a> element creates a hyperlink to any resource that's accessible via a URL, such as web pages, files, email addresses, or locations within the same page.

NavigationLinksInteractive
WidelyOther

accesskey

The accesskey global HTML attribute gives a hint for generating a keyboard shortcut for the current element. The attribute value must consist of a single printable character.

Other
WidelyOther

Change event

The change event for <input>, <select>, and <textarea> elements fires when the user modifies the element's value. Unlike the input event, the change event does not necessarily fire on every alteration to an element's value.

Other
WidelyOther

CSS object model

The CSS object model API reads, creates, and modifies CSS stylesheets and inline styles. Also known as CSSOM.

CSSOMStylesJavaScript
WidelyOther

Dataset

The dataset API attaches and accesses custom data on elements, using either the dataset property of HTMLElement or attributes prefixed with data-.

Other
WidelyOther

download

The download attribute for <a> elements loads the target URL as a file to be saved, instead of navigating to it. An optional attribute value sets a default file name.

LinksDownloadFiles
WidelyOther

Drag and Drop

The Drag and Drop API lets users drag and drop elements and external files such as images onto web pages. Developers can customize which elements can become draggable, the type of feedback the draggable elements produce, and the droppable elements.

Other
WidelyOther

enterkeyhint

The enterkeyhint global HTML attribute sets the label for a virtual keyboard's Enter key. For example, enterkeyhint="search" may label the key with a magnifying glass icon.

FormsMobileInput
WidelyOther

Focus events

Focus events, such as focus and blur, fire when an element gets or loses focus.

Other
WidelyOther

ImageBitmapRenderingContext

The ImageBitmapRenderingContext API is the "bitmaprenderer" rendering context for the <canvas> element. It is commonly used to transfer frames from an OffscreenCanvas to a user-visible <canvas> element.

CanvasImageBitmapPerformance
WidelyOther

lang

The lang global HTML attribute defines the language of an element. It's used by assistive technology to correctly read the content, translation tools to select the origin language, and other applications.

LanguageGlobal attributeAccessibility
WidelyOther

Media playback quality

The getVideoPlaybackQuality() method of HTMLVideoElement returns metrics that can be used to determine the playback quality of a video, such as how many frames were dropped.

MediaPerformanceVideo
WidelyOther

Mouse events

Mouse events, such as click, mousedown, or mousemove, fire when users interact with an input or pointing device such as a mouse, trackpad, or touchscreen.

Other
WidelyOther

spellcheck

The spellcheck global HTML attribute sets whether the browser may check an element for spelling errors.

EditingText inputAssistive
WidelyOther

style (attribute)

The style global HTML attribute applies inline CSS styling declarations to individual elements.

Other
WidelyOther

title (attribute)

The title global HTML attribute sets information about an element, such as a name or description. The value is typically shown as a tooltip that appears on mouse over. Since it's not often available to touch-only, keyboard-only, or assistive technology users, it's not a substitute for other text.

Other
WidelyOther

translate

The translate HTML attribute marks whether an element's text should be translated.

TranslationContentGlobal attribute
WidelyOther

WebGL2

The WebGL2RenderingContext API is the "webgl2" rendering context for the <canvas> element. It represents a space for drawing two- and three-dimensional graphics and animations. It corresponds to OpenGL ES 3.0.

WebGL23DGraphics
WidelyPerformance

<link rel="modulepreload">

The rel="modulepreload" attribute for the <link> HTML element indicates that a module script should be fetched, parsed, and compiled preemptively, and stored for later execution.

PerformanceModulesLoading
WidelyPerformance

<link rel="preconnect">

The rel="preconnect" attribute for the <link> HTML element is a hint to the browser that the page or user is likely to request resources from another origin, so the browser should preemptively start a connection to the href value's origin.

PerformanceNetworkingResource hints
WidelyPerformance

<link rel="preload">

The rel="preload" attribute for the <link> HTML element requests resources, such as images or style sheets, that the page needs soon, so the browser may prioritize them for loading before rendering begins.

PerformanceResource hintsLoading
WidelySectioning

<aside>

The <aside> element represents a portion of a document whose content is only indirectly related to the document's main content.

Sectioning
WidelySectioning

<header> and <footer>

The <header> and <footer> HTML elements represent content that precedes and follows the main page content, respectively.

Sectioning
WidelySectioning

<main>

The <main> element represents the dominant content of a document. It is commonly used together with <header> and <footer>.

Sectioning
WidelySectioning

<nav>

The <nav> element represents a section of a page whose purpose is to provide navigation links, either within the current document or to other documents.

Sectioning
WidelySectioning

<section>

The <section> element is a generic standalone section of a document, which doesn't have a more specific semantic element to represent it.

Sectioning
WidelySecurity and APIs

Content Security Policy (CSP)

Content Security Policy (CSP) helps to mitigate certain security threats, including cross-site scripting (XSS) and clickjacking attacks. It consists of a set of directives from a website to a browser, which instruct the browser to restrict the things that the site is allowed to do.

SecurityPolicyCSP
WidelySecurity and APIs

Web authentication

The web authentication API allows you to create public key-based credentials and use them for authentication, such as when signing in. Also known as WebAuthn.

AuthenticationPasskeysSecurity
WidelySecurity and privacy

Referrer policy

The Referrer-Policy HTTP header and referrerpolicy HTML attributes control whether requests have the Referer header and what information the header contains.

SecurityPrivacyNetworking
WidelySecurity and privacy

Sandboxed iframes

The sandbox attribute for the <iframe> HTML element sets many security restrictions on the iframe, such as preventing form submissions or opening modal dialogs. Optional allow- values relax specific restrictions.

SecurityEmbeddingIsolation
WidelyText and structure

<b>

The <b> HTML element draws reader's attention to text, styling text as bold by default.

Text and structure
WidelyText and structure

<base>

The <base> element sets the base URL (the URL that relative URLs are relative to) for all relative URLs in the document.

DocumentURLsMetadata
WidelyText and structure

<bdi>

The <bdi> element isolates text that may have a different text direction from its surrounding text. This prevents the browser's bidirectional text algorithm from affecting or being affected by the direction of the surrounding text.

Text and structure
WidelyText and structure

<bdo>

The <bdo> element overrides the directionality of text, so that the text within is rendered in a different direction than the surrounding text.

Text and structure
WidelyText and structure

<body>

The <body> element represents the content of an HTML document.

DocumentStructureContent
WidelyText and structure

<br>

The <br> element produces line breaks in text.

Text and structure
WidelyText and structure

<cite>

The <cite> element represents the title of a quoted, referenced, or mentioned creative work, such as a film or book.

Text and structure
WidelyText and structure

<code>

The <code> element displays its contents as a fragment of computer code.

Text and structure
WidelyText and structure

<del>

The <del> element element represents a range of text that has been deleted from a document, styling text as strikethrough by default.

Text and structure
WidelyText and structure

<dfn>

The <dfn> element marks a term to be defined, styling text as italic by default.

Text and structure
WidelyText and structure

<div>

The <div> HTML element is the generic container for content.

Text and structure
WidelyText and structure

<em>

The <em> HTML element emphasizes or stresses the content, styling text as italic by default.

Text and structure
WidelyText and structure

<embed>

The <embed> element represents an external resource such as a PDF or SVG document. It was historically used for plugins such as Shockwave Flash.

EmbedMediaExternal content
WidelyText and structure

<head>

The <head> element contains machine-readable information (metadata) about the document, such as the title, <script> and <style> elements, and <meta> elements.

Text and structure
WidelyText and structure

<hgroup>

The <hgroup> element represents a heading and related content.

Text and structure
WidelyText and structure

<hr>

The <hr> element represents a thematic break between paragraphs, often shown as a horizontal rule.

Text and structure
WidelyText and structure

<html>

The <html> element represents the top-level of an HTML document and is referred to as the root element.

Text and structure
WidelyText and structure

<i>

The <i> HTML element identifies idiomatic content, styling text as italic by default.

Text and structure
WidelyText and structure

<ins>

The <ins> element element represents a range of text that has been inserted into a document, styling text as underlined by default.

Text and structure
WidelyText and structure

<kbd>

The <kbd> element represents textual user input, such as keyboard or voice input, styling text in monospaced type by default.

Text and structure
WidelyText and structure

<link>

The <link> element creates a relationship between the current document and an external resource, such as a stylesheet or favicon.

Text and structure
WidelyText and structure

<mark>

The <mark> element represents text which is marked or highlighted for reference or notation purposes.

Text and structure
WidelyText and structure

<menu>

The <menu> element represents an unordered list of action items (<li>), such as a toolbar. It is a semantic alternative to the <ul> element.

Text and structure
WidelyText and structure

<meta>

The <meta> element represents metadata about the page used by the browser or search engines, including description, keywords, and character sets.

Text and structure
WidelyText and structure

<object>

The <object> element represents an external resource such as a PDF or SVG document. It was historically used for plugins such as Shockwave Flash.

Text and structure
WidelyText and structure

<q>

The <q> element represents a short inline quotation.

Text and structure
WidelyText and structure

<s>

The <s> HTML element indicates text that is no longer relevant or accurate, styling text as strikethrough by default.

Text and structure
WidelyText and structure

<samp>

The <samp> element represents a sample or quoted output from a computer program. Styled in a monospace font by default.

Text and structure
WidelyText and structure

<script> and <noscript>

The <script> element contains or loads data or executable code. This is typically used to load JavaScript code. The <noscript> element represents alternative content to show when scripting is not allowed.

Text and structure
WidelyText and structure

<slot>

The <slot> HTML element is a placeholder inside a web component where consumers of the component can insert their own markup.

Text and structure
WidelyText and structure

<small>

The <small> element represents side-comments and small print, like copyright and legal text, independent of its styled presentation. Styled in a reduced font size by default.

Text and structure
WidelyText and structure

<span>

The <span> HTML element is the generic inline container for content.

Text and structure
WidelyText and structure

<strong>

The <strong> HTML element brings attention to the content, styling text as bold by default.

Text and structure
WidelyText and structure

<style>

The <style> element embeds an inline CSS stylesheet in a document.

Text and structure
WidelyText and structure

<sub> and <sup>

The <sub> and <sup> elements sets inline text to be displayed as subscript or superscript for solely typographical reasons.

Text and structure
WidelyText and structure

<template>

The <template> HTML element holds HTML fragments which you can clone and insert into the document using JavaScript.

Text and structure
WidelyText and structure

<time>

The <time> HTML element represents a time, such as a calendar date, clock time, or duration. It may include the datetime attribute to translate dates into machine-readable format.

Text and structure
WidelyText and structure

<title>

The <title> element sets the title of the document and exposes it to users via the UI of the browser or app they're using and through assistive technology.

Text and structure
WidelyText and structure

<u>

The <u> HTML element makes non-textual annotations, styling text as underlined by default.

Text and structure
WidelyText and structure

<var>

The <var> element represents the name of a variable in a mathematical expression or a programming context.

Text and structure
WidelyText and structure

<wbr>

The <wbr> HTML element represents a word break opportunity, to explicitly mark a place within a word where a line might be broken.

Text and structure
WidelyText and structure

Image maps

The <area> and <map> elements define a clickable area on an image.

Text and structure
WidelyText semantics

<abbr>

The <abbr> HTML element represents an abbreviation or acronym.

TextSemanticsAbbreviation
WidelyText semantics

<blockquote>

The <blockquote> element represents an extended quotation, styling contents as an indented block by default.

TextQuotationsContent
WidelyText semantics

<data>

The <data> element links a given piece of content with a machine-readable translation.

TextMachine-readableMetadata
WidelyText semantics

<p>

The <p> element represents a paragraph of text.

TextParagraphsContent
WidelyText semantics

<pre>

The <pre> element represents a block element of preformatted text that is presented exactly as written, including all white space.

TextCodeWhitespace
WidelyWeb Components

Form-associated custom elements

Custom elements may act like built-in form elements, via the the attachInternals() method of HTMLElement and the ElementInternals API.

Web ComponentsFormsCustom elements
WidelyWeb Components

Imperative slot assignment

The assign() method for <slot> elements assigns nodes to the slot, as an alternative to using the slot and name HTML attributes. The nodes must be children of a shadow host and the shadow root must be created with the slotAssignment set to "manual". Also known as manual slot assignment.

Web ComponentsSlotsComposition
NewlyCanvas and graphics

willReadFrequently

The optional willReadFrequently parameter of a canvas's getContext() method permits the browser to optimize for frequent getImageData() calls by avoiding hardware acceleration. Also known as multiple readback.

Canvas and graphics
NewlyEmbedded

Lazy-loading images and iframes

The loading="lazy" attribute for <img> and <iframe> elements blocks loading the external resource until the user scrolls to that element's part of the page.

Embedded
NewlyEmbedded

Screen wake lock

The navigator.wakeLock.request("screen") API prevents the device's screen from dimming or being turned off.

Embedded
NewlyForms

<input type="file" webkitdirectory>

The <input type="file" webkitdirectory> HTML element shows a file picker from which users can choose a folder to upload with the form.

Forms
NewlyForms

Invoker commands

The command and commandfor attributes for the <button> HTML element dispatch an action to an element when the button is invoked (by click or keystroke), as a declarative alternative to addEventListener() calls or onclick attribute handlers.

FormsInteraction
NewlyMedia

preservesPitch

The preservesPitch property for <audio> or <video> adjusts the pitch of audio to sound more natural when the playback rate is faster or slower than the default.

Media
NewlyMedia

requestVideoFrameCallback()

The requestVideoFrameCallback() method for <video> schedules a function that runs with the next video frame. It is similar to requestAnimationFrame(), but for video.

Media
NewlyMetadata and scripts

Declarative shadow DOM

The shadowrootmode attribute on <template> creates a shadow root without the use of JavaScript. It is a declarative alternative to the attachShadow() method.

Metadata and scripts
NewlyMetadata and scripts

Popover

The popover HTML attribute creates an overlay to display content on top of other page content. Popovers can be shown declaratively using HTML, or using the showPopover() method.

Metadata and scripts
NewlyMetadata and scripts

Preloading responsive images

The imagesrcset and imagesizes attributes with the rel="preload" attribute for the <link> HTML element starts fetching responsive images before they're found in the body of the document.

Metadata and scripts
NewlyOther

contenteditable="plaintext-only"

The contenteditable="plaintext-only" global HTML attribute allows the user to edit the content of an element, but prevents rich-text formatting.

Other
NewlyOther

Scroll to text fragment

Text fragments are URL fragments on the form #:~:text=snippet and link to a snippet of text within a page. The browser may scroll, highlight, or otherwise bring that text to the reader's attention.

Other
NewlyResource hints

<link rel="dns-prefetch">

The rel="dns-prefetch" attribute for the <link> HTML element is a hint to the browser that the page or user is likely to request resources from another domain, so the browser should preemptively resolve DNS for the href value's domain.

Resource hints
NewlyResource hints

Fetch priority

The fetch() priority option and the fetchpriority HTML attribute give hints to the browser about which requests to do before other requests of the same type.

Resource hints
NewlySecurity and APIs

Storage access

The document.requestStorageAccess() method allows content in iframes to request storing and reading cookies and other site data, while the document.hasStorageAccess() method checks if such access is granted.

Security and APIsSecurity
NewlySecurity and APIs

Trusted types

Trusted types allow you to lock down insecure parts of the DOM API and prevent client-side cross-site scripting (XSS) attacks.

Security and APIsSecurity
NewlyText and structure

<search>

The <search> HTML element is a container that represents the parts of the web page with search functionality.

Text and structure
NewlyText and structure

dialog.requestClose()

The requestClose() method of a <dialog> HTML element closes the dialog, firing a cancel event first, which listeners can use to prevent the dialog from closing. This differs from the close() method, which only fires the non-cancelable close event.

Text and structureInteraction
NewlyText and structure

Mutually exclusive <details> elements

Multiple <details> elements which use the same name attribute are mutually exclusive. When one member of the group is opened, all other members are closed.

Text and structure
LimitedCanvas and graphics

2D canvas opacity

The optional alpha parameter of a 2D canvas's getContext() method sets whether the canvas has an alpha transparency channel. If set to false, then this permits the browser to optimize compositing for an opaque canvas.

Canvas and graphicsGraphics
LimitedCanvas and graphics

Color management for 2D canvas

The optional colorSpace parameter of a 2D canvas's getContext() method chooses the color representation, such as "srgb" or "display-p3".

Canvas and graphicsGraphics
LimitedCanvas and graphics

contextlost and contextrestored

The contextlost event for <canvas> fires when the canvas backing storage is lost, while the contextrestored event fires when it is recreated.

Canvas and graphics
LimitedCanvas and graphics

Desynchronized 2D canvas

The optional desynchronized parameter of a canvas's getContext() method permits the browser to draw a 2D canvas independently of the event loop. This can reduce drawing latency.

Canvas and graphicsGraphics
LimitedCanvas and graphics

Desynchronized WebGL canvas

The optional desynchronized parameter of a canvas's getContext() method permits the browser to draw a WebGL canvas independently of the event loop. This can reduce drawing latency.

Canvas and graphicsGraphics
LimitedCanvas and graphics

WebGPU

The navigator.gpu API performs operations such as rendering and computation on dedicated graphics hardware (also known as a Graphics Processing Unit).

Canvas and graphicsGraphics
LimitedDevice APIs

Accelerometer

The Accelerometer, LinearAccelerationSensor and GravitySensor APIs read the acceleration applied to a device in three dimensions, either including the effect of gravity, without its effect, or only its effect, respectively.

Device APIs
LimitedDevice APIs

Ambient light sensor

The AmbientLightSensor API returns the current light level in lux of the ambient light level around the device.

Device APIs
LimitedDevice APIs

CPU compute pressure

The PressureObserver API monitors CPU load, allowing you to adjust workloads in response to available computing resources. Also known as the Compute Pressure API.

Device APIs
LimitedDevice APIs

Gyroscope

The Gyroscope API reads the angular velocity of a device in three dimensions.

Device APIs
LimitedDevice APIs

Magnetometer

The Magnetometer API reads magnetic field sensor data from the device's magnetometer.

Device APIs
LimitedEmbedded

Attribution reporting

The attribution reporting API measures when an ad click or view leads to a conversion, such as a purchase on an advertiser site.

Embedded
LimitedEmbedded

Fullscreen API

The fullscreen API makes a specific element fill the whole screen and hides most browser UI.

EmbeddedInteraction
LimitedEmbedded

Idle detection

The IdleDetector API is used to notify a webpage of the user's idle, active, and locked state.

EmbeddedInteraction
LimitedEmbedded

Local fonts

The window.queryLocalFonts() method returns an array of locally-installed fonts, each represented by a FontData object.

Embedded
LimitedEmbedded

navigator.share()

The navigator.share() method invokes the device's native sharing mechanism and passes text, links, files, and other content to share targets. Also known as the Web Share API.

Embedded
LimitedEmbedded

Permissions policy

The Permissions-Policy response header and the allow attribute for <iframe> elements sets whether a policy-controlled feature, such as an API, may be used in a document.

EmbeddedSecurity
LimitedEmbedded

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.

EmbeddedMedia
LimitedEmbedded

Presentation API

The Presentation API shows or controls content on another display, such as a network-connected TV or projector.

Embedded
LimitedEmbedded

Screen capture

The navigator.mediaDevices.getDisplayMedia() method asks the user to choose a screen or portion of a screen (such as a window) to capture as a media stream.

EmbeddedMedia
LimitedEmbedded

Topics

The topics API reports a user's likely subject-matter interests (as determined by the browser, known as topics) to iframes. This allows for interest-based advertising that does not rely on user's exact browsing history, third-party cookies, or fingerprinting.

Embedded
LimitedEmbedded

Web Bluetooth

The Web Bluetooth API enables selecting and communicating with nearby Bluetooth devices.

Embedded
LimitedEmbedded

Web MIDI

The Web MIDI API enables selecting MIDI input and output devices and sending and receiving MIDI messages.

EmbeddedForms
LimitedEmbedded

Web serial

The navigator.serial API communicates with devices over serial ports, such as microcontrollers.

Embedded
LimitedEmbedded

WebHID

The WebHID API provides access to Human Interface Devices (HID) that are connected to the user's device.

EmbeddedForms
LimitedEmbedded

WebUSB

The WebUSB API exposes USB compatible devices to web pages.

Embedded
LimitedEmbedded

Window management

The window.getScreenDetails() method gets information about the screens on a device, which you can use to place new windows on a specific screen with window.open().

Embedded
LimitedForms

`alpha` and `colorspace` attributes for `<input type=color>`

The ability to control the opacity of a color picked using <input type="color"> and determine the colorspace of the selected color.

Forms
LimitedForms

<datalist>

The <datalist> element sets recommended values for an <input> element. Browsers may show a dropdown menu of all values or match values as the user types.

FormsSuggestionsInput
LimitedForms

<input type="color">

The <input type="color"> HTML element shows a color picker from which users can choose a color value.

Forms
LimitedForms

Customizable <select>

The <select> element's appearance, including the button, selected option, picker dropdown, and options, can be customized using CSS.

Forms
LimitedForms

HTML media capture

The capture HTML attribute for <input type="file"> elements allows the user to capture media using the device's camera or microphone.

FormsMedia
LimitedForms

showPicker() for <input>

The showPicker() method for <input> elements shows the user interface for picking a value. For example, for <input type="date"> it shows the interface for picking a date.

Forms
LimitedForms

showPicker() for <select>

The showPicker() method for <select> elements shows the dropdown menu or other user interface for picking one of the options.

Forms
LimitedForms

writingsuggestions

The writingsuggestions HTML attribute turns on or off a browser's writing suggestions. Writing suggestions vary by browser. For example, if turned on then a browser might show inline text completions accepted by pressing Tab.

Forms
LimitedMedia

Audio and video tracks

The audioTracks and videoTracks APIs for media elements switch audio and video tracks during playback.

Media
LimitedMedia

captureStream() for <audio> and <video>

The captureStream() method for <audio> and <video> elements returns a MediaStream for the media element's content. You can use this to record media or send it elsewhere, such as a canvas or WebRTC connection.

Media
LimitedMedia

controlslist

The controlslist attribute for <audio> or <video> hides parts of the browser's built-in controls. For example, controlslist="nofullscreen" removes the button to play the video in fullscreen.

Media
LimitedMedia

fastSeek()

The fastSeek() method seeks an <audio> or <video> element as fast as possible, by seeking to a keyframe instead of exactly the requested time.

Media
LimitedMedia

Lazy-loading media

The loading="lazy" attribute for <video> and <audio> elements defers loading the media resource until the element is near the viewport. This matches the lazy-loading behavior for <img> and <iframe> elements.

Media
LimitedMedia

Remote playback

The Remote Playback API initiates and controls playback of media on connected remote devices, such as smart TVs with AirPlay or Chromecast capabilities.

Media
LimitedMetadata and scripts

<link rel="expect">

The rel="expect" attribute for the <link> HTML element is a hint to the browser to block rendering until the element that the href value references is connected to the document and fully parsed.

Metadata and scripts
LimitedMetadata and scripts

<meta name="theme-color">

The name="theme-color" attribute for the <meta> HTML element sets the preferred color to customize the display of the page or the surrounding browser user interface.

Metadata and scripts
LimitedMetadata and scripts

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.

Metadata and scripts
LimitedMetadata and scripts

Compression Dictionary Transport

Compression Dictionary Transport is a mechanism for using designated HTTP responses as an external dictionary for future HTTP responses for compression schemes that support using external dictionaries (e.g., Brotli and Zstandard)

Metadata and scripts
LimitedMetadata and scripts

hidden="until-found"

The hidden="until-found" attribute hides an element until it is found using the browser's find-in-page search or it is directly navigated to by following a URL fragment.

Metadata and scripts
LimitedMetadata and scripts

Interest invokers

Interest invokers, registered by the interestfor HTML attribute, trigger events and actions on a target element when a user shows interest in the element, through behaviors such as hover, focus, or long-press. Pseudo-elements apply styles to sources and targets of interest.

Metadata and scriptsInteraction
LimitedMetadata and scripts

popover="hint"

The popover="hint" global HTML attribute creates a popover that is subordinate to popovers with a popover="auto" attribute. You can use this to create tooltips that don't dismiss auto popovers.

Metadata and scriptsInteraction
LimitedMetadata and scripts

Signature-based resource integrity

Signature-based resource integrity verifies a script's provenance by checking that the resource has been signed with a trusted key given by the <script> element's integrity attribute.

Metadata and scriptsSecurity
LimitedMetadata and scripts

Speculation rules

Speculation rules are hints to the browser to proactively download pages in the background so they appear instantly when the user navigates to them.

Metadata and scripts
LimitedOther

<fencedframe>

The <fencedframe> element embeds another HTML page into the current page in a more secure and privacy-preserving way than <iframe> elements.

Other
LimitedOther

<img sizes="auto" loading="lazy">

The sizes="auto" attribute for the <img> HTML element sets the layout size for the image based on the computed layout size when choosing a source from the srcset. This attribute only applies to images with the loading="lazy" attribute.

Other
LimitedOther

<meta name="application-title">

The name="application-title" attribute for the <meta> HTML element sets an installed web application's title bar text.

Other
LimitedOther

Alternative style sheets

The rel="alternate stylesheet" attribute for the <link> HTML element offers an alternative style option to users.

Other
LimitedOther

autocapitalize

The autocapitalize global HTML attribute sets the virtual keyboard capitalization behavior for user input on an element, such as the first letter of sentences or all words.

OtherForms
LimitedOther

autocorrect

The autocorrect global HTML attribute controls whether to automatically correct spelling or punctuation errors for user input.

OtherForms
LimitedOther

CSS typed object model

The CSSStyleValue and its subclasses represent CSS values as distinct types instead of only strings. Also known as typed OM.

Other
LimitedOther

Desynchronized WebGL2 canvas

The optional desynchronized parameter of a canvas's getContext() method permits the browser to draw a WebGL2 canvas independently of the event loop. This can reduce drawing latency.

OtherGraphics
LimitedOther

EditContext

The EditContext API allows you to build rich text editors that support advanced text input, such as Input Method Editor (IME) composition, an emoji picker, or other platform-specific editing UI.

Other
LimitedOther

Feature policy

The Feature-Policy response header sets whether a policy-controlled feature, such as an API, may be used in a document. Not to be confused with permissions policy.

OtherSecurity
LimitedOther

Media source

The MediaSource API is a custom data source for media elements commonly used for adaptive streaming. Also known as Media Source Extensions (MSE).

OtherMedia
LimitedOther

MediaController

The playback of multiple <video> or <audio> elements can be coordinated by a MediaController instance, for example to synchronize a sign-language interpreter track with the main video track.

OtherMedia
LimitedOther

Payment request

The PaymentRequest API prompts the user to make a payment through the browser's user interface.

Other
LimitedOther

ping

The ping attribute for <a> elements sets a URL to send a POST request to when the <a> is clicked. This is typically used for outbound link reporting.

Other
LimitedOther

Private click measurement

The attributionsourceid and attributiondestination attributes for <a> elements measure clicks across websites without associating a click to a specific session. Not to be confused with attribution reporting. Also known as PCM.

Other
LimitedOther

Virtual keyboard

The navigator.virtualKeyboard API inspects and controls on-screen virtual keyboards. You can use it to programmatically hide or show a virtual keyboard or respond to the keyboard disappearing or appearing.

Other
LimitedOther

Web app manifest

A web app manifest file provides metadata about the site. The browser can use the metadata to install the site as a standalone application on the user's device. The metadata usually includes the app's name, icon, description, and ways in which the app wishes to integrate with the device.

Other
LimitedOther

WebXR

The navigator.xr API represents the browser's virtual reality or augmented reality system. You can use to request a WebXR session.

OtherForms
LimitedResource hints

<link rel="prefetch">

The rel="prefetch" attribute for the <link> HTML element is a hint to the browser that the user is likely to navigate to a resource, so the browser should preemptively fetch and cache the resource.

Resource hints
LimitedSecurity and APIs

Credentialless iframes

The credentialless attribute for the <iframe> HTML element loads third-party content in an ephemeral context and does not send any credentials such as cookies. When using cross-origin isolation, this allows you to embed content that does not send Cross-Origin-Embedder-Policy headers.

Security and APIsSecurity
LimitedSecurity and APIs

Shared storage

The sharedStorage API stores data to a shared space where the data can then be processed without the ability to track users across the different sites they visit. A common use case is measuring the reach of third-party ads without using user-tracking cookies.

Security and APIsSecurity
LimitedSecurity and APIs

WebOTP

The OTPCredential API represents a one-time-password (OTP).

Security and APIs
LimitedText and structure

<dialog closedby>

The closedby HTML attribute for <dialog> sets which user actions close a dialog. For example, closedby="any" allows the dialog to be closed by clicking outside of it.

Text and structureInteraction
LimitedText and structure

Table styling

Attributes and properties of table elements, such as align, vAlign, noWrap, bgcolor, or char set various visual presentation properties of the table and its sections and cells.

Text and structure
LimitedWeb Components

Customized built-in elements

Customized built-in elements are HTML elements that extend built-in elements using the is attribute, to add new behaviors that you define.

Web Components
LimitedWeb Components

Scoped custom element registries

The CustomElementRegistry() constructor creates a new custom element registry that's separate from the global window.customElements registry. Creating more than one registry is useful for multiple custom elements that have the same tag name to coexist.

Web Components