Index: src/wp-admin/css/edit.css
===================================================================
--- src/wp-admin/css/edit.css	(revision 55816)
+++ src/wp-admin/css/edit.css	(working copy)
@@ -1068,6 +1068,10 @@
 	padding: 0 8px 8px;
 }
 
+#postcustom #postcustomstuff .add-custom-field {
+	padding: 12px 8px 8px;
+}
+
 #side-sortables #postcustom #postcustomstuff .submit {
 	margin: 0;
 	padding: 0;
@@ -1118,7 +1122,8 @@
 	width: auto;
 }
 
-#postcustomstuff #newmetaleft a {
+#postcustomstuff #newmetaleft a,
+#postcustomstuff #newmeta-button {
 	display: inline-block;
 	margin: 0 8px 8px;
 	text-decoration: none;
Index: src/wp-admin/includes/template.php
===================================================================
--- src/wp-admin/includes/template.php	(revision 55816)
+++ src/wp-admin/includes/template.php	(working copy)
@@ -724,9 +724,6 @@
 
 	if ( $keys ) {
 		natcasesort( $keys );
-		$meta_key_input_id = 'metakeyselect';
-	} else {
-		$meta_key_input_id = 'metakeyinput';
 	}
 	?>
 <p><strong><?php _e( 'Add New Custom Field:' ); ?></strong></p>
@@ -733,7 +730,7 @@
 <table id="newmeta">
 <thead>
 <tr>
-<th class="left"><label for="<?php echo $meta_key_input_id; ?>"><?php _ex( 'Name', 'meta name' ); ?></label></th>
+<th class="left"><label for="metakeyselect"><?php _ex( 'Name', 'meta name' ); ?></label></th>
 <th><label for="metavalue"><?php _e( 'Value' ); ?></label></th>
 </tr>
 </thead>
@@ -753,10 +750,10 @@
 		}
 		?>
 </select>
-<input class="hide-if-js" type="text" id="metakeyinput" name="metakeyinput" value="" />
-<a href="#postcustomstuff" class="hide-if-no-js" onclick="jQuery('#metakeyinput, #metakeyselect, #enternew, #cancelnew').toggle();return false;">
+<input class="hidden" type="text" id="metakeyinput" name="metakeyinput" value="" aria-label="<?php _e( 'New custom field name' ); ?>" />
+<button type="button" id="newmeta-button" class="button button-small hide-if-no-js" onclick="jQuery('#metakeyinput, #metakeyselect, #enternew, #cancelnew').toggleClass('hidden');jQuery('#metakeyinput, #metakeyselect').filter(':visible').trigger('focus');">
 <span id="enternew"><?php _e( 'Enter new' ); ?></span>
-<span id="cancelnew" class="hidden"><?php _e( 'Cancel' ); ?></span></a>
+<span id="cancelnew" class="hidden"><?php _e( 'Cancel' ); ?></span></button>
 <?php } else { ?>
 <input type="text" id="metakeyinput" name="metakeyinput" value="" />
 <?php } ?>
@@ -763,9 +760,9 @@
 </td>
 <td><textarea id="metavalue" name="metavalue" rows="2" cols="25"></textarea></td>
 </tr>
-
-<tr><td colspan="2">
-<div class="submit">
+</tbody>
+</table>
+<div class="submit add-custom-field">
 	<?php
 	submit_button(
 		__( 'Add Custom Field' ),
@@ -775,16 +772,13 @@
 		array(
 			'id'            => 'newmeta-submit',
 			'data-wp-lists' => 'add:the-list:newmeta',
+			'onclick'       => "jQuery('#metakeyselect, #enternew').removeClass('hidden');jQuery('#metakeyinput, #cancelnew').addClass('hidden');jQuery('#metakeyselect').trigger('focus');"
 		)
 	);
 	?>
 </div>
-	<?php wp_nonce_field( 'add-meta', '_ajax_nonce-add-meta', false ); ?>
-</td></tr>
-</tbody>
-</table>
 	<?php
-
+	wp_nonce_field( 'add-meta', '_ajax_nonce-add-meta', false );
 }
 
 /**
