[cc-devel] Malformed HTML in CC licences

Christopher Allan Webber cwebber at dustycloud.org
Thu Jan 5 12:11:53 EST 2012


Thanks for the heads up and for the useful analysis.  I'll try to have
this fixed up by the end of the day.

Richard Smith <richard at ex-parrot.com> writes:

> Nathan Yergler wrote:
>
>> Yikes. Regardless of whether they're well formed as XML, these do need
>> to be well formed HTML to fulfill the promise that they operate as
>> linked data documents.
>
> Thanks for your reply.  I agree it needs to be well-formed 
> HTML, but this needn't mean HTML 4.  Everything I've read 
> that purports to be a standard on linked data documents 
> allows for XHTML dialects too.  As the CC licences are 
> generated with 'transitional' XHTML 1.0 <!DOCTYPE> 
> declarations, presumably they are intended to be in that 
> dialect.  And if so, well-formed XHTML 1.0 simply means 
> well-formed XML.
>
> We can probably never have totally valid XHTML (as opposed 
> to well-formed XHTML) because the RDFa attributes such as 
> 'about' and 'resource' are not valid XHTML.  Nor are the 
> extra namespace declarations needed on the <html> element. 
> But parsers don't need to validate so that shouldn't be a 
> problem.
>
>> In the case of the extraneous span close tag,
>> that looks like a bug in the template
>> (http://code.creativecommons.org/viewgit/cc.engine.git/tree/cc/engine/templates/licenses/standard_deed.html#n167)
>> that's going to be present in every core deed generated.
>
> I guessed there must have been a template somewhere, but 
> hadn't managed to locate it.
>
> The </span> is the major problem here as it is the only one 
> current parsers are not reliable at recovering from, and 
> it's unambiguously an error: the line simply needs deleting. 
> Is posting here sufficient to get that fixed?  If not, what 
> should I do?
>
> But if we marking the document as XHTML and therefore XML, 
> we really should correct the other well-formedness issues. 
> The three unescaped ampersands are generated on this line:
>
>    http://code.creativecommons.org/viewgit/cc.engine.git/tree/cc/engine/templates/macros_templates/deed.html#n143
>
> Each instances of '&' simply need replacing with '&amp;'. 
> This is a legitimate (but not usually necessary) thing to do 
> in HTML 4, but is necessary with XHTML's stricter parsing 
> rules.  A discussion on this incompatibility can be found 
> here:
>
>    http://www.w3.org/TR/xhtml1/#C_12
>
> but the summary is that it is always a good idea to escape 
> the '&' in this manner.
>
> The two unescaped '<' signs are generated on this line:
>
>    http://code.creativecommons.org/viewgit/cc.engine.git/tree/cc/engine/templates/macros_templates/deed.html#n163
>
> In this context, HTML 4 prohibits '<' being escaped as &lt; 
> while XHTML mandates it.  For maximum compatibility we 
> probably want our document to work when parsed as HTML or as 
> XHTML, and there are two types of trick that can be used to 
> fix this.  The most flexible is to use a <![CDATA]> section 
> that will appear to be commented out to a HTML 4 parser. 
> This is described here:
>
>    http://javascript.about.com/library/blxhtml.htm
>
> We would simply change
>
>    document.write( ... );
>
> to
>
>    /* <![CDATA[ */
>    document.write( ... );
>    /* ]]> */
>
> These changes are all harmless to a HTML 4 parser, but make 
> the difference between the document being well-formed XHTML 
> or not.
>
> Richard
> _______________________________________________
> cc-devel mailing list
> cc-devel at lists.ibiblio.org
> http://lists.ibiblio.org/mailman/listinfo/cc-devel


More information about the cc-devel mailing list