Hi all,

since my chef ask me about XHTML or HTML 4.0 compliance of the
generated HTML-output of MyFaces, today I made some investigations.

I figured out that the generated markup is not far from XHTML but some
components render invalid markup.

Some examples:

<t:panelNavigation2 /> renders the followind markup:

<ul>
<li class="mypage"><a href="#"
onclick="clear_linkDummyForm();document.forms['linkDummyForm'].elements['autoScroll'].value=getScrolling();document.forms['linkDummyForm'].elements['linkDummyForm:_link_hidden_'].value='_id23';if(document.forms['linkDummyForm'].onsubmit){if(document.forms['linkDummyForm'].onsubmit())
document.forms['linkDummyForm'].submit();}else{document.forms['linkDummyForm'].submit();}return
false;" id="_id23" class="mypage">Product
Information</a><ul></ul></li>
<li class="mypage"><a href="#"
onclick="clear_linkDummyForm();document.forms['linkDummyForm'].elements['autoScroll'].value=getScrolling();document.forms['linkDummyForm'].elements['linkDummyForm:_link_hidden_'].value='_id27';if(document.forms['linkDummyForm'].onsubmit){if(document.forms['linkDummyForm'].onsubmit())
document.forms['linkDummyForm'].submit();}else{document.forms['linkDummyForm'].submit();}return
false;" id="_id27" class="mypage">Online Shop</a><ul></ul></li>
</ul>

The validator at W3C says the following:

Error  Line 62 column 477: end tag for "ul" which is not finished.

...page">Product Information</a><ul></ul></li>

Most likely, You nested tags and closed them in the wrong order. For
example <p><em>...</p> is not acceptable, as <em> must be closed
before <p>. Acceptable nesting is: <p><em>...</em></p>

Another possibility is that you used an element which requires a child
element that you did not include. Hence the parent element is "not
finished", not complete. For instance, <head> generally requires a
<title>, lists (ul, ol, dl) require list items (li, or dt, dd), and so
on.



In this case, the component should not generate an ul-element for a
sublist which contains no children.

A second example of validation errors can be generated, by setting the
following parameter in the web.xml:

<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>

In this case, I got the following errormessage:

Error  Line 101 column 165: ID "jsf_tree_64" already defined.

...type="hidden" name="jsf_tree_64" id="jsf_tree_64" value="H4sIAAAAAAAAAK1WzW7T

I guess, that the view state is written to the submitted page multiple
times (once for each subview element maybe?)


Could anyone please tell me something on the compliance level of
MyFaces and Tomahawk-Components and if there are some settings, which
affect the compliance level of the rendered markup?

Thank you in advance,
Rudi

Reply via email to