Source 
  File: wp-admin/includes/class-wp-media-list-table.php 
 private function _get_row_actions( $post, $att_title ) {
		$actions = array();
		if ( $this->detached ) {
			if ( current_user_can( 'edit_post', $post->ID ) ) {
				$actions['edit'] = sprintf(
					'<a href="%s" aria-label="%s">%s</a>',
					get_edit_post_link( $post->ID ),
					/* translators: %s: Attachment title. */
					esc_attr( sprintf( __( 'Edit “%s”' ), $att_title ) ),
					__( 'Edit' )
				);
			}
			if ( current_user_can( 'delete_post', $post->ID ) ) {
				if ( EMPTY_TRASH_DAYS && MEDIA_TRASH ) {
					$actions['trash'] = sprintf(
						'<a href="%s" class="submitdelete aria-button-if-js" aria-label="%s">%s</a>',
						wp_nonce_url( "post.php?action=trash&post=$post->ID", 'trash-post_' . $post->ID ),
						/* translators: %s: Attachment title. */
						esc_attr( sprintf( __( 'Move “%s” to the Trash' ), $att_title ) ),
						_x( 'Trash', 'verb' )
					);
				} else {
					$delete_ays        = ! MEDIA_TRASH ? " onclick='return showNotice.warn();'" : '';
					$actions['delete'] = sprintf(
						'<a href="%s" class="submitdelete aria-button-if-js"%s aria-label="%s">%s</a>',
						wp_nonce_url( "post.php?action=delete&post=$post->ID", 'delete-post_' . $post->ID ),
						$delete_ays,
						/* translators: %s: Attachment title. */
						esc_attr( sprintf( __( 'Delete “%s” permanently' ), $att_title ) ),
						__( 'Delete Permanently' )
					);
				}
			}
			$actions['view'] = sprintf(
				'<a href="%s" aria-label="%s" rel="bookmark">%s</a>',
				get_permalink( $post->ID ),
				/* translators: %s: Attachment title. */
				esc_attr( sprintf( __( 'View “%s”' ), $att_title ) ),
				__( 'View' )
			);
			if ( current_user_can( 'edit_post', $post->ID ) ) {
				$actions['attach'] = sprintf(
					'<a href="#the-list" onclick="findPosts.open( \'media[]\', \'%s\' ); return false;" class="hide-if-no-js aria-button-if-js" aria-label="%s">%s</a>',
					$post->ID,
					/* translators: %s: Attachment title. */
					esc_attr( sprintf( __( 'Attach “%s” to existing content' ), $att_title ) ),
					__( 'Attach' )
				);
			}
		} else {
			if ( current_user_can( 'edit_post', $post->ID ) && ! $this->is_trash ) {
				$actions['edit'] = sprintf(
					'<a href="%s" aria-label="%s">%s</a>',
					get_edit_post_link( $post->ID ),
					/* translators: %s: Attachment title. */
					esc_attr( sprintf( __( 'Edit “%s”' ), $att_title ) ),
					__( 'Edit' )
				);
			}
			if ( current_user_can( 'delete_post', $post->ID ) ) {
				if ( $this->is_trash ) {
					$actions['untrash'] = sprintf(
						'<a href="%s" class="submitdelete aria-button-if-js" aria-label="%s">%s</a>',
						wp_nonce_url( "post.php?action=untrash&post=$post->ID", 'untrash-post_' . $post->ID ),
						/* translators: %s: Attachment title. */
						esc_attr( sprintf( __( 'Restore “%s” from the Trash' ), $att_title ) ),
						__( 'Restore' )
					);
				} elseif ( EMPTY_TRASH_DAYS && MEDIA_TRASH ) {
					$actions['trash'] = sprintf(
						'<a href="%s" class="submitdelete aria-button-if-js" aria-label="%s">%s</a>',
						wp_nonce_url( "post.php?action=trash&post=$post->ID", 'trash-post_' . $post->ID ),
						/* translators: %s: Attachment title. */
						esc_attr( sprintf( __( 'Move “%s” to the Trash' ), $att_title ) ),
						_x( 'Trash', 'verb' )
					);
				}
				if ( $this->is_trash || ! EMPTY_TRASH_DAYS || ! MEDIA_TRASH ) {
					$delete_ays        = ( ! $this->is_trash && ! MEDIA_TRASH ) ? " onclick='return showNotice.warn();'" : '';
					$actions['delete'] = sprintf(
						'<a href="%s" class="submitdelete aria-button-if-js"%s aria-label="%s">%s</a>',
						wp_nonce_url( "post.php?action=delete&post=$post->ID", 'delete-post_' . $post->ID ),
						$delete_ays,
						/* translators: %s: Attachment title. */
						esc_attr( sprintf( __( 'Delete “%s” permanently' ), $att_title ) ),
						__( 'Delete Permanently' )
					);
				}
			}
			if ( ! $this->is_trash ) {
				$actions['view'] = sprintf(
					'<a href="%s" aria-label="%s" rel="bookmark">%s</a>',
					get_permalink( $post->ID ),
					/* translators: %s: Attachment title. */
					esc_attr( sprintf( __( 'View “%s”' ), $att_title ) ),
					__( 'View' )
				);
			}
		}
		/**
		 * Filters the action links for each attachment in the Media list table.
		 *
		 * @since 2.8.0
		 *
		 * @param string[] $actions  An array of action links for each attachment.
		 *                           Default 'Edit', 'Delete Permanently', 'View'.
		 * @param WP_Post  $post     WP_Post object for the current attachment.
		 * @param bool     $detached Whether the list table contains media not attached
		 *                           to any posts. Default true.
		 */
		return apply_filters( 'media_row_actions', $actions, $post, $this->detached );
	}