Index: wp-includes/comment-template.php
===================================================================
--- wp-includes/comment-template.php	(revision 23517)
+++ wp-includes/comment-template.php	(working copy)
@@ -1491,7 +1491,35 @@
 
 	$in_comment_loop = false;
 }
+ 
+/**
+ * Builds an input field bassed on arguments of your choosing
+ *
+ * Pass in an array of attributes that the input field should have.
+ * Properties can be passed as well with the value of NULL to omit
+ *  an optional value as per HTML5 syntax
+ *
+ * @param array $args attributes and the values they should have
+ */
+function input_builder( $args ) {
+	$defaults = array(
+		'type' => 'text',
+	);
+	$args = wp_parse_args( $args, $defaults );
+	$input_string = '<input ';
 
+	foreach( $args as $attr => $val ) {
+		if ( is_null( $val ) )
+			$input_string .= esc_attr( $attr ) . ' ';
+		else
+			$input_string .= esc_attr( $attr ) . '="'. esc_attr( $val ) . '" '; 
+	}
+
+	$input_string .= '/>';
+	return $input_string;
+}
+
+
 /**
  * Outputs a complete commenting form for use within a template.
  * Most strings and form fields may be controlled through the $args array passed
@@ -1520,13 +1548,57 @@
 
 	$req = get_option( 'require_name_email' );
 	$aria_req = ( $req ? " aria-required='true'" : '' );
+
+	$html5 = isset( $args['html5'] ) && $args['html5'];
+
+	$author_input_attr = array(
+		'id'    => 'author',
+		'name'  => 'author',
+		'type'  => 'text',
+		'value' =>  esc_attr( $commenter['comment_author'] ),
+		'size'  => '30',
+		'aria-required' => ( $req ) ? 'true' : 'false',
+	);
+	if ( $html5 ) {
+		$author_input_attr['placeholder'] = __( 'Your Name' );
+		if( $req )
+			$author_input_attr['required'] = null;
+	}
+
+	$email_input_attr = array(
+		'id'    => 'email',
+		'name'  => 'email',
+		'type'  => $html5 ? 'email' : 'text',
+		'value' =>  esc_attr( $commenter['comment_author_email'] ),
+		'size'  => '30',
+		'aria-required' => ( $req ) ? 'true' : 'false',
+	);
+	if ( $html5 ) {
+		$email_input_attr['pattern'] = '';
+		$email_input_attr['placeholder'] = __( 'Your@Email.com' );
+		if( $req )
+			$email_input_attr['required'] = null;
+	}
+
+	$url_input_attr = array(
+		'id'    => 'url',
+		'name'  => 'url',
+		'type'  => $html5 ? 'url' : 'text',
+		'value' => esc_attr( $commenter['comment_author_url'] ),
+		'size'  => '30'
+	);
+	if ( $html5 ) {
+		$url_input_attr['pattern'] = '';
+		$url_input_attr['placeholder'] = __( 'http://YourWebsite.com' );
+	}
+
 	$fields =  array(
 		'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
-		            '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
+					input_builder( $author_input_attr ) . '</p>',
 		'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
-		            '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
+					input_builder( $email_input_attr ) . '</p>',
 		'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label>' .
-		            '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
+					input_builder( $url_input_attr ) . '</p>',
 	);
 
 	$required_text = sprintf( ' ' . __('Required fields are marked %s'), '<span class="required">*</span>' );
