Realising that classes aren't subject to the same semantics as elements is a massive breakthrough for a front-end developer to make IMO.
These classes aren't 'semantic' because no classes are; semantics in the front-end development sense is when something (i.e. a machine) can glean meaning from something. No machines (browsers, search bots, assistive technologies etc) actually interpret classes, they merely match them. The only thing that gleans meaning from a class is a human, so you should write classes for people.
Thus, in a roundabout way, no classes are semantic, so we need to stop worrying about that.
Cheers for the comment!