This was inspired by the discussion in https://backdrop.zulipchat.com/#narrow/stream/218635-Backdrop/topic/.24f...
Consider this form element:
$form['my_checkboxes'] = array(
'#type' => 'checkboxes',
'#title' => t('my Checkboxes'),
'#options' => array(
1 => 'one',
2 => 'two',
3 => 'three',
4 => 'four',
),
'#description' => t('This is the description for the entire set of checkboxes'),
'#default_value' => array(1, 3),
);
One can set descriptions for each individual checkbox, and also disable only one/some of these checkboxes:
$form['my_checkboxes'][1]['#description'] = t('This is the description for the 1st checkbox');
$form['my_checkboxes'][3]['#description'] = t('This is the description for the 3rd checkbox');
$form['my_checkboxes'][2]['#disabled'] = TRUE;
The above would result in this:

Although individual descriptions do not make sense for select elements, there are perfectly valid cases where you need to: - make sure that one/some of the options are disabled/locked (user cannot select them, but they are still shown) - make sure that one/some of the options are selected + at the same time disabled/locked (so that you can force one or more options that must be selected in addition to those that the user can select).
However, if you consider this select element:
$form['my_select'] = array(
'#type' => 'select',
'#title' => t('my Select'),
'#options' => array(
1 => 'one',
2 => 'two',
3 => 'three',
4 => 'four',
),
'#default_value' => array(1, 3),
);
...or this multi-select element:
$form['my_select'] = array(
'#type' => 'select',
'#multiple' => TRUE,
'#title' => t('my multi-Select'),
'#options' => array(
'group1' => array(
1 => 'one',
2 => 'two',
),
'group2' => array(
3 => 'three',
4 => 'four',
),
),
'#default_value' => array(1, 3),
);
Then this has absolutely no effect:
$form['my_select'][2]['#disabled'] = TRUE;
Recent comments
Hi Kevin I am interested assisting you developing a theme by cloning feature from existing WordPress website. Please let me know your suitable time to discuss further...
Create a theme from existing website
I've updated the Zulip link in both places I found it. No need to post again, unless you have something new to say. We'll pull together feedback from all the sources.
Backdrop CMS Core Priorities
Should we post here again, what we posted over there? Or would that unnecessarily duplicate things? The link to a Zulip thread in this initial post leads to an internal one, but there's...
Backdrop CMS Core Priorities