Skip to content

Text Content Tags: Mastering Semantics and Application of HTML Text Markup โ€‹

Why Use Text Tags? โ€‹

In daily communication, we convey extra information through tone, gestures, and facial expressions. For example, stressing a word for emphasis, or using air quotes for citation. In HTML, text tags are the carriers of this "extra information".

Triple Value of Text Tags:

  1. Semantic Expression: Tell browsers and search engines the meaning of the content.
  2. Styling Basis: Provide hooks for CSS styles.
  3. Accessibility: Help screen readers correctly understand and read content.

Let's dive deep into various text tags and the principles behind them.

Emphasis and Importance Tags โ€‹

strong vs b: Importance Marking โ€‹

html
<p>This is <strong>very important</strong> information.</p>
<p>This text needs to be <b>visually highlighted</b>.</p>

<strong> Tag:

  • Semantics: Indicates content has importance, seriousness, or urgency.
  • Usage: Warnings, key terms, important statements.
  • Default Style: Bold.
  • Reading: Screen readers will read with a stronger tone.

<b> Tag:

  • Semantics: Purely visual effect, no special importance.
  • Usage: Keywords, product names, bold text that doesn't need emphasis.
  • Default Style: Bold.
  • Reading: Screen readers read normally.

How to Choose?

html
<!-- Correct use of strong: Conveying importance -->
<p><strong>Warning:</strong> This action cannot be undone!</p>

<!-- Correct use of b: Just for styling -->
<p>Yesterday's meeting was hosted by <b>David Miller</b>.</p>

<!-- Incorrect: Using strong just for bolding -->
<p><strong>Product Features:</strong> This is a description...</p>
<!-- Should use -->
<p><b>Product Features:</b> This is a description...</p>

Principle Explanation:

<strong> not only changes appearance but more importantly changes semantics. Imagine someone reading this text:

  • Encountering <strong>, they raise their pitch and slow down.
  • Encountering <b>, they keep a normal tone.

This semantic difference is very important for visually impaired users.

em vs i: Emphasis Marking โ€‹

html
<p>I <em>really</em> like this design.</p>
<p><i>Inception</i> is a wonderful movie.</p>

<em> Tag:

  • Semantics: Indicates emphasis, changing the meaning of the sentence.
  • Usage: Words that need to be stressed.
  • Default Style: Italic.
  • Reading: With emphatic tone.

<i> Tag:

  • Semantics: Content distinct from normal text, such as terms, foreign words, etc.
  • Usage: Book titles, movie titles, technical terms, thoughts.
  • Default Style: Italic.
  • Reading: Normal tone.

Practical Application:

html
<!-- em changes sentence focus -->
<p><em>I</em> didn't eat your cake.</p>
<!-- Emphasizing "I" -->
<p>I <em>didn't</em> eat your cake.</p>
<!-- Emphasizing "didn't" -->
<p>I didn't eat <em>your</em> cake.</p>
<!-- Emphasizing "your" -->

<!-- i for special text -->
<p>The movie <i>The Matrix</i> tells the story of...</p>
<p><i lang="fr">Bonjour</i> is "Hello" in French.</p>
<p>She thought: <i>That's really a good idea.</i></p>

Memory Trick

  • strong = Important
  • em = Emphasis
  • b = Bold style
  • i = Italic style

If styles are removed, does the meaning change? If yes, use <strong> or <em>. If no, use <b> or <i>.

Marking and Deletion โ€‹

mark: Highlight Marking โ€‹

html
<p>Search Results: Articles containing <mark>JavaScript</mark></p>

Usage:

  • Keyword highlighting in search results.
  • Parts of the document that need attention.
  • Key points in code snippets.

Default Style: Yellow background (like a highlighter).

Semantics: Indicates marking or highlighting relevant to the current context.

html
<!-- Search Page -->
<article>
  <h2>How to Learn <mark>HTML</mark></h2>
  <p><mark>HTML</mark> is the foundation of web development...</p>
</article>

<!-- Document Comparison -->
<p>Original: Website development includes frontend and backend.</p>
<p>
  Revision: Website development includes
  <mark>frontend, backend, and devops</mark>.
</p>

del and ins: Revision Marking โ€‹

html
<p>Price: <del>$99</del> <ins>$79</ins></p>

<del> Tag:

  • Semantics: Content that has been deleted.
  • Default Style: Strikethrough.
  • Usage: Showing document revisions, price changes, etc.

<ins> Tag:

  • Semantics: Content that has been inserted.
  • Default Style: Underline.
  • Usage: Showing added content.

Extended Attributes:

html
<p>
  <del datetime="2025-11-20" cite="https://example.com/changes">
    Old product description
  </del>
  <ins datetime="2025-11-25" cite="https://example.com/changes">
    New product description
  </ins>
</p>
  • datetime: Modification time.
  • cite: Link to document explaining the change.

Superscript and Subscript โ€‹

