I know that technically HTML5 is a 'living spec' but I'm wondering if it's compliant to have trailing spaces inside of a class name. I didn't see any reference to this scenario in the spec, but one of my teammates said it was invalid. Maybe I missed something?
It'd be a pain to trim those spaces (I'm working inside of a large Java ecom application) and I want to know if it's worth doing for SEO, validation or any other purpose. I get the feeling it's not... haha
Yes, it is compliant.
From http://www.w3.org/html/wg/drafts/html/master/dom.html#classes:
The attribute, if specified, must have a value that is a set of space-separated tokens representing the various classes that the element belongs to.
From http://www.w3.org/html/wg/drafts/html/master/infrastructure.html#set-of-space-separated-tokens:
A string containing a set of space-separated tokens may have leading or trailing space characters.
As we can see in the link below, there is no restriction on what the developer can use in the class attribute.
http://www.w3.org/html/wg/drafts/html/master/dom.html#classes
In fact, after saying what the classes are and that they're used spliting in the spaces, the author(s) says:
There are no additional restrictions on the tokens authors can use in the class attribute, but authors are encouraged to use values that describe the nature of the content, rather than values that describe the desired presentation of the content.
Our colleagues here have tested and it successfully passes W3C validation, so I can't guess why your friend thought it was invalid.
According to http://validator.w3.org/ under a <!DOCTYPE html>
the following validates successfully.
<div class=" name1 name2 "></div>
Leaving a trailing and leading space may be acceptable, but it's not pretty and some people do not consider it to be best a practice.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With