staticdata.dev
Menu
Datasets About Contact

HTML Elements

A reference of the HTML elements (113 current, 32 obsolete or deprecated, as of October 2026) drawn from the MDN HTML element reference and the WHATWG HTML Living Standard. Each record captures the element's tag name, a concise description of its purpose, the HTML content categories it belongs to (such as flow, phrasing, metadata, sectioning, embedded, or interactive), whether it is a void element (self-closing, with no end tag), and whether it is deprecated in modern HTML.

v1.0.0 MIT 145 records Updated 2026-10-05 stable Source:  MDN HTML element reference, WHATWG HTML Living Standard

Quick fetch

Stable URL. CORS-enabled. No auth.

bash
curl https://staticdata.dev/v1/html-elements.json

Or use as a typed import: import { htmlElements } from "https://staticdata.dev/v1/html-elements.ts"

Formats

  • JSON 35.4 KB

    /v1/html-elements.json

    Open

    min: 28.5 KB · /v1/html-elements.min.json

  • CSV 19.7 KB

    /v1/html-elements.csv

    Open
  • TypeScript 35.6 KB

    /v1/html-elements.ts

    export const htmlElements

    type HtmlElement = (typeof htmlElements)[number]

    Open

Schema

Each record in the dataset has the following shape.

Schema
Field Type Description Example
tag string The element's tag name (lowercase, no angle brackets) div
description string Short description of the element's purpose The generic container for flow content.
categories string[] HTML content categories the element belongs to ["flow","phrasing"]
void boolean True if the element is a void (self-closing) element with no end tag false
deprecated boolean True if the element is deprecated or obsolete in modern HTML false

Preview

First 10 records.

Data preview
tagdescriptionvoiddeprecated
aDefines a hyperlink, which is used to link from one page to another.falsefalse
abbrRepresents an abbreviation or acronym; the optional title attribute can provide an expansion or description for the abbreviation.falsefalse
addressIndicates that the enclosed HTML provides contact information for a person or people, or for an organization.falsefalse
areaDefines an area inside an image map that has predefined clickable areas.truefalse
articleRepresents a self-contained composition in a document, page, application, or site, which is intended to be independently distributable or reusable.falsefalse
asideRepresents a portion of a document whose content is only indirectly related to the document's main content.falsefalse
audioEmbeds sound content in documents. It may contain one or more audio sources, represented using the src attribute or the source element.falsefalse
bDraws the reader's attention to the element's contents, which are not otherwise granted special importance.falsefalse
baseSpecifies the base URL to use for all relative URLs in a document.truefalse
bdiTells the browser's bidirectional algorithm to treat the text it contains in isolation from its surrounding text.falsefalse

Showing 10 of 145. View full data:  JSON · CSV

Fetch examples

Drop-in snippets in five languages.

curl
curl -sSL https://staticdata.dev/v1/html-elements.json | jq '.[0]'
JavaScript
import type { HtmlElement } from "https://staticdata.dev/v1/html-elements.ts";

const res = await fetch("https://staticdata.dev/v1/html-elements.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const htmlElements: HtmlElement[] = await res.json();
console.log(htmlElements[0]);
Python
import urllib.request, json

with urllib.request.urlopen("https://staticdata.dev/v1/html-elements.min.json") as r:
    htmlElements = json.load(r)

print(htmlElements[0])
Go
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
)

func main() {
	resp, err := http.Get("https://staticdata.dev/v1/html-elements.min.json")
	if err != nil { panic(err) }
	defer resp.Body.Close()

	var data []map[string]any
	if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
		panic(err)
	}
	fmt.Println(data[0])
}
Rust
use serde_json::Value;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let body = ureq::get("https://staticdata.dev/v1/html-elements.min.json").call()?.into_string()?;
    let data: Vec<Value> = serde_json::from_str(&body)?;
    println!("{:?}", data.first());
    Ok(())
}

Sources and methodology

This dataset covers the elements defined in the WHATWG HTML Living Standard (excluding the foreign svg and math elements), plus well-known obsolete and deprecated elements documented on MDN for historical completeness. The 113 current (non-deprecated) elements as of October 2026 span document structure (html, head, body), metadata (meta, link, title, base), sectioning (article, section, nav, aside, header, footer), text-level semantics (a, em, strong, code, etc.), embedded content (img, video, audio, iframe, canvas), tables, forms, and Web Components primitives (template, slot). Categories follow the element index of the HTML standard; conditional categories (e.g. img is interactive only with usemap) are included.

Content categories follow the WHATWG model: flow (most elements that can appear in the document body), phrasing (inline-level text elements), metadata (elements that go in head and set up document configuration), sectioning (elements that define document outline sections), embedded (elements that import external resources), heading (the h1–h6 elements), and interactive (elements that are inherently interactive). An element can belong to multiple categories simultaneously.

Void elements (br, hr, img, input, meta, link, area, base, col, embed, source, track, wbr, and several obsolete ones) cannot have child nodes and must not have an end tag in HTML syntax. Deprecated elements are included for reference — they may still be encountered in legacy markup but should not be used in new code. MDN notes the recommended modern replacement in each deprecated element’s description.

Versioning

URLs under /v1/ are stable: field names and types will not change in a way that breaks consumers. Values can be corrected or records added when the upstream source changes; schema-incompatible updates ship under a new version path. See the html-elements changelog for this dataset's history.

Related datasets

More Web datasets