AEM/CQ5 (5.6.1) appears to have a deficiency in how content validation works in the out-of-the-box product.
Though component dialogs have a mechanism for validation, the validators only get executed when the dialog is open. The problem is that a component can be added to a page, and without opening the component's dialog, the page can be activated with the unconfigured component. Even worse, it's possible to activate a page without completing mandatory configuration in its page properties dialog.
I have previously dealt with the latter by creating a replication preprocessor (com.day.cq.replication.Preprocessor) which validated the expected page properties. This is suboptimal, since it has its own validation logic, which may diverge from the dialog validators. It also does nothing to validate components on the page.
Is there any way to leverage the validation rules in component dialogs for validating content prior to activation? If not, do you have any other suggestions for improving pre-activation content (page and component properties) validation?