199

As stated in, When did single quotes in HTML become so popular? and Jquery embedded quote in attribute, the Wikipedia entry on HTML says the following:

The single-quote character ('), when used to quote an attribute value, must also be escaped as ' or ' (should NOT be escaped as ' except in XHTML documents) when it appears within the attribute value itself.

Why shouldn't ' be used? Also, is " safe to be used instead of "?

General Grievance
  • 4,555
  • 31
  • 31
  • 45
brad
  • 73,826
  • 21
  • 73
  • 85

5 Answers5

215

" is on the official list of valid HTML 4 entities, but ' is not.

From C.16. The Named Character Reference ':

The named character reference ' (the apostrophe, U+0027) was introduced in XML 1.0 but does not appear in HTML. Authors should therefore use ' instead of ' to work as expected in HTML 4 user agents.

Fyodor Soikin
  • 78,590
  • 9
  • 125
  • 172
cletus
  • 616,129
  • 168
  • 910
  • 942
46

" is valid in both HTML5 and HTML4.

' is valid in HTML5, but not HTML4. However, most browsers support ' for HTML4 anyway.

Zaz
  • 46,476
  • 14
  • 84
  • 101
35

' is not part of the HTML 4 standard.

" is, though, so is fine to use.

Paul D. Waite
  • 96,640
  • 56
  • 199
  • 270
Anon.
  • 58,739
  • 8
  • 81
  • 86
25

If you need to write semantically correct mark-up, even in HTML5, you must not use ' to escape single quotes. Although, I can imagine you actually meant apostrophe rather then single quote.

single quotes and apostrophes are not the same, semantically, although they might look the same.

Here's one apostrophe.

Use ' to insert it if you need HTML4 support. (edited)

In British English, single quotes are used like this:

"He told me to 'give it a try'", I said.

Quotes come in pairs. You can use:

<p><q>He told me to <q>give it a try</q></q>, I said.<p>

to have nested quotes in a semantically correct way, deferring the substitution of the actual characters to the rendering engine. This substitution can then be affected by CSS rules, like:

q {
  quotes: '"' '"' '<' '>';
} 

An old but seemingly still relevant article about semantically correct mark-up: The Trouble With EM ’n EN (and Other Shady Characters).

(edited) This used to be:

Use ’ to insert it if you need HTML4 support.

But, as @James_pic pointed out, that is not the straight single quote, but the "Single curved quote, right".

R. Schreurs
  • 8,587
  • 5
  • 43
  • 62
  • The question was clearly about using apostrophes and not quotes. Why would you post this? – Alex Skrypnyk Apr 21 '15 at 10:24
  • 11
    I clearly see _single quote_ in the title. The question was why escaping them should not be done with _'_. I answered this because the support for ' is not the only concern. – R. Schreurs Apr 22 '15 at 19:46
  • 4
    Single quotes are used that way in American English, also. – Rob_vH Feb 22 '16 at 06:24
  • This should be the accepted answer since it clarifies that apostrophe and single quotes aren't the same thing and that's why you shouldn't use apostrophes to enclose a HTML attribute value. – delroh Jul 04 '19 at 20:05
  • 1
    In Unicode, the apostrophe character (') is classed as a quotation mark, and is the only form of the "straight" quotation mark in the spec. The advice to use ’ is at best incomplete, because that is the character for "Single curved quote, right". If you really are going for semantic correctness, it should be used for right quotation marks, while ‘ ("Single curved quote, left") should be used for left quotation marks. – James_pic May 31 '20 at 23:14
  • 1
    Most of this answer has nothing to do with the question, which was about HTML markup syntax, not English grammar. – Jake Aug 22 '21 at 00:34
2

If you really need single quotes, apostrophes, you can use

html    | numeric | hex
&lsquo; | &#145;  | &#x91; // for the left/beginning single-quote and
&rsquo; | &#146;  | &#x92; // for the right/ending single-quote
hugomg
  • 68,213
  • 24
  • 160
  • 246
Jeff
  • 69
  • 2