How can error messages be customized for HTML5 required attribute in PHP forms for better user experience?

When using the HTML5 required attribute in PHP forms, the default error messages may not provide the best user experience. To customize these error messages, you can use the setCustomValidity() method in JavaScript to set custom error messages based on your validation criteria.

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST['name'];
    
    if (empty($name)) {
        echo '<script>
                document.getElementById("name").setCustomValidity("Please enter your name");
              </script>';
    }
}
?>

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    <input type="text" name="name" id="name" required>
    <input type="submit" value="Submit">
</form>