Required Checkbox Field Has No Effect I used hook_form_alter to add a required 'confirmation' checkbox to the node deletion form and the #required status is not honored.

The fields/fieldset are property displayed 'node-delete-confirmation' form. 

Here is the hook_form_alter content:

$form['warning'] = array(
    '#type' =&gt; 'fieldset',
    '#title' =&gt; t('Warning! - You Must Check The Box Below To Continue'),
    '#weight' =&gt; -30,
    '#collapsible' =&gt; FALSE,
    '#collapsed' =&gt; FALSE,
);
$form['confirm_delete'] = array(
    '#title' =&gt; t('I fully understand that this action cannot be undone and that statistics linked to this item will be permanently removed.'),
    '#type' =&gt; 'checkbox',
    '#required' =&gt; TRUE,
    '#default_value' =&gt; 0,
);


How can I enforce the 'required' status so that nodes cannot be deleted until the confirmation is acknowledged. 

If I change the code, to completely remove the added fieldset everything works as it should.

Works:

$form['warning']['confirm_delete'] = array(
'#title' =&gt; t('I fully understand that this action cannot be undone and that statistics linked to this item will be permanently removed.'),
'#type' =&gt; 'checkbox',
'#required' =&gt; TRUE,
'#default_value' =&gt; 0,


);
You can add your form validation handler (hook_form_alter):

$form['#validate'] = array('delete_validation_handler') + $form['#validate'];


Your validation handler:

function delete_validation_handler($form, $form_state){
    if(!$form_state['values']['confirm_delete'])
        form_set_error('confirm_delete', t('Message about to confirm it first'))
}