diff --git a/src/wp-admin/includes/class-wp-list-table.php b/src/wp-admin/includes/class-wp-list-table.php
index cdf31db597..2e7be4fa38 100644
--- a/src/wp-admin/includes/class-wp-list-table.php
+++ b/src/wp-admin/includes/class-wp-list-table.php
@@ -1777,9 +1777,9 @@ class WP_List_Table {
 			$attributes = "class='$classes' $data";
 
 			if ( 'cb' === $column_name ) {
-				echo '<th scope="row" class="check-column">';
+				echo '<td class="check-column">';
 				echo $this->column_cb( $item );
-				echo '</th>';
+				echo '</td>';
 			} elseif ( method_exists( $this, '_column_' . $column_name ) ) {
 				echo call_user_func(
 					array( $this, '_column_' . $column_name ),
@@ -1788,16 +1788,26 @@ class WP_List_Table {
 					$data,
 					$primary
 				);
-			} elseif ( method_exists( $this, 'column_' . $column_name ) ) {
-				echo "<td $attributes>";
-				echo call_user_func( array( $this, 'column_' . $column_name ), $item );
-				echo $this->handle_row_actions( $item, $column_name, $primary );
-				echo '</td>';
 			} else {
-				echo "<td $attributes>";
-				echo $this->column_default( $item, $column_name );
+				$tag   = ( $primary === $column_name ) ? 'th' : 'td';
+				$scope = ( $primary === $column_name ) ? ' scope="row"' : '';
+				
+				// Attribute for primary column if available in sortable columns.
+				$abbr = '';
+				if ( $primary === $column_name && isset( $sortable[ $column_name ][2] ) && ! empty( $sortable[ $column_name ][2] ) ) {
+					$abbr = ' abbr="' . esc_attr( $sortable[ $column_name ][2] ) . '"';
+				}
+
+				echo "<$tag $attributes $scope $abbr>";
+
+				if ( method_exists( $this, 'column_' . $column_name ) ) {
+					echo call_user_func( array( $this, 'column_' . $column_name ), $item );
+				} else {
+					echo $this->column_default( $item, $column_name );
+				}
+
 				echo $this->handle_row_actions( $item, $column_name, $primary );
-				echo '</td>';
+				echo "</$tag>";
 			}
 		}
 	}
