В вашем случае, вам нужна не CMS а статический генератор сайтов. Я настоятельно рекомендую 11ty. Это один из самых свежих из подобных инструментов, его автор очень крутой Zach Leatherman из Netlify.
Почему бы не использовать браузерное Conctraint Validation API? Тогда выделение невалидная форма будет отлавливаться обычным CSS-селектором:
form:invalid {
...
}
Т.к. API неидеальное по своей архитектуре советую использовать через не напрямую, а через библиотеку Bouncer.js. По Costraint Validation API у меня есть доклад-введение в тему. Он немного устарел, но база та же.
The section element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content, typically with a heading
Т.о. наличие заголовка является опциональнм, хотя и рекомендуемым.