Thank you. I have tried that but it doesn’t resolve the issue.
Topic summary
Making custom personalization fields required on a Shopify product page. The core fix is to use the HTML required attribute on each input and remove the form’s novalidate attribute so browser validation applies.
In Dawn-based themes, novalidate is set in the buy-buttons.liquid snippet; removing it enabled required fields to work. Multiple participants confirmed this resolved the issue after editing buy-buttons.liquid.
Clarification: Line-item Scripts are checkout-only for Shopify Plus and not related to product-page input validation.
Alternative option: A no-code app (Easify Product Options) can create custom options and mark them as required via its settings; a screenshot was shared to illustrate.
Key terms: required attribute enforces that an input must be filled before submission; novalidate disables built-in form validation.
Outcome: Largely resolved by removing novalidate and relying on required attributes. Open question remains on where exactly to add the required attribute after removing novalidate (it should be added to the specific custom input elements).