diff --git a/core/lib/Drupal/Core/Form/FormValidator.php b/core/lib/Drupal/Core/Form/FormValidator.php index 359b35ef30..7786870027 100644 --- a/core/lib/Drupal/Core/Form/FormValidator.php +++ b/core/lib/Drupal/Core/Form/FormValidator.php @@ -257,7 +257,8 @@ protected function doValidateForm(&$elements, FormStateInterface &$form_state, $ // length if it's a string, and the item count if it's an array. // An unchecked checkbox has a #value of integer 0, different than // string '0', which could be a valid value. - $is_empty_multiple = (is_array($elements['#value']) && count($elements['#value']) == 0); + $test_countability = is_array($elements['#value']) || elements['#value'] instanceOf Countable; + $is_empty_multiple = $test_countability && count($elements['#value']) == 0; $is_empty_string = (is_string($elements['#value']) && Unicode::strlen(trim($elements['#value'])) == 0); $is_empty_value = ($elements['#value'] === 0); $is_empty_null = is_null($elements['#value']);