Moodle

Help files (en_utf8) do not comply with XHTML 1.0 Strict

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Minor Minor
  • Resolution: Fixed
  • Affects Version/s: 1.9.3
  • Fix Version/s: 1.9.8
  • Component/s: Accessibility
  • Labels:
    None
  • Affected Branches:
    MOODLE_19_STABLE
  • Fixed Branches:
    MOODLE_19_STABLE

Description

Help files (at least en_utf8) that do not comply with XHTML 1.0 Strict and the first error found for each file:

127.0.0.1/moodle/help.php?file=reading.html:124:37:3086136980.65:E: document type does not allow element "p" here; missing one of "object", "ins", "del", "map", "button" start-tag
127.0.0.1/moodle/help.php?file=text.html:123:32:3085817492.108:E: there is no attribute "align"
127.0.0.1/moodle/help.php?module=wiki&file=howtowiki.html:118:66:3086960276.108:E: there is no attribute "target"
127.0.0.1/moodle/help.php?module=data&file=usepreset.html:112:95:3087222420.108:E: there is no attribute "align"
127.0.0.1/moodle/help.php?module=data&file=participants.html:112:95:3087009428.108:E: there is no attribute "align"
127.0.0.1/moodle/help.php?module=moodle&file=textformat.html:137:4:3087730324.79:E: end tag for element "ul" which is not open
127.0.0.1/moodle/help.php?module=wiki&file=htmlmode.html:115:3:3087165076.65:E: document type does not allow element "dl" here; missing one of "object", "ins", "del", "map", "button" start-tag
127.0.0.1/moodle/help.php?module=data&file=savepreset.html:112:95:3087554196.108:E: there is no attribute "align"
127.0.0.1/moodle/help.php?module=data&file=fields.html:112:95:3087738516.108:E: there is no attribute "align"
127.0.0.1/moodle/help.php?file=participantswithselectedusers.html:113:9:3086415508.108:E: there is no attribute "align"
127.0.0.1/moodle/help.php?module=resource&file=window.html:127:4:3086124692.65:E: document type does not allow element "b" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag

Issue Links

Activity

Hide
Eloy Lafuente (stronk7) added a comment -

Assigning to Helen... could you, plz, take a look to all those help files and make them to validate properly? TIA!

Show
Eloy Lafuente (stronk7) added a comment - Assigning to Helen... could you, plz, take a look to all those help files and make them to validate properly? TIA!
Hide
Daniele Cordella added a comment -

Helen and David
I tried to correct the help files in italian but I noticed that only by changing
'<P ' to '<p '
'</P>' to '</p>'
'align=center' to 'align="center"'
'ALIGN=CENTER' to 'align="center"'
'<FONT' to '<font
'</FONT>' to '</font>
'<B>' to '<b>' or, better, '<strong>'
'</B>' to '</b>' or, better, '</strong>', most of the problems left.
Maybe it can be of help a bulk substitution in all moodledata/lang.
Hoping this may be of help for Moodle. Merry Xmas.

Show
Daniele Cordella added a comment - Helen and David I tried to correct the help files in italian but I noticed that only by changing '<P ' to '<p ' '</P>' to '</p>' 'align=center' to 'align="center"' 'ALIGN=CENTER' to 'align="center"' '<FONT' to '<font '</FONT>' to '</font> '<B>' to '<b>' or, better, '<strong>' '</B>' to '</b>' or, better, '</strong>', most of the problems left. Maybe it can be of help a bulk substitution in all moodledata/lang. Hoping this may be of help for Moodle. Merry Xmas.
Hide
David Horat added a comment -

Hello Daniele,

Thank you very much for your effort. I think that this issue should be check manually for all help files in all languages. The current problem is that we can not automate the process of correcting the file because of several reasons:

  • Using automatic replacement should be avoided because "<P" could be in other contexts, so it should be checked manually.
  • Using automatic html to xhtml apps should be avoided because the code is not complete and it has also some errors

The most common mistakes I have found in help files are:

  • Capitalization of elements and attributes. <P ID="hola"> should be <p id="hola">
  • Use of quotes avoided. <p id=hola> should be <p id="hola">
  • Use of stylistic elements: <b> should not be used but <strong> and <i> should not be used but <em>
  • Not closing tags: in XHTML all tags must be closed. Example: <p>Hello should be <p>Hello</p>
  • Bad closed tags: <p>Hello<p> should be <p>Hello</p>

But probably there are some more out there ...

To make your work easier you can use the W3C Validator:
http://validator.w3.org/#validate_by_input+with_options

Be sure to specify the option "Validate HTML Fragment" to XHTML 1.0

Show
David Horat added a comment - Hello Daniele, Thank you very much for your effort. I think that this issue should be check manually for all help files in all languages. The current problem is that we can not automate the process of correcting the file because of several reasons:
  • Using automatic replacement should be avoided because "<P" could be in other contexts, so it should be checked manually.
  • Using automatic html to xhtml apps should be avoided because the code is not complete and it has also some errors
The most common mistakes I have found in help files are:
  • Capitalization of elements and attributes. <P ID="hola"> should be <p id="hola">
  • Use of quotes avoided. <p id=hola> should be <p id="hola">
  • Use of stylistic elements: <b> should not be used but <strong> and <i> should not be used but <em>
  • Not closing tags: in XHTML all tags must be closed. Example: <p>Hello should be <p>Hello</p>
  • Bad closed tags: <p>Hello<p> should be <p>Hello</p>
But probably there are some more out there ... To make your work easier you can use the W3C Validator: http://validator.w3.org/#validate_by_input+with_options Be sure to specify the option "Validate HTML Fragment" to XHTML 1.0
Hide
Helen Foster added a comment -

David, thanks for reporting this issue, and Daniele, thanks for your comments

Adding Koen as a watcher for advice on how best to ensure help files in all languages validate.

Show
Helen Foster added a comment - David, thanks for reporting this issue, and Daniele, thanks for your comments Adding Koen as a watcher for advice on how best to ensure help files in all languages validate.
Hide
Koen Roggemans added a comment -

I'm afraid it should be done manually. It's a little bit sad this problem crops up again - I went through the all the language packs somewhere around 1.5 or 1.6 I think. Very time consuming.

Show
Koen Roggemans added a comment - I'm afraid it should be done manually. It's a little bit sad this problem crops up again - I went through the all the language packs somewhere around 1.5 or 1.6 I think. Very time consuming.
Hide
David Horat added a comment -

Initial report with all the language help files that do not comply with XHTML 1.0 Strict. It seems that the problem is all around.

Show
David Horat added a comment - Initial report with all the language help files that do not comply with XHTML 1.0 Strict. It seems that the problem is all around.
Hide
Koen Roggemans added a comment -

hm, 7000 problematic files. That's a lot.
Can I ask you how you created the list?

Show
Koen Roggemans added a comment - hm, 7000 problematic files. That's a lot. Can I ask you how you created the list?
Hide
David Horat added a comment -

Yes. I created a bash script that checkouts out all CVS language files from es.cvs.moodle.org/cvsroot/moodle/lang/, for each individual file I reconstruct it as a whole valid XHTML file, adding header(DOCTYPE, html, header, body) and footer(body, html), I parse them with OpenSP (http://openjade.sourceforge.net/) which is the engine behind the W3C Validator (http://validator.w3.org/) and at the end I use sed to make up the final report with all the pages that are not valid.

If you want I could work on it a bit more, wrap all needed things up and upload them here.

Show
David Horat added a comment - Yes. I created a bash script that checkouts out all CVS language files from es.cvs.moodle.org/cvsroot/moodle/lang/, for each individual file I reconstruct it as a whole valid XHTML file, adding header(DOCTYPE, html, header, body) and footer(body, html), I parse them with OpenSP (http://openjade.sourceforge.net/) which is the engine behind the W3C Validator (http://validator.w3.org/) and at the end I use sed to make up the final report with all the pages that are not valid. If you want I could work on it a bit more, wrap all needed things up and upload them here.
Hide
David Horat added a comment - - edited

Report with one non-valid help file per line. No extra numbers at the end.

Show
David Horat added a comment - - edited Report with one non-valid help file per line. No extra numbers at the end.
Hide
David Horat added a comment -

Hi Koen and all,

Here is the script I did. Give it a try if you want.
You can start by reading the README file.
The scripts is: moodle-xhtml-checker.sh

Regards,
David

Show
David Horat added a comment - Hi Koen and all, Here is the script I did. Give it a try if you want. You can start by reading the README file. The scripts is: moodle-xhtml-checker.sh Regards, David
Hide
Daniele Cordella added a comment -

Ciao David and thanks for your script.
I tried to use it but I fall into:
quit 2 'onsgmls file not found. Please install it from your repository.'

I added:
myStartingFolder=`echo $0 | sed -e "s#^[^/]#\`pwd\`/&#"`
myStartingFolder=`dirname $myStartingFolder`
just after your row 36

and I changed
your row 47 from:
if [ ! -x "/usr/bin/onsgmls" ] && [ ! -x "onsgmls" ]; then
to:
if [ ! -x "/usr/bin/onsgmls" ] && [ ! -x "$myStartingFolder/onsgmls" ]; then

Whay your script is working to your computer and not to mine?
Are there settings I have to set?

Show
Daniele Cordella added a comment - Ciao David and thanks for your script. I tried to use it but I fall into: quit 2 'onsgmls file not found. Please install it from your repository.' I added: myStartingFolder=`echo $0 | sed -e "s#^[^/]#\`pwd\`/&#"` myStartingFolder=`dirname $myStartingFolder` just after your row 36 and I changed your row 47 from: if [ ! -x "/usr/bin/onsgmls" ] && [ ! -x "onsgmls" ]; then to: if [ ! -x "/usr/bin/onsgmls" ] && [ ! -x "$myStartingFolder/onsgmls" ]; then Whay your script is working to your computer and not to mine? Are there settings I have to set?
Hide
Koen Roggemans added a comment -

My ubuntu results with about 15000 times "onsgmls: error while loading shared libraries: libosp.so.5: cannot open shared object file: No such file or directory " in the log-file.

Running "sudo apt-get install libosp5" didn't solve it..

I had a look at the results of the script, looked in the nl_utf8 langpack since I maintain that and found that it will be very hard to fix everything manually. The first file I looked at (survey.html) I don't see anything wrong, the second one, context.html had one </p> to many and missed one </li>...

I think going through all the language files (manually) to fix them, is a useless job unless we find some way to keep them clean afterwards. Some script that validates on saving with the language pack editor may be? There are not that many different tags used in the help files.

Show
Koen Roggemans added a comment - My ubuntu results with about 15000 times "onsgmls: error while loading shared libraries: libosp.so.5: cannot open shared object file: No such file or directory " in the log-file. Running "sudo apt-get install libosp5" didn't solve it.. I had a look at the results of the script, looked in the nl_utf8 langpack since I maintain that and found that it will be very hard to fix everything manually. The first file I looked at (survey.html) I don't see anything wrong, the second one, context.html had one </p> to many and missed one </li>... I think going through all the language files (manually) to fix them, is a useless job unless we find some way to keep them clean afterwards. Some script that validates on saving with the language pack editor may be? There are not that many different tags used in the help files.
Hide
Koen Roggemans added a comment -

running apt-get install w3c-dtd-xhtml got me a little bit further. I get now

onsgmls:lang/af_utf8/help/courseformats.html:5:28:E: end tag for element "b" which is not open
onsgmls:I: maximum number of errors (1) reached; change with -E option

Show
Koen Roggemans added a comment - running apt-get install w3c-dtd-xhtml got me a little bit further. I get now onsgmls:lang/af_utf8/help/courseformats.html:5:28:E: end tag for element "b" which is not open onsgmls:I: maximum number of errors (1) reached; change with -E option
Hide
Helen Foster added a comment -

David, thanks for your report and apologies for the long delay in fixing the issue.

The following files are fixed in 1.9 only: reading.html, text.html, howtowiki.html, htmlmode.html
(The reason why I have not fixed the files in HEAD is because my recommendation is to delete them as part of the en language pack cleanup.)

The following files are fixed in 1.9 and HEAD: usepreset.html, participants.html, savepreset.html, fields.html participantswithselectedusers.html, window.html

Everyone, thanks for your interesting comments. If necessary, please create new issues for points raised.

Show
Helen Foster added a comment - David, thanks for your report and apologies for the long delay in fixing the issue. The following files are fixed in 1.9 only: reading.html, text.html, howtowiki.html, htmlmode.html (The reason why I have not fixed the files in HEAD is because my recommendation is to delete them as part of the en language pack cleanup.) The following files are fixed in 1.9 and HEAD: usepreset.html, participants.html, savepreset.html, fields.html participantswithselectedusers.html, window.html Everyone, thanks for your interesting comments. If necessary, please create new issues for points raised.
Hide
David Horat added a comment -

Thank you Helen.

Show
David Horat added a comment - Thank you Helen.

People

Dates

  • Created:
    Updated:
    Resolved: