Zend Frameworkの要素にsetRequired()がない場合や、setRequired(false)が呼び出された場合でも、常に次のようにレンダリングされます<input ..... required=""
>
そして、フォームを投稿する前にフォームを検証しようとしているときに、Chrome、Firefox、およびその他の最新バージョンのブラウザーでこのコードを見ると、フィールドが必須であるというエラーメッセージが表示されます (必須ではありません)。ブラウザは必要な属性の存在を検出し、その値 (この場合は空) を気にしないようです。
さらに、<form novalidate="novalidate" ...
ブラウザの検証を無視しようとしましたが、うまくいきませんでした (とにかく、ブラウザ側の検証を維持する必要があるかもしれないので、良い解決策ではありません)。
したがって、問題は、->setRequired(true)を作成してrequired="required"をレンダリングする方法と、->setRequired()または->setRequired(false)を使用しない属性をレンダリングしない方法です。