html
<!-- Math Formula -->
<p>Pythagorean theorem: a<sup>2</sup> + b<sup>2</sup> = c<sup>2</sup></p>

<!-- Chemical Formula -->
<p>The chemical formula for water is H<sub>2</sub>O</p>

<!-- Footnote -->
<p>The World Wide Web was invented by Tim Berners-Lee<sup>[1]</sup></p>

<sup> (Superscript):

  • Math exponents.
  • Ordinals (1st, 2nd).
  • Footnote citations.

<sub> (Subscript):

  • Chemical formulas.
  • Math subscripts.

Why not use CSS?

Although CSS can create visual effects, <sup> and <sub> provide semantics:

css
/* CSS simulating superscript - Not recommended */
.superscript {
  vertical-align: super;
  font-size: smaller;
}

Benefits of using semantic tags:

  1. Screen readers can handle them correctly.
  2. Effective even when CSS is disabled.
  3. Code intent is clearer.

Citation Tags โ€‹

blockquote: Block Citation โ€‹

html
<blockquote cite="https://www.w3.org/Consortium/mission">
  <p>
    To lead the World Wide Web to its full potential by developing protocols and
    guidelines that ensure the long-term growth of the Web.
  </p>
  <footer>โ€”โ€” <cite>W3C Mission Statement</cite></footer>
</blockquote>

Features:

  • Used for longer citations (usually paragraph level).
  • Independent block, usually indented.
  • cite attribute points to the URL of the source.

Style Suggestion:

css
blockquote {
  margin: 1em 0;
  padding-left: 1.5em;
  border-left: 4px solid #ccc;
  font-style: italic;
}

q: Inline Citation โ€‹

html
<p>
  Confucius said:
  <q
    >Learning without thought is labor lost; thought without learning is
    perilous.</q
  >
</p>

Features:

  • Used for short citations (sentences or phrases).
  • Displayed inline.
  • Browsers automatically add quotation marks (using different quote styles based on language).

Browser Automatic Quote Handling:

html
<html lang="en">
  <p>He said: <q>Hello</q></p>
  <!-- Displayed as: He said: "Hello" -->
</html>

<html lang="fr">
  <p>Il a dit : <q>Bonjour</q></p>
  <!-- Displayed as: Il a dit : ยซ Bonjour ยป -->
</html>

cite: Work Title โ€‹

html
<p>
  I am currently reading
  <cite>Professional JavaScript for Web Developers</cite>.
</p>
<p><cite>The New York Times</cite> reported this event.</p>

Usage:

  • Book titles.
  • Article titles.
  • Movie titles.
  • Song titles.
  • Newspaper names.

Note: cite is a tag, and also an attribute of <blockquote>. Do not confuse them.

code: Inline Code โ€‹

html
<p>Use <code>console.log()</code> to output information in the console.</p>

Features:

  • Represents computer code fragments.
  • Defaults to monospace font.
  • Displayed inline.

pre: Preformatted Text โ€‹

html
<pre>
function greet() {
  console.log("Hello!");
}
</pre>

Features:

  • Preserves spaces and line breaks.
  • Uses monospace font.
  • Suitable for displaying code blocks, ASCII art, etc.

Principle: Normal HTML collapses whitespace, but text inside <pre> retains original formatting, just like typing on a typewriter.

code + pre: Code Block โ€‹

html
<pre><code class="language-javascript">
function calculateSum(a, b) {
  return a + b;
}

const result = calculateSum(5, 3);
console.log(result); // Output: 8
</code></pre>

Best Practices:

  • <pre> preserves formatting.
  • <code> provides semantics.
  • class attribute specifies language (for syntax highlighting libraries).

var, kbd, samp: Specialized Code Tags โ€‹

html
<!-- var: Variable name -->
<p>The function accepts parameters <var>x</var> and <var>y</var>.</p>

<!-- kbd: Keyboard input -->
<p>Press <kbd>Ctrl</kbd> + <kbd>C</kbd> to copy text.</p>

<!-- samp: Program output -->
<p>Program output: <samp>Error: File not found</samp></p>

Differences:

  • <var>: Variables in math or programming (italic).
  • <kbd>: Content user should input (usually styled as keyboard keys).
  • <samp>: Sample output from a program or system.

Abbreviations and Definitions โ€‹

abbr: Abbreviation โ€‹

html
<p>
  <abbr title="HyperText Markup Language">HTML</abbr>
  is the markup language for the Web.
</p>

Function:

  • Marks abbreviations.
  • title attribute provides full form.
  • Shows tooltip on hover.
  • Screen readers read the full form.

Practical Application:

html
<p>
  <abbr title="World Wide Web Consortium">W3C</abbr>
  is the main international standards organization for the World Wide Web.
</p>

<p>
  The project is expected to be completed in
  <abbr title="Second Quarter">Q2</abbr>.
</p>

dfn: Term Definition โ€‹

html
<p><dfn>HTML</dfn> is a standard markup language for creating webpages.</p>

Usage:

  • Marks the defining instance of a term.
  • Usually used when the term first appears.
  • Can be combined with <abbr>.
html
<p>
  <dfn><abbr title="Cascading Style Sheets">CSS</abbr></dfn>
  is a style sheet language used for describing the presentation of a document
  written in HTML.
</p>

Time and Date โ€‹

html
<time datetime="2025-11-29">November 29, 2025</time>

<time datetime="2025-11-29T14:30:00+08:00"> 2:30 PM Today </time>

<time datetime="2025-11">November 2025</time>

<time> Tag:

  • Marks time or date.
  • datetime attribute provides machine-readable format.
  • Especially useful for events, publication dates, etc.

Why need machine-readable format?

Search engines and other apps can understand time data:

  • Display publication date in search results.
  • Add to calendar apps.
  • Timeline sorting.
html
<!-- Human friendly display + Machine readable format -->
<article>
  <h2>New Product Launch</h2>
  <time datetime="2025-12-15">Mid-next month</time>
</article>

Line Breaks and Separation โ€‹

br: Forced Line Break โ€‹

html
<p>
  Emily Johnson<br />
  123 Main Street<br />
  New York, NY 10001<br />
  USA
</p>

Usage Scenarios:

  • Addresses.
  • Poems.
  • Lyrics.

Note

Do not use <br> to increase paragraph spacing. Use CSS margin property instead. <br> is only for cases where the content itself requires a line break.

Incorrect Usage:

html
<!-- Incorrect: Using br for spacing -->
<p>Paragraph One</p>
<br /><br />
<p>Paragraph Two</p>

<!-- Correct: Using CSS for spacing -->
<p>Paragraph One</p>
<p>Paragraph Two</p>
<style>
  p {
    margin-bottom: 1em;
  }
</style>

hr: Thematic Break โ€‹

html
<section>
  <h2>Part One</h2>
  <p>Content...</p>
</section>

<hr />

<section>
  <h2>Part Two</h2>
  <p>Content...</p>
</section>

Semantics:

  • Represents a thematic shift or paragraph-level content separation.
  • Not just a visual horizontal line.

Default Style: Horizontal line.

When to use: When content truly requires thematic separation, not just for visual decoration.

Practical Suggestions โ€‹

1. Semantics First Principle โ€‹

html
<!-- Bad: Only considering style -->
<div class="bold">Important Notice</div>
<div class="italic">Movie Title</div>

<!-- Good: Clear semantics -->
<strong>Important Notice</strong>
<cite>Movie Title</cite>

2. Accessibility Considerations โ€‹

html
<!-- Provide description for abbreviation -->
<abbr title="Accessibility">A11y</abbr>

<!-- Provide source for citation -->
<blockquote cite="https://source.com">
  <p>Cited content</p>
  <footer>โ€”โ€” Source</footer>
</blockquote>

<!-- Provide machine-readable format for time -->
<time datetime="2025-11-29">Today</time>

3. Avoid Pure Style Tags โ€‹

html
<!-- Not Recommended: Pure Style -->
<font color="red">Error</font>
<u>Link</u>

<!-- Recommended: Semantic + CSS -->
<strong class="error">Error</strong>
<a href="#">Link</a>
<style>
  .error {
    color: red;
  }
</style>

FAQ โ€‹

Question 1: When to use strong vs CSS bold? โ€‹

Use <strong>:

  • Content itself is important.
  • Want screen readers to emphasize it.
  • Semantically need to express importance.

Use CSS:

  • Purely visual design needs.
  • Navigation menus, buttons, etc.
  • Brand style consistency.

Question 2: Can tags be nested? โ€‹

Yes, but pay attention to semantic reasonableness:

html
<!-- Reasonable nesting -->
<p>
  This is <strong><em>very important</em></strong> content.
</p>

<!-- Avoid excessive nesting -->
<strong>
  <em>
    <mark><code>...</code></mark>
  </em>
</strong>

Question 3: How to choose the right tag? โ€‹

Decision Process:

  1. Does the content have special meaning? โ†’ Use semantic tags.
  2. Need special styling? โ†’ Use CSS, add <span> if necessary.
  3. Not sure? โ†’ Use <span> or <div>, do not abuse semantic tags.

Summary โ€‹

This lesson covered HTML text content tags:

  1. Emphasis Tags: <strong>, <em>, <b>, <i>
  2. Marking Tags: <mark>, <del>, <ins>
  3. Formatting Tags: <sup>, <sub>, <br>, <hr>
  4. Citation Tags: <blockquote>, <q>, <cite>
  5. Code Tags: <code>, <pre>, <var>, <kbd>, <samp>
  6. Definition Tags: <abbr>, <dfn>, <time>

Core Principles:

  • Choose semantically correct tags.
  • Do not choose tags just for style.
  • Consider accessibility and SEO.
  • Use CSS for styling when necessary.