Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
Good call on identifying things that shouldn't be done. The rationale, however, is lacking. The point of <strong> and <em> is not to get bold text and italicized text. You can overwrite the default behavior with CSS. The point is to add semantic meaning so that intelligent queries can be done.
I would question the semantics here. <strong> could work as well. <em> should also be used over <i>. I would personally never remove unique identifiers from elements, as the flexibility of being able to style/jQuery a specific element is more efficient than navigating through a list. But a class is a good idea if styles will be reused for many images.