no9 no9 - 6 months ago 34
HTML Question

Element link is missing required attribute property

<!DOCTYPE html>
...
<link rel='stylesheet' id='basecss-css' href='http://www.someurl.com/modules/14ce1e21/peadig-eucookie.css' type='text/css' media='all' />


Why is the validator (http://validator.w3.org/) rejecting this? What attribute is "required" that I am not aware of?

The error:


Error Line 408, Column 142: Element link is missing required attribute
property. …/modules/14ce1e21/peadig-eucookie.css' type='text/css'
media='all' /> Attributes for element link: Global attributes href
crossorigin rel media hreflang type sizes Also, the title attribute
has special semantics on this element.

Answer

The advice from @stevelove is apparently the practical solution, but here’s a theoretical answer to the “why” question:

Although a link element is unconditionally invalid in body in older HTML specifications, HTML5 has more permissive rules. According to HTML 5.1 Nightly (which is more or less what the validator tries to keep up with), the link element is allowed in the document body, too (wherever phrasing content is allowed), provided that it has an itemprop attribute. This seems to make the error message even more puzzling. Part of the explanation is that the validator is actually validating against HTML5 + RDFa, and RDFa defines the property attribute. The problem still remains what specific RDFa definition the validator is checking against, since the definition would need to redefine rules for HTML, too.

The information in the error message is outdated, anyway. Error messages are apparently not updated as fast as the basic functionality of the validator.

Comments