Fossil SCM
Invalid xhtml markup generated (with patch)
5ff2043c9668204…
· opened 14 years, 11 months ago
- Type
- Code_Defect
- Priority
- —
- Severity
- Important
- Resolution
- Fixed
- Subsystem
- —
- Created
- April 22, 2011 3:05 a.m.
While most of the generated fossil output is valid xhtml, there are still several places that aren't.
These include not using & instead of a plain & when generating URLs in href attributes, using <br> and <hr> instead of <br /> and <hr />, using instead of   and finally the occasional <img> instead of <img />.
The attached patch corrects these issues so that fossil can return valid application/xhtml+xml content.
dmitry added on 2011-09-08 23:11:38 UTC: Please note that pages generated by Fossil has HTML5 doctype. HTML5 allows unclosed single tags such as <br>.
jan.nijtmans added on 2012-11-06 09:05:14 UTC: Most of this patch just changes to   which is just the same in html (not in xhmtl). The main part of the remaining has to do with the link generation using the function style_submenu_element(): This function should generate links with all &'s escaped as &'s, but it doesn't.
Wouldn't it be better to modify style_submenu_element() such that it escapes all &'s to &? Then those (minor) html5 violations are fixed all at once.
jan.nijtmans added on 2012-11-08 09:51:47 UTC:
Suggested fix committed to branch "ticket-5ff2043c96". I put many pages, such as "timeline" to the validator.w3.org, and it reduced dramatically the number of errors. The current "timeline" page dropped from 85 to only 4 errors. That's better than changing many &'s to &'s in the source code, as this patch does. Changing only the href() and style_submenu_element() functions has much more effect.
jan.nijtmans added on 2012-11-08 10:31:49 UTC:
Note that xhtml errors can result in real bugs. For
example have a look at the report list:
[http://www.fossil-scm.org/fossil/reportlist]
When logged in, this page contains links [copy] after each
report. This link works fine on Firefox, but it doesn't work
on Internet Explorer, and this time IE is not to blame ;-)
The suggested patch makes the [copy] link on
the reportlist page work on both Firefox and Internet Explorer.
The reason is that the link has the form:
http://www.fossil-scm.org/fossil/rptedit?rn=1©=1
But Internet Explorer interprets that as:
http://www.fossil-scm.org/fossil/rptedit?rn=1©=1
as © is short for the copyright sign (the ';'
is not mandatory in html5).
See: [http://www.w3.org/TR/html5/named-character-references.html#named-character-references],
and note that a "copy" named character reference exists without a final ';'.