It's not possible to use a class with aria-labelledby or aria-describedby. While it is possible to attach multiple labels to an element using aria-labelledby, the only values it works with are IDs. I imagine this is the case because they expect these labels to be unique for this purpose. One possible solution would be to attach an 'aria-label' to the input with the text that you want it to actually read. For example, having
<label for="textfield">Q.T.Y.</label> <input type="text" id="textfield" aria-label="Quantity">
would allow a screenreader to read out text that is different than the displayed label. Just be aware that many(most?) screen readers will not read the <label>
element if an aria-label has been used on the input.
Edit: A class is intended to be used for multiple instances of an element on a page. When you focus on an element, the screenreader needs to know exactly which element will represent the aria attribute. This is why IDs are used - IDs must be unique to a page - that is, a specific ID can only belong to one element. This allows the browser (and assistive technologies) to quickly and accurately grab the correct element for the aria attribute. If you had three elements on the page with the same class but different content, what would you expect to be read out?
Edit#2: I wanted to revisit this to caution against using an aria-label that is different from the displayed label because of possible issues with dictation technologies (such as Dragon Naturally Speaking or others). A user who is controlling a webpage with their voice will often rely on the displayed labels to properly interact with the page.
To provide an example:
<button aria-label="click to buy">Checkout</button>
A user who sees "checkout" on the page but uses dictation software might dictate "click Checkout button", but the dictation software won't know of a "Checkout" button because the aria label is "click to buy".