The advantage for the user is that it's obvious whick element is causing the problem and there's no alert window that needs to be clicked away.
At time of writing Safari does not enforce input fields.
This is an unintuitive quirk of for elements defined to have CDATA content.
When the checkbox is not checked and the Submit button is clicked an alert is displayed similar to the examples above, but using our text instead of the default.
Here you can see the custom message being displayed in Firefox: Custom messages can be set in a similar manner for object states (validity.value Missing, validity.pattern Mismatch, ...) to determing the right message. The previous example was starting to become a bit cluttered with two Java Script script blocks as well as the The forms behaviour should be unchanged: While it looks much more complicated, this is a better solution because it allows for the HTML and Java Script to be maintained separately.
In this example, many browsers correctly convert ©=3 to ©=3, which may cause the link to fail.
Since 〈 is the entity for the left-pointing angle bracket, some browsers also convert &lang=en to 〈=en.
And one old browser even finds the entity §, converting §ion=2 to §ion=2.