Spec literacy: how to read the WHATWG HTML living standard without drowning in cross-references. You do not need to memorise the spec – you need to know where to look when behaviour surprises you and how to interpret what you find.
Which document to use
For HTML in browsers, use the WHATWG HTML Standard at html.spec.whatwg.org. MDN is an excellent companion for day-to-day learning – it links to spec sections and summarises browser support. W3C TR documents are snapshots; the living standard tracks what browsers implement now. When MDN and your browser disagree, the spec and browser bug trackers are the tie-breakers.
Navigating the spec
The spec is organised by topic, not by tutorial order. Useful entry points:
- Elements – each element has definition, content model, and attributes
- Content models – what may nest inside what
- Parsing – tokenisation and tree construction (for quirk hunting)
- Web application APIs – DOM interfaces linked from element sections
Use on-page search for element names (dialog, template). Follow ‘category’ and ‘content attributes’ tables on each element page – they answer ‘can I put this here?’ faster than trial and error.
Reading normative vs informative text
Normative statements use ‘must’, ‘should’, and ‘must not’ in precise ways (RFC 2119 style). Examples and notes are informative – helpful, but not requirements. When an example shows markup, check the normative content model table if you need a definitive answer.
Algorithms and implementation notes
Parsing sections describe algorithms step by step. You rarely read them cover to cover – you jump in when the DOM looks wrong. Implementation notes explain why browsers differ historically. ‘Willful violation’ labels mean browsers intentionally broke an old rule for web compatibility – those explain odd parser behaviour.
Caniuse and changelogs
The spec defines intended behaviour; caniuse.com and MDN BCD tables show what shipped. New features (<dialog>, Declarative Shadow DOM, popover) appear in spec first, then browsers on different schedules. GitHub issues on WHATWG and WICG proposals show work in progress – useful for ‘why is this not in Safari yet?’
A worked example
Question: ‘Can I nest a button inside another button?’ Search the spec for the button element. Content model says phrasing content, but interactive content rules and parsing sections forbid nested interactive content. Answer: no – the parser will repair the DOM. You found that in five minutes without Stack Overflow.
When to stop reading
If the spec section assumes knowledge of tokenisation algorithms and you only needed whether an attribute is boolean, read the attribute definition and stop. Spec literacy includes knowing when MDN’s summary is enough and when you need the primary source. Build a bookmark set: HTML elements index, ARIA APG for widgets, and one browser’s intent-to-ship feed if you ship cutting-edge markup.

