Interface Core A1 · Official standard Platform: Web

Semantic HTML

Semantic HTML means choosing HTML elements for what they do, not just how they look. The page keeps its structure and built-in behavior even without CSS.

See how it works
You might call it meaningful markupsemantic markup

See how it works

Original worked exampleSemantic HTML

Another example

A news site builds an article with article, h1, time, figure, and nav. When CSS is off, the story still has a clear order. Assistive technology can jump to the heading or navigation.

Main parts

  1. 01Document structure
  2. 02Element semantics
  3. 03Native behavior

Use it when

Start with the native HTML element that matches the content and action. Add ARIA only when native HTML leaves a real gap.

Do not use it when

Do not use plain div elements to fake links, buttons, headings, or tables just because they are easy to style.

Name used in code

native HTML elements before ARIA roles

Before you ship

Before release, check the page structure, keyboard access, visible focus, contrast, and zoom. Also check loading, empty, error, success, cancel, and reduced-motion states.

Request you can copy

Outcome: Use Semantic HTML to solve this user need without losing the current context. User context: A news site builds an article with article, h1, time, figure, and nav. When CSS is off, the story still has a clear order. Assistive technology can jump to the heading or navigation. Recommended pattern: Semantic HTML. Why it fits: Start with the native HTML element that matches the content and action. Add ARIA only when native HTML leaves a real gap. Do not use it when: Do not use plain div elements to fake links, buttons, headings, or tables just because they are easy to style. Product requirements: Define the default, loading, empty, error, success, and recovery states. Keep user input. Give clear feedback after every action. Accessibility and resilience: Use semantic HTML, full keyboard access, and visible focus. Make the layout work when zoomed and support reduced motion. Follow the project’s current rules. Do not add a new UI library unless the project already uses it. Acceptance criteria: The main task works with keyboard only and at 320px width. Focus and status changes are announced. Check loading, failure, retry, cancel, and reduced-motion paths. Evidence and limits (evidence boundary): The standard covers only the listed scope. It does not choose the visual style, product decision, or Vibulary example. Unknowns to confirm: Product wording, data source, analytics events, supported devices and languages, and platform limits.

Check this request

Review the current use of Semantic HTML. Definition: Semantic HTML means choosing HTML elements for what they do, not just how they look. The page keeps its structure and built-in behavior even without CSS. Release checks: Before release, check the page structure, keyboard access, visible focus, contrast, and zoom. Also check loading, empty, error, success, cancel, and reduced-motion states. Before changing code, report the evidence you found, gaps, severity, and the smallest safe fix.

A1
How official is this term?

Official standard

A named standard sets the rules described on this page.

The standard covers only the listed scope. It does not choose the visual style, product decision, or Vibulary example.

Scope
HTML element semantics
Document status
living standard
Checked on
2026-07-30

Evidence sources & scope

Authority source + Term reference · WHATWG · living standard HTML: Semantics, structure, and APIs — Semantics, structure, and APIs Semantics, structure, and APIs Scope: HTML element semantics; direct scope: Semantics, structure, and APIs Role here: Direct term reference Source covers: canonical name, definition, semantics, implementation Authority source · WHATWG · living standard HTML: Semantics, structure, and APIs Semantics, structure, and APIs Scope: HTML element semantics Role here: Authority within stated scope Source covers: canonical name, definition, semantics, implementation

Copy it yourself

The browser could not copy this. Select the request below and copy it yourself.