Имеются ли одинарные кавычки в HTML/XHTML?

Являются ли одинарные кавычки действительными в HTML? И более конкретно: XHTML strict.

<table width="100%">
<table width='100%'>

Ответ 1

Да, одинарные кавычки действительны.

Из спецификации XML:

[10]   AttValue  ::= '"' ([^<&"] | Reference)* '"'
                  |  "'" ([^<&'] | Reference)* "'"

Ответ 2

Источником путаницы в этом вопросе, похоже, исходит из этой статьи,

http://www.javascriptkit.com/howto/xhtml_intro.shtml

который, кажется, утверждает, что одинарные кавычки недействительны в xhtml. Однако, поскольку спецификация не цитируется, и поскольку в статье также утверждается, что имена нижних регистров для атрибутов и элементов запрещены, автор может просто выражать запрет на редакцию, запрещающий использование одинарных кавычек.

Ответ 3

Согласно spec, оба действительны: -)

[9]    EntityValue    ::=    '"' ([^%&"] | PEReference | Reference)* '"'  
   |  "'" ([^%&'] | PEReference | Reference)* "'" 
[10]    AttValue    ::=    '"' ([^<&"] | Reference)* '"'  
   |  "'" ([^<&'] | Reference)* "'" 
[11]    SystemLiteral    ::=    ('"' [^"]* '"') | ("'" [^']* "'")  
[12]    PubidLiteral    ::=    '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"

И W3C-Validator также принимает его.