strike element
strike is obsolete: it draws a line through text but tells assistive technology nothing; use del for a removal or s for text that is no longer accurate.
- Avoid
- Deprecated
- Severity
- DeprecatedFormally obsolete, but inert.
- Basis
- Obsoleted by the specA standard defined it, then removed it.
- Detectable
- YesMatched exactly. Autofixable when the rule carries a fix.
- Matches
strikeElement rule, inside <body>.- Fix
- None — reports only
- Impacts
- Accessibility and Maintainability
- Related
element/font,element/center
<strike> draws a line through its text. It is presentational markup from before CSS, and it
still turns up for crossed-out prices, corrected dates and “done” items in old pages and pasted
rich text.
Why avoid
It is obsolete, and the HTML Standard names the replacement: “Use del instead if the element is
marking an edit, otherwise use s instead.”
The look was never the problem. The spec’s user-agent stylesheet treats all three elements the
same: del, s, strike { text-decoration: line-through; }. The difference is meaning. The s
element “represents contents that are no longer accurate or no longer relevant”, and del
“represents a removal from the document”. strike means neither. The DOM section maps it to plain
HTMLElement, with no semantics of its own.
That difference reaches people who can’t see the line. The HTML Accessibility API Mappings map
both del and s to the WAI-ARIA deletion role, so browsers can tell assistive technology
that the text is struck. There is no mapping for strike at all. It is exposed as ordinary text,
and nothing tells assistive technology that the old price or the cancelled date is struck out.
Use instead
Pick by meaning. Use s for something that is no longer accurate or relevant:
<p>Price: <s>CHF 49</s> CHF 29</p>
Use del for text removed from the document, optionally with ins for what replaced it and
datetime for when:
<p>Meeting on <del datetime="2026-09-14">Tuesday</del> <ins>Thursday</ins>.</p>
The spec is explicit that s “is not appropriate when indicating document edits”. If the line is
purely decorative and means nothing, use CSS text-decoration: line-through on a <span>.
Detectability
Fully detectable by tag name. There is no autofix: fixes can only remove markup, not rename it,
and choosing between del and s depends on what the text means.
Resources
- HTML Standard — Non-conforming features —
strikeis obsolete; usedelfor edits, otherwises. - HTML Standard — The s element — contents that are no longer accurate or relevant; not for document edits.
- HTML Standard — The del element — a removal from the document.
- HTML Standard — Rendering: phrasing content —
del, s, strike { text-decoration: line-through; }, the same look for all three. - W3C — HTML Accessibility API Mappings —
sanddelmap to the ARIAdeletionrole;strikehas no mapping.
This page is generated from content/rules/element/strike.md, the same file the linter is built from. Think the rule is wrong, or that browsers moved on? Say so — that is the most useful issue you can file.