Get the image title and alt from custom query

At the top of your code, just after $large_image, you can add this :

$image_alt = get_post_meta((int)get_post_meta( get_the_ID() , "_thumbnail_id" , true ), '_wp_attachment_image_alt', true);
$image_title = get_the_title((int)get_post_meta( get_the_ID() , "_thumbnail_id" , true ));

The alt for attachment is stock in post_meta (_wp_attachment_image_alt), the title is a post_title.

And then your replace the value in your printf().

EDIT:

printf( "<div class="shoe %s" data-image="https://wordpress.stackexchange.com/questions/289068/%s" data-large-image="https://wordpress.stackexchange.com/questions/289068/%s" ><div class="shoe-outer" ><div class="shoe-inner" ><img src="https://wordpress.stackexchange.com/questions/289068/%s" alt="https://wordpress.stackexchange.com/questions/289068/%s" title="https://wordpress.stackexchange.com/questions/289068/%s" ></div></div></div>", join(" ", $terms_array ), esc_attr( $image[0] ), esc_attr( $large_image[0] ), $brand_image, $image_alt, $image_title );

Tell me if it’s work 🙂