diff --git a/core/includes/form.inc b/core/includes/form.inc
index b23d708c8fdfc45c8c634dd4a8599f437aa18349..0ef70f8661ab7d022891fc9f5f2e14f7f3956c53 100644
--- a/core/includes/form.inc
+++ b/core/includes/form.inc
@@ -2869,7 +2869,15 @@ function theme_details($variables) {
 
   $output = '<details' . new Attribute($element['#attributes']) . '>';
   if (!empty($element['#title'])) {
-    $output .= '<summary>' . $element['#title'] . '</summary>';
+    $summary_attributes = new Attribute(array(
+      'role' => 'button',
+    ));
+    if (!empty($element['#attributes']['id'])) {
+      $summary_attributes['aria-controls'] = $element['#attributes']['id'];
+    }
+    $summary_attributes['aria-expanded'] = empty($element['#attributes']['open']) ? FALSE : TRUE;
+    $summary_attributes['aria-pressed'] = $summary_attributes['aria-expanded'];
+    $output .= '<summary' . $summary_attributes . '>' . $element['#title'] . '</summary>';
   }
   $output .= '<div class="details-wrapper">';
   if (!empty($element['#description'])) {