Ask the W3C or WHATWG what HTML is and the answer comes back the same. It’s a markup language, which means it structures a page’s content into elements a browser can read and render. It doesn’t run logic of its own the way a programming language does.

WHATWG maintains it now as a living standard rather than a fixed release, and every major browser (Chrome, Firefox, Safari) implements that standard to turn markup into a visible page.

Tim Berners-Lee’s original 1991 specification, titled HTML Tags, documented just 18 elements. The language defines more than 100 today.

What Is HTML?

Every heading, paragraph, image, and link on a page starts as an HTML element wrapped in tags. The browser reads those tags, works out what each piece of content is, and renders it. That wrapping is the whole job.

The full name is HyperText Markup Language, and it belongs to the family of markup languages rather than programming languages.

What HTML is not matters just as much as what it is:

  • Not a programming language, since it has no loops, variables, or logic of its own
  • Not a styling tool, that job belongs to CSS
  • Not a scripting language, that role goes to JavaScript

HTML sits on the frontend side of a site, the layer a visitor actually sees and clicks through in the browser window.

Who Created HTML and How Has It Changed Over Time?

British scientist Tim Berners-Lee invented HTML while working at CERN. The web’s first live page went up on August 6, 1991 (History.com, 2026).

A year before that, Belgian engineer Robert Cailliau had joined him in pitching the underlying hypertext concept to the European Conference on Hypertext Technology.

The tag syntax wasn’t invented from scratch. Early HTML borrowed it from SGML, an older document markup system, which explains why elements still open and close the way they do.

VersionStatusNote
HTML 2.01995 standardFirst formal specification
HTML 4.011999 W3C recommendationStayed dominant for over a decade
XHTML 1.02000 W3C recommendationStricter, XML-based rewrite of HTML 4
HTML52014 W3C recommendationCurrent baseline, still changing

XHTML rewrote HTML’s rules to follow strict XML syntax. Every tag had to close, and every attribute value had to sit inside quotes.

The W3C pushed HTML5 to full Recommendation status on October 28, 2014, closing nearly a decade of drafting and review (W3C, 2014).

Ian Hickson edited the original WHATWG draft behind that recommendation, and WHATWG still owns the version that keeps changing today.

What is shaping UX design today?

Uncover the newest UX design statistics: user behavior, design trends, ROI data, and insights driving better digital experiences.

Check Them Out →

That current version is the HTML Living Standard, run by a consortium of browser makers (Apple, Google, Mozilla, Microsoft) rather than tied to a fixed release number.

What Are HTML Elements, Tags, and Attributes?

Beginners use element, tag, and attribute as if they were the same word. They aren’t.

The element is the whole unit. Tags are just the markers at either end of it, and an attribute is extra detail you tuck inside the opening tag.

Elements

Everything between an opening and closing tag counts as the element, along with whatever content sits in the middle.

A paragraph element wraps a block of text between an opening p tag and a closing one.

  • Block-level elements like div, p, and section stack vertically by default
  • Inline elements like span, a, and strong sit inside a line of text
  • Void elements like img and br never wrap content, so they need no closing tag

Some elements embed entirely different formats, like SVG graphics placed straight into the markup as their own tag.

Tags

Most tags come in pairs, one to open and one to close, with content nested between them.

The WHATWG HTML Living Standard keeps growing rather than shrinking, since elements get added but almost never removed once browsers support them.

That growth has pushed the current count past 110 elements as of today’s living standard, from long-standing tags like p and table to newer additions like dialog and search.

Not every tag needs a partner. Void elements such as img, br, and input are self-closing by design, since there is no inner content to wrap.

Attributes

AttributeUsed onPurpose
hrefaSets the link destination
srcimg, scriptPoints to an external file
classmost elementsHooks into CSS or JavaScript
altimgDescribes the image for screen readers

Attributes always live inside the opening tag, written as name and value pairs. They never appear in a closing tag.

Modern specs also let developers define custom tags through Web Components, extending the standard element set whenever the built-in ones fall short.

What Is the Basic Structure of an HTML Document?

Every HTML file uses the same skeleton, regardless of what the page actually shows.

The very first line is the doctype declaration, telling the browser which rules to parse the rest of the document against. Under it, the html tag wraps everything else and usually carries a lang attribute for the page’s language.

Then come two halves. The head holds metadata the visitor never sees directly: title, character encoding, linked stylesheets, and a viewport meta tag that controls how the page scales on smaller screens. The body holds everything rendered on screen, from text and images to forms.

PartLives inTypical content
MetadataheadTitle, charset, meta tags, stylesheet links
Visible contentbodyHeadings, paragraphs, images, forms
Page iconheadFavicon reference via a link tag

That favicon reference is a small detail, but skip it and the browser tab shows a generic blank icon instead of your favicon.

Order matters too. A browser reads top to bottom, so metadata declared late in the head can get missed if a script runs before it loads.

How Does a Browser Render HTML Into a Web Page?

Rendering happens in stages, not all in one pass.

  1. Parse the HTML file and build the DOM, a tree of every element and how they nest
  2. Parse CSS separately and build a matching style tree
  3. Combine both into a render tree that skips hidden elements
  4. Calculate layout, working out size and position for every visible box
  5. Paint pixels to the screen

Chrome runs this pipeline through its Blink engine, Firefox through Gecko, and Safari through WebKit.

Those engines do not always agree on edge cases, which is exactly why cross-browser compatibility testing exists as a separate step in development.

Malformed HTML does not stop the pipeline either. Browsers guess at broken markup and try to recover rather than showing an error page, which is one reason sloppy code still often looks fine.

Is HTML a Programming Language?

No. HTML is a markup language, and the distinction is not just semantics.

Nothing in it stores a value, repeats an action, or branches on a condition. There’s no arithmetic on offer either.

What it does instead is mark up content so a browser knows what each piece is. Nesting gives that content a hierarchy, and the meaning carried by the tags themselves is what assistive tools and search engines parse.

Unlike JavaScript, which runs actual logic in the browser, HTML only describes what exists on the page and where.

The confusion usually comes from tutorials that teach HTML, CSS, and JavaScript back to back, as if they were interchangeable tools doing the same job. They are not.

How Does HTML Work With CSS and JavaScript?

These three sit together in what’s usually called the frontend stack, and each one has a single job.

LayerHandlesExample
HTMLStructure and contentMarking a block of text as a heading
CSSPresentation and layoutSetting that heading’s color and size
JavaScriptBehavior and interactionMaking that heading collapse on click

HTML provides the skeleton, and CSS attaches to it through selectors that target elements, classes, or ids.

Remove the CSS file and the page still loads. It just looks like a plain, unstyled document with default browser fonts.

JavaScript attaches the same way, hooking into elements to change content, respond to clicks, or update the page without a reload.

Whether the third layer is optional in practice is worth checking against real numbers. W3Techs found in September 2026 that 98.9% of websites with a detectable client-side language run on JavaScript.

Webflow’s visual editor is a real example of the division at work. Designers place elements on a canvas, and the tool generates the HTML, CSS, and JavaScript behind the scenes automatically.

Change the user interface styling and the underlying HTML markup does not need to move at all, which is the entire point of keeping the layers separate.

Can You Build a Website With Only HTML?

Yes, and plenty of real sites still do it. Whether it’s the right call depends entirely on what the page needs to do.

The upside is mostly speed and durability. Nothing extra for the browser to fetch or execute, no build step, no framework, no dependency updates, and the page keeps working even if a script fails somewhere else.

The cost shows up the moment you want the page to do something:

  • No dynamic content without a full page reload
  • No client-side validation, calculations, or interactivity
  • Visual styling stays at the browser’s plain defaults unless CSS gets added anyway

A plain landing page, a documentation page, or a simple resume site rarely needs more than that.

Craigslist is the clearest large scale proof. Its listing pages still run on largely plain HTML with almost no styling, and the site still pulls in well over 100 million visits a month.

The moment a page needs to remember a logged in user, submit a form to a database, or update content without reloading, HTML alone stops being enough.

How Widely Is HTML Used Today?

HTML remains the one constant underneath nearly every website on the internet, regardless of what framework sits on top of it. The adoption figures are lopsided enough to be a bit boring:

  • HTML is used by 97.7% of all websites whose markup language can be detected (W3Techs, September 2026)
  • HTML5 specifically accounts for 95.9% of all websites tracked (W3Techs, September 2026)
  • The average home page now contains 1,437 HTML elements, up 22.5% in a single year (WebAIM Million, February 2026)
  • WordPress alone, which outputs HTML behind every page it builds, was detected on roughly a quarter of the top one million home pages (WebAIM Million, 2026)

That growth in elements per page says something the adoption percentage does not. Pages are not just built with HTML, they are getting heavier and more layered inside it every year.

Every major framework, from React to plain server rendered PHP, still outputs HTML as the final product a browser receives.

What Is Semantic HTML and Why Does It Matter?

A div tells a browser nothing about the content inside it. An article, nav, or header tag tells the browser, and anyone using assistive technology, exactly what that block of content is for. Picking tags on that basis, for what they mean rather than how they look, is semantic HTML.

Generic tagSemantic alternativeWhat it signals
divarticle, sectionA standalone piece of content
divnavA block of navigation links
divheader, footerIntroductory or closing content
spantime, markA date or highlighted piece of text

Screen readers like NVDA and JAWS rely on this signal to let users jump straight to a nav landmark or a main content block instead of reading a page top to bottom.

You might expect pages that bother with accessibility attributes to test better. They don’t. WebAIM’s 2026 analysis of the top one million home pages found that pages using ARIA attributes averaged 59.1 detected errors, compared to 42 on pages without any ARIA at all.

Layering ARIA onto weak markup does not fix the markup. Semantic HTML is supposed to be the foundation, with ARIA filling in gaps only where no native element covers the job.

Search engines lean on the same structure. A properly tagged article or heading hierarchy gives a crawler a much clearer read on what matters than a stack of unlabeled divs.

How Do You Write and Run Your First HTML Page?

Writing HTML needs nothing more than a plain text editor and a browser. No installs, no compiler, no server for the first attempt.

  1. Open a plain text editor, anything from Notepad to a code editor works
  2. Type out the basic skeleton: doctype, html, head, and body
  3. Add content inside the body, starting with a heading and a paragraph
  4. Save the file with an .html extension, since that extension is what tells the operating system and browser this is a markup file, not plain text
  5. Double click the saved file, or drag it into a browser window, to see it render

Three things go wrong for almost everyone at the start. Forgetting to close a tag, which cascades formatting errors down the rest of the page. Saving the file as .txt by accident, so the browser never treats it as HTML. And nesting tags out of order, closing an outer tag before an inner one.

None of these crash anything. The browser recovers as best it can and shows something, even if it is not what you intended, which is exactly the forgiving parsing behavior covered earlier.

When Does HTML Not Work or Fall Short?

HTML runs out of road the moment a page needs to think, remember, or react on its own. The gaps are specific:

  • Updating part of a page without a full reload
  • Storing or recalling user input across visits, like a saved cart or login session
  • Running calculations, validation, or logic based on what a user types
  • Pulling live data from a server and displaying it without reloading the page

That first gap is exactly what Ajax was built to close, updating one part of a page while the rest stays untouched.

The last one usually means fetching from an API, then using JavaScript to drop that data into the page.

Modern single page applications push this furthest. Frameworks like React or Vue often ship a nearly empty HTML file, sometimes just one div, and build the entire page through JavaScript after the fact.

That approach trades simplicity for capability. It also means a page can fail completely if JavaScript breaks or does not load, since there is no HTML fallback content sitting underneath.

Static HTML fails the other way around. It cannot break at runtime the way a script can, but it also cannot do anything a script would have handled.

Choosing between them is less about which is better and more about matching the page’s job to what plain markup can do on its own.

FAQ on What Is HTML

What Is the Difference Between HTML and XHTML?

XHTML rewrites HTML using strict XML syntax, so every tag must close and every attribute needs quotes.

HTML tolerates sloppier markup and lets browsers recover from errors, which is why XHTML mostly faded from everyday use.

What Is the DOM?

Parse an HTML file and the browser builds a live, in-memory tree from it, where every element becomes a node. That tree is the DOM.

JavaScript reads and edits it directly, and any change updates the page instantly without touching the original HTML file.

Do You Need to Learn HTML Before CSS or JavaScript?

Yes, in practice. CSS selectors target HTML elements, and JavaScript manipulates the same markup through the DOM, so both assume a working knowledge of HTML structure first.

Most curricula and bootcamps teach HTML before either layer for that reason.

What Is the Latest Version of HTML?

There is no numbered HTML6 in development. WHATWG replaced version numbers with the HTML Living Standard, updated continuously instead of released on a schedule.

Browsers simply implement whatever the current standard specifies.

Is HTML Free to Use?

Yes. HTML is an open specification maintained by WHATWG and the W3C, with no license fee, registration, or royalty required to write, publish, or distribute it.

Any browser, tool, or developer can implement the standard without paying anyone.

Is HTML Case Sensitive?

Element and attribute names are not case sensitive, so div and DIV parse identically.

Attribute values, file paths, and class or id names are case sensitive, and mismatched casing there is a common source of broken links and unstyled elements.

How Do You Validate HTML Code?

The W3C runs a free Markup Validation Service that checks a page against the official specification and flags unclosed tags, invalid nesting, and missing attributes.

Most code editors also validate HTML live as you type, before a browser ever sees it.

How Long Does It Take to Learn HTML?

Most people grasp core HTML syntax, tags, and document structure within a few days of focused practice.

Real fluency, writing clean semantic markup without a reference open, usually takes a few weeks of building actual pages rather than following tutorials alone.

What Should You Learn After HTML?

HTML alone leaves a page unstyled and static, which is why the standard learning order puts CSS second and JavaScript third. A browser needs structure in place before it can apply presentation or attach behavior to it.

So: structure and content first, then CSS for layout, color, and typography, then JavaScript for interaction.

That order trades speed for stability. Skipping straight to JavaScript feels faster early on, but markup written without CSS habits already in place tends to need restructuring later.

The sequence holds as of September 2026, since HTML, CSS, and JavaScript remain three separate specifications maintained independently rather than merged into one language. Once those first two layers are solid, the next step is applying broader web design principles to the pages already built.