<ins> & <del> Tags in HTML

Quick facts

CategoryPhrasing content (and flow content when they wrap blocks)
Content modelTransparent — whatever their parent allows, so they can wrap inline text or whole blocks
Tag omissionNeither the start nor the end tag can be omitted
Permitted parentsAny element that accepts phrasing content
DOM interfaceHTMLModElement (both)

Syntax

<p>Meeting starts at <del>2pm</del> <ins>3pm</ins>.</p> <del datetime="2026-10-01" cite="/changelog/">Old text</del>

Live example

Edit the code below and watch the preview update instantly.

index.html
Preview

Attributes

AttributeDescription
citeA URL to a page explaining the change, such as a changelog. Not displayed
datetimeWhen the change was made, e.g. 2026-10-03 or 2026-10-03T14:30

Common examples

A corrected article

Show what changed and when, with the datetime attribute.

<p>The event starts at <del datetime="2026-10-01">6 pm</del> <ins datetime="2026-10-01">7 pm</ins>.</p>

A to-do list

Crossed-off items can be marked as removed from the list.

<ul> <li><del>Buy milk</del></li> <li>Call the plumber</li> </ul>

Linking to the reason for a change

The cite attribute can point to a page explaining the change.

<p>Price: <del cite="/changelog/#oct">$19</del> <ins cite="/changelog/#oct">$24</ins></p>

Accessible change markers

CSS can add hidden words so screen reader users also know what was removed and added.

<style> del::before { content: " [deleted: "; } del::after { content: "] "; } ins::before { content: " [inserted: "; } ins::after { content: "] "; } del::before, del::after, ins::before, ins::after { clip-path: inset(100%); position: absolute; width: 1px; height: 1px; overflow: hidden; } </style>

<del> vs CSS line-through

<del> means “this was removed from the document”. CSS text-decoration: line-through only draws a line through text without any meaning, which is fine for a visual effect such as a completed checklist item in an app.

If the strike-through records an actual edit — a correction, a changed date, updated terms — use <del>, ideally with <ins> for the new text. If it’s only styling, use CSS.

<del>line-through
MeaningRemoved contentNone
Change datedatetime attributeNo
Best forCorrections, edit historyVisual effects

Common mistakes to avoid

  • Using del for an old price. A price that is no longer accurate (but wasn’t an edit) is better as <s>.
  • Keeping every change forever. Long trails of deleted text make pages hard to read; summarise old changes in a changelog.
  • Assuming screen readers announce them. Most don’t by default, so explain important changes in words.
  • Writing dates in the wrong format. datetime needs ISO format, such as 2026-10-01.

Accessibility & SEO tips

  • Visible corrections on articles build trust with readers and show that your content is maintained.
  • Update the page’s “last updated” date when you make real changes, so search engines and readers know the content is current.
  • Underlined <ins> text can look like a link; consider a different style such as a light green background.
  • Keep corrections short and clear — strike out only the wrong part, so readers can see exactly what changed.

Browser support

Supported in every browser, including Chrome, Edge, Firefox, Safari and their mobile versions — it has been part of HTML since the very first versions.

Related tags

Frequently asked questions

What is the difference between <del> and <s>?
<del> marks text removed as an edit to the document, such as a correction. <s> marks text that is no longer accurate or relevant but wasn't "edited out", such as an old price next to a sale price.
Do screen readers announce <ins> and <del>?
Most don't by default, so the meaning can be lost. The example uses visually hidden CSS text ("removed:", "added:") so screen reader users hear what changed while sighted users see the colors.
Can <ins> and <del> wrap whole paragraphs?
Yes. They are transparent, so they can contain block content like paragraphs or list items when placed where that content is allowed.
How do I change the default style of <ins>?
Override it with CSS, for example ins { text-decoration: none; background: #e6ffed; }, so it doesn't look like a link.
What is the datetime attribute on <ins> and <del>?
It records when the change was made, in ISO format such as 2026-10-01T09:30. It isn't displayed but can be read by scripts.
Does deleted text still count for SEO?
It's still in the HTML, so search engines can see it, but they understand del marks old content. Remove outdated text completely if it's no longer useful.
Can I use <ins> without <del>?
Yes. Use <ins> alone for content added later, such as an update note at the end of an article.