deadhead

Deadheading is cutting the spent growth off a plant.

This does that to your <head>. It finds markup that is harmful, deprecated or merely dead weight — and for every finding, links to a written explanation of why, with sources.

$ npx deadhead dist

dist/index.html
  5:5  unnecessary  meta/http-equiv-x-ua-compatible
       X-UA-Compatible only ever controlled Internet Explorer document modes,
       and no shipping browser reads it.
       → Delete it. Internet Explorer and legacy Edge modes no longer exist.
       https://deadhead.cevdet.ch/rules/meta/http-equiv-x-ua-compatible

✖ 1 finding (1 unnecessary)

Why another linter

Most tools tell you that something is wrong. The interesting question with head markup is why, and whether the advice you read in 2014 still holds. Every rule here is a markdown document carrying at least two independent sources, and the linter is generated from those documents. A rule that cannot be explained does not ship.

Severity says what the finding costs you, not how loudly the tool wants to say it: harmful breaks something for users, deprecated is formally obsolete but inert, unnecessary works but is dead weight.

Three runtimes, one rule set

A conformance suite runs every fixture through all three and asserts identical findings. That, rather than shared code, is what stops them drifting.

The rules

46 so far, worst first. Browse them by namespace.

Get it

Installation and usage, or read the source on GitHub.