I did a quick search, and this issue has come up at least twice before, but the responses to keeping the current behavior were unconvincing.
5/20/2005 Serious problems with MyFaces ID allocation which is not conform to XHTML! 7/12/2006 w3c Markup validator does not like generated ID's after MyFaces version 1.1.1 There's nothing in the spec that says we must use underscore (_) for a clientID prefix. In fact, the spec (and javadocs) are pretty clear that we can provide any prefix we like so long as it is "unique". It's also recommended that it be short :-) Now a server-side id limited to [A-Z_-]. What are the limitations of a client-side id for xhtml and html? Maybe there's another character we can use that's not allowed in a server-side id. I know that colon is also allowed client-side. Either that or we pick something and hope users won't use the same prefix, like mc_, mf_, mm_, zz, or qq_. Finally, I proposed on the other thread that we allow the web.xml file to define the unique prefix. Unfortunately, I noticed now that the value has been declared final. It might still be possible to allow the user to configure it at startup, but that will probably make it more difficult. On 4/20/07, Simon Lessard <[EMAIL PROTECTED]> wrote:
Hello everyone, This thread is a follow-up for [EMAIL PROTECTED] thread about HTML 4.01 compliance. As mentioned in that thread, JSF spec requires implementor to provide a HTML 4.01 compliant renderkit (Section 8.5). However, both JSF RI and MyFaces cannot currently ensure that. One of the reason is the prefix used for generated ids. Currently UIViewRoot.UNIQUE_PREFIX_ID = "_id". However, W3C does not allow ids starting with an underscore (see http://www.w3.org/TR/html401/struct/global.html#h-7.5.2 and http://www.w3.org/TR/html401/types.html#type-name ). Therefore, I think the value of UNIQUE_PREFIX_ID should be changed to something like "mf_id" in order to comply with the spec, even if RI does not. Regards, ~Simon Original thread can be found at http://mail-archives.apache.org/mod_mbox/myfaces-users/200704.mbox/browser, thread named XHTML Strict
