Fossil

View Ticket
Login

View Ticket

2012-11-08
13:47 Fixed ticket [5ff2043c96]: Invalid xhtml markup generated (with patch) plus 1 other change ... (artifact: 9311dba7b9 user: drh)
13:46
Escape all characters in the href attributes of <a> elements that have special meaning to HTML. Ticket [5ff2043c96682049]. ... (check-in: d5c4684508 user: drh tags: trunk)
13:44
Always HTML-encode the href attribute of <a> elements. This check-in simplifies and fixes double-frees in the previous. Ticket [5ff2043c9668] ... (Closed-Leaf check-in: 35bfedef3e user: drh tags: ticket-5ff2043c96)
10:31 Ticket [5ff2043c96] Invalid xhtml markup generated (with patch) status still Open with 1 other change ... (artifact: ac8a9a8273 user: jan.nijtmans)
09:51 Ticket [5ff2043c96]: 1 change ... (artifact: fbb447d061 user: jan.nijtmans)
09:45
suggested fix for [5ff2043c96] ... (check-in: d1f16f718a user: jan.nijtmans tags: ticket-5ff2043c96)
2012-11-06
09:05 Ticket [5ff2043c96] Invalid xhtml markup generated (with patch) status still Open with 1 other change ... (artifact: ef022a2d6e user: jan.nijtmans)
2011-09-10
21:07 Closed ticket [be95038383]: Fossil generates invalid markup... plus 2 other changes ... (artifact: e9e27b01ab user: dmitry)
2011-09-08
23:11 Ticket [5ff2043c96] Invalid xhtml markup generated (with patch) status still Open with 2 other changes ... (artifact: 6256674d25 user: dmitry)
2011-04-22
03:10 New ticket [9fbc3fad8a] Fossil should deliver application/xhtml+xml when appropriate (with patch). ... (artifact: f176430649 user: anonymous)
03:06 Add attachment markuppatch.diff.txt to ticket [5ff2043c96] ... (artifact: f8e0efba6c user: anonymous)
03:05 New ticket [5ff2043c96] Invalid xhtml markup generated (with patch). ... (artifact: 8730a3f16e user: anonymous)

Ticket Hash: 5ff2043c966820498ce41c0dd425b4b2155fa025
Title: Invalid xhtml markup generated (with patch)
Status: Fixed Type: Code_Defect
Severity: Important Priority:
Subsystem: Resolution: Fixed
Last Modified: 2012-11-08 13:47:11
13.40 years ago
Created: 2011-04-22 03:05:53
14.95 years ago
Version Found In: 2011-04-19 20:30:31 085b6a1bbb
Description:
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 &nbsp; instead of &#160; 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 &nbsp; to &#160; 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 &amp;'s, but it doesn't.

Wouldn't it be better to modify style_submenu_element() such that it escapes all &'s to &amp;? 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 &amp;'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&copy=1 But Internet Explorer interprets that as: http://www.fossil-scm.org/fossil/rptedit?rn=1©=1 as &copy 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 ';'.


Attachments: