diff -u b/core/lib/Drupal/Core/Render/Element/Radio.php b/core/lib/Drupal/Core/Render/Element/Radio.php --- b/core/lib/Drupal/Core/Render/Element/Radio.php +++ b/core/lib/Drupal/Core/Render/Element/Radio.php @@ -65,18 +65,8 @@ // To avoid auto-casting during '==' we convert int 0 to '0' for both // operands. It will prevent wrong true-checking for both cases: 0 == // 'string' and 'string' == 0. - if ($element['#value'] === 0) { - $element['#value'] = '0'; - } - elseif ($element['#value'] === TRUE) { - $element['#value'] = '1'; - } - if ($element['#return_value'] === 0) { - $element['#return_value'] = '0'; - } - elseif ($element['#return_value'] === TRUE) { - $element['#return_value'] = '1'; - } + $element['#value'] = static::castValue($element['#value']; + $element['#return_value'] = static::castValue($element['#return_value']; if ($element['#value'] == $element['#return_value']) { $element['#attributes']['checked'] = 'checked'; diff -u b/core/modules/system/tests/modules/form_test/src/Form/FormTestRadiosCheckedForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestRadiosCheckedForm.php --- b/core/modules/system/tests/modules/form_test/src/Form/FormTestRadiosCheckedForm.php +++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestRadiosCheckedForm.php @@ -1,10 +1,5 @@ t('Which display to use for path'); + $options = array(FALSE => $this->t('None'), 'custom_url' => $this->t('Custom URL')); - $options = array('' => $this->t('None'), 'custom_url' => $this->t('Custom URL')); foreach ($this->view->storage->get('display') as $display_id => $display) { if ($this->view->displayHandlers->get($display_id)->hasPath()) {