Es ist nicht möglich, Stil eine Klasse mit aria-labelledby oder aria-describedby zu verwenden. Es ist zwar möglich, mehrere Labels mit aria-labelledby an ein Element anzuhängen, die einzigen Werte, mit denen es arbeitet, sind IDs. Ich kann mir vorstellen, dass dies der Fall ist, weil sie erwarten, dass diese Etiketten für diesen Zweck einzigartig sind. Eine mögliche Lösung wäre, ein "Aria-Label" an die Eingabe mit dem Text anzuhängen, den Sie tatsächlich lesen möchten. Zum Beispiel mit
<label for="textfield">Q.T.Y.</label> <input type="text" id="textfield" aria-label="Quantity">
ein Screen erlauben würde, Text vorzulesen, die anders als die angezeigte Label ist. Beachten Sie jedoch, dass viele (meist?) Screenreader das Element <label>
nicht lesen, wenn ein Aria-Label am Eingang verwendet wurde.
Bearbeiten: Eine Klasse soll für mehrere Instanzen eines Elements auf einer Seite verwendet werden. Wenn Sie sich auf ein Element konzentrieren, muss der Screenreader genau wissen, welches Element das Attribut aria darstellt. Aus diesem Grund werden IDs verwendet - IDs müssen für eine Seite eindeutig sein, dh eine bestimmte ID darf nur zu einem Element gehören. Dies ermöglicht dem Browser (und assistiven Technologien), schnell und genau das richtige Element für das Attribut aria zu finden. Wenn Sie drei Elemente auf der Seite mit derselben Klasse, aber unterschiedlichen Inhalten hätten, was würden Sie erwarten, dass sie ausgelesen werden?
Ich denke, die Art, wie es gemacht wird, ist, dass Sie JavaScript verwenden, um den Text/die Eigenschaft des Elements automatisch zu aktualisieren, auf das von "Aria-labelledby" verwiesen wird. –