Por padrão, o JSF gera IDs inutilizáveis, que são incompatíveis com a parte CSS dos padrões da Web
Alguém que é um usuário ativo de JSF (ou Primefaces) explica por que, por padrão, isso acontece porque ninguém está fazendo nada sobre isso:
<p:commandLink id="baz" update=":foo:boop" value="Example" />
Que gera uma marcação que não pode ser usada em JavaScript ou CSS sem hacks e geralmente deve ser considerada inválida:
<a href="javascript:void(0);" id=":foo:bar:baz">Example</a>
oid=":bar:baz:foo"
O atributo here contém dois pontos, que não são um caractere válido para este atributo, pelo menos da perspectiva CSS.
Embora o atributo possa ser válido de acordo com as especificações, ele não funciona com implementações de JavaScript e CSS do mundo real.
Em suma, padrãoid
A geração de atributos no JSF é inutilizável para desenvolvimento front-end.