diff --git a/clientside_validation_jquery/js/cv.jquery.ife.js b/clientside_validation_jquery/js/cv.jquery.ife.js
index 369ead8..9834473 100644
--- a/clientside_validation_jquery/js/cv.jquery.ife.js
+++ b/clientside_validation_jquery/js/cv.jquery.ife.js
@@ -23,5 +23,19 @@
         }
       });
     };
+    if (!options.hasOwnProperty('errorPlacement')) {
+      options.errorPlacement = function(error, element) {
+        // Check if radio is part of 'radios' fieldset and add beneath <legend>.
+        if ($(element).attr('type') === 'radio') {
+          var elemSelectorArray = $(element).data('drupal-selector').split('-');
+          var selector = elemSelectorArray.slice(0, elemSelectorArray.length - 1).join('-');
+          var legend = $(element).closest('fieldset[data-drupal-selector="' + selector +'"]').find('legend');
+          if (legend.length) {
+            return error.insertAfter(legend[0]);
+          }
+        }
+        error.insertAfter(element);
+      };
+    }
   });
 })(jQuery);
diff --git a/src/Plugin/CvValidator/Required.php b/src/Plugin/CvValidator/Required.php
index 080a937..9849ff5 100644
--- a/src/Plugin/CvValidator/Required.php
+++ b/src/Plugin/CvValidator/Required.php
@@ -36,6 +36,21 @@ class Required extends CvValidatorBase {
   protected function getRules($element, FormStateInterface $form_state) {
     $is_required = $this->getAttributeValue($element, 'required');
 
+    // Inherit available rules of parent 'radios' if 'radio' isn't explicitly required.
+    if ($element['#type'] === 'radio' && !$is_required) {
+      $parent_path = $element['#array_parents'];
+      // Remove the option index.
+      array_pop($parent_path);
+      $complete_form = $form_state->getCompleteForm();
+      foreach ($parent_path as $key) {
+        $parent_elem = &$complete_form[$key];
+      }
+
+      if ($parent_elem['#type'] === 'radios') {
+        return $this->getRules($parent_elem, $form_state);
+      }
+    }
+
     $states = $this->getAttributeValue($element, 'states') ?: [];
     $is_conditionally_required = array_diff_key($this->states, $states);
 
