From 1f5cb1a7178aa537199052c95a7fdcaecacbc3a8 Mon Sep 17 00:00:00 2001
From: webchick <webchick@24967.no-reply.drupal.org>
Date: Wed, 28 Nov 2012 23:16:36 -0800
Subject: [PATCH] Issue #1645420 by Liam Morland, mgifford: Added Use
 @aria-describedby for fieldset descriptions.

---
 core/includes/form.inc | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/core/includes/form.inc b/core/includes/form.inc
index 002de6f5c8de..82e1f3db7416 100644
--- a/core/includes/form.inc
+++ b/core/includes/form.inc
@@ -2795,6 +2795,11 @@ function theme_fieldset($variables) {
   element_set_attributes($element, array('id'));
   _form_set_attributes($element, array('form-wrapper'));
 
+  if (!empty($element['#description'])) {
+    $description_id = $element['#attributes']['id'] . '--description';
+    $element['#attributes']['aria-describedby'] = $description_id;
+  }
+
   $output = '<fieldset' . new Attribute($element['#attributes']) . '>';
   if (!empty($element['#title'])) {
     // Always wrap fieldset legends in a SPAN for CSS positioning.
@@ -2802,7 +2807,9 @@ function theme_fieldset($variables) {
   }
   $output .= '<div class="fieldset-wrapper">';
   if (!empty($element['#description'])) {
-    $output .= '<div class="fieldset-description">' . $element['#description'] . '</div>';
+    $attributes = array('class' => 'fieldset-description', 'id' => $description_id);
+    $output .= '<div' . new Attribute($attributes) . '>' . $element['#description'] . '</div>';
+
   }
   $output .= $element['#children'];
   if (isset($element['#value'])) {
-- 
GitLab