Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does HTML5 requires spaces between attributes that are of quoted values?

Tags:

html

HTML does normally allow to have no spaces between attributes when attributes have values and those values are quoted.

Example (Reference/Source):

In HTML-documents no White Spaces between Attributes are needed.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"                                                                 
     "http://www.w3.org/TR/html4/loose.dtd">                                                                                   

<html>                                                                                                                         
  <head>                                                                                                                       
    <title>no attribute space</title>                                                                                          
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">                                                   
  </head>                                                                                                                      
  <body>                                                                                                                       
    <p class="CLASS"title='TITLE'></p>                                                                                         
  </body>                                                                                                                      
</html>                                                                                                                        

See the third-last line:

    <p class="CLASS"title='TITLE'></p>                                                                                         
                   ^^

Now using such HTML chunk changing the doctype to HTML 5 (<!DOCTYPE HTML>), makes the experimental W3C HTML 5 conformance checker give an error exactly there telling me:

Validation Output: 1 Error

Error Line 9, Column 22: No space between attributes.

    <p class="CLASS"title='TITLE'></p>
                    ^

So I thought that HTML 5 is backwards compatible to how browsers deal with HTML in reality and browsers AFAIK deal with this well. So I'm a bit puzzeled at least. I also have problems to decipher the (somewhat needlessly) compilcated HTML 5 specs to be precise at this point because what I did find (W3C again, see http://www.w3.org/TR/html-markup/syntax.html#syntax-attributes) it's not saying that this is (may nor must) be an error.

like image 685
hakre Avatar asked May 27 '14 10:05

hakre


1 Answers

You are reading a discontinued, non-normative reference. If you look at the definition of the start tag in the specification (which is normative) it says:

Then, the start tag may have a number of attributes, the syntax for which is described below. Attributes must be separated from each other by one or more space characters.


So I thought that HTML 5 is backwards compatible to how browsers deal with HTML in reality and browsers AFAIK deal with this well.

Being compatible with real world markup is a design goal, but lots of things have been obsoleted and leaving out the space between attributes is something that almost never occurs intentionally.

like image 122
Quentin Avatar answered Sep 23 '22 06:09

Quentin