Index: wp-includes/media.php
===================================================================
--- wp-includes/media.php	(revision 35505)
+++ wp-includes/media.php	(working copy)
@@ -1397,8 +1397,10 @@
 	if ( $atts['width'] < 1 || empty( $atts['caption'] ) )
 		return $content;
 
-	if ( ! empty( $atts['id'] ) )
-		$atts['id'] = 'id="' . esc_attr( sanitize_html_class( $atts['id'] ) ) . '" ';
+	if ( ! empty( $atts['id'] ) ) {
+		$att_id     = esc_attr( sanitize_html_class( $atts['id'] ) );
+		$atts['id'] = 'id="' . $att_id . '" ';
+	}
 
 	$class = trim( 'wp-caption ' . $atts['align'] . ' ' . $atts['class'] );
 
@@ -1429,11 +1431,11 @@
 
 	$html = '';
 	if ( $html5 ) {
-		$html = '<figure ' . $atts['id'] . $style . 'class="' . esc_attr( $class ) . '">'
-		. do_shortcode( $content ) . '<figcaption class="wp-caption-text">' . $atts['caption'] . '</figcaption></figure>';
+		$html = '<figure ' . $atts['id'] . $style . 'class="' . esc_attr( $class ) . '"' . 'aria-describedby="caption-' . $att_id . '">'
+		. do_shortcode( $content ) . '<figcaption class="wp-caption-text" id="caption-' . $att_id .'">' . $atts['caption'] . '</figcaption></figure>';
 	} else {
 		$html = '<div ' . $atts['id'] . $style . 'class="' . esc_attr( $class ) . '">'
-		. do_shortcode( $content ) . '<p class="wp-caption-text">' . $atts['caption'] . '</p></div>';
+		. str_replace( '<img', '<img aria-describedby="caption-' . $att_id . '"', do_shortcode( $content ) ) . '<p class="wp-caption-text" id="caption-' . $att_id .'">' . $atts['caption'] . '</p></div>';
 	}
 
 	return $html;
