This survey closed on August 31, 2025.

Display math directly in HTML, using MathML.

html
<!-- x² + 1 -->
<math>
  <msup><mi>x</mi><mn>2</mn></msup>
  <mo>+</mo><mn>1</mn>
</math>
Tell us more:
Tell us more:
Tell us more:

Embed interactive maps in HTML.

html
<mapviewer controls width="600" height="400">
  <maplayer src="osm.mapml"></maplayer>
</mapviewer>
Tell us more:
Tell us more:
Tell us more:

A set of directives from a website to a browser, that helps to detect and mitigate XSS attacks.

http
Content-Security-Policy: script-src 'self';
Tell us more:
Tell us more:
Tell us more:

element.setHTML() and Document.parseHTML(). API to prevent XSS attacks by sanitizing untrusted strings of HTML.

js
greeting.setHTML('Hello ' + nameInput.value);
Tell us more:
Tell us more:
Tell us more:

Hide an element until it is found (e.g. via a find-in-page search or when targeted by the URL hash).

html
<section class="drawer" aria-expanded="false" hidden="until-found">
  <!-- content -->
</section>
Tell us more:
Tell us more:
Tell us more:

Language-sensitive segmentation of text into graphemes, words or sentences.

js
const segmenterFr = new Intl.Segmenter("fr", { granularity: "word" });
const string1 = "Que ma joie demeure";

const iterator1 = segmenterFr.segment(string1)[Symbol.iterator]();

console.log(iterator1.next().value.segment);
// Expected output: 'Que'

console.log(iterator1.next().value.segment);
// Expected output: ' '
Tell us more:
Tell us more:
Tell us more:

The Intl.Locale API parses Unicode locale identifiers, with language, region, and script codes, such as zh-Hans-CN or en-GB.

js
const us = new Intl.Locale("en-US");
Tell us more:
Tell us more:
Tell us more:

Import HTML files via JS imports and access their elements and JS exports.

html
<script type="module">
	import { TabList } from "./tablist.html" with { type: 'html' };
	customElements.define("tab-list", TabList);
</script>
Tell us more:
Tell us more:
Tell us more:

A mechanism for holding HTML that is not to be rendered immediately but may be utilized later via JS.

html
<template id="counter">
	<div class="counter">Clicked {{ times }} times</div>
</template>
Tell us more:
Tell us more:
Tell us more:

Think of content elements (iframes, headings, tables, sections), machine-readable data, internationalization & localization, etc. Missing features, browser incompatibilities, and other problems you face are all fair game.

State of HTML 2025