In fact, quite a few of my posts spawn from forum activity, in part because future me can find my posts easier than forum discussions.
I wanted to share a collection of solutions for customising the notification message when a field is Required - turns out we have a few options.
Then I found myself playing with the Compatibility Mode - a feature that allows you to nominate specific application to behave as if they were on a particular APEX version.
This setting only relevant for specific, esoteric behaviours, but while I was playing with validation messages, I thought it would be worth including how things are different.
|Application Attribute - Compatibility Mode|
If I open Application properties, and set the Compatibility Mode to 5.0, then validations aren't tested until the page submits.
|APEX 5.0 behaviour|
This also demonstrates that if you use Shared Components => Text Messages, and translate one of the documented internal error messages, then you will see this translation in applications behaving has per APEX 5.0.
|Application wide message translation|
The translation also over-rides the
data-valid-messagecustom attribute, as John Snyders suggests that's not coupled with translations.
The current (default) behaviour, appearing from 5.1, offers client side validations.
In this case we receive immediate feedback regarding the fields that are declaratively set to Required.
If I have a
data-valid-message, it uses that.
|Feedback before page submit|
Note the translation haven't been applied, and a custom server-side validation hasn't yet applied.
If the first three fields have been satisfied, then the form will submit, and we can see any custom server-side validations.
|Feedback after page submit|
This means we can customise the message by creating our own server-side validation message - something we used to have to do before things got nice and declarative.
So there are a some pros/cons for either of these solutions to customise validation messages, and it would depend on your APEX version. I wouldn't be surprised if this behaviour is further cleaned up over time.
See moreBasic demo
John Snyders - deep dive
Matt Mulvaney - other considerations
Nick Buytaert - the old way
Patrick Wolf - the really old way
Compatibility Mode - 19.1 Release Notes
There used to be a great article regarding compatibility mode in the German community, possibly by Carsten, but I don't think it's available anymore.