Ich beziehe mich darauf, was der Screenreader für den Button ausspricht, den Sie drücken, um einen Beitrag zu liken. Oder vielleicht können Sie auf irgendeine Weise andere Reaktionen hinzufügen, aber mein Screenreader teilt mir das überhaupt nicht mit. Das einzige Element, das ein Label erhält, ist das, das die aktuelle Anzahl der Likes anzeigt, falls diese 1 oder höher ist. Ist sie 0, existiert dieses Steuerelement nicht. Der Button, den ich drücken muss, um eine „Like“-Reaktion hinzuzufügen, ist für meine Screenreader unter Windows, Mac und iOS jedoch unbeschriftet.
Ich bin blind und verwende daher keine Maus. Außerdem ist das title-Attribut im Allgemeinen ohnehin problematisch für Touch-Interaktionen, da es normalerweise keine einfache Möglichkeit gibt, einen Maus-Hover auszulösen.
Ich hoffe, das hilft weiter…
Um es klarzustellen: Ich beziehe mich auf den Button #discourse-reactions-actions-916340 > div > div.discourse-reactions-reaction-button.my-likes > button. Dieser Button hat weder ein title- noch ein aria-label-Attribut, sondern enthält nur ein SVG, das als aria-hidden markiert ist. Selbst wenn dies nicht der Fall wäre, enthalten das SVG sowie seine Kind-Elemente keine Informationen, die ein Screenreader nutzen könnte. Die Lösung besteht also darin:
- Dem Button ein aria-label zu geben, das beispielsweise „Diesen Beitrag liken“ oder „Mit Like reagieren“ oder Ähnliches sagt. Da es möglicherweise irgendwann mehr Reaktionen geben wird, muss diese Formulierung explizit angeben, welche Reaktion hinzugefügt wird.
- Das Element, das die Anzahl enthält (
#discourse-reactions-counter-916340), sollte wahrscheinlich bessere Informationen darüber erhalten, wer genau mit welcher Reaktion reagiert hat. Ich weiß nicht, wie sehende Personen dies erfahren, wenn Sie auf diese Zahl klicken und dann irgendwo ein Popup erscheint. Aber auch dies muss für Screenreader- und Tastaturbenutzer zugänglich gemacht werden.
- Falls später weitere Reaktionen hinzugefügt werden sollen, müssen diese nicht nur für die Maus, sondern auch für Touch, Tastatur und Screenreader zugänglich sein.
Derzeit scheint das Widget zumindest für mich nur „Like“-Reaktionen zuzulassen.
Entschuldigen Sie die mehreren Beiträge, aber dies zeigt, wie akribisch es manchmal sein kann, die Ursache für etwas zu finden. Das title-Attribut bei Beiträgen, die nicht von mir stammen, befindet sich derzeit im übergeordneten div des eigentlichen „Like“-Buttons. Damit ein Screenreader es jedoch erfasst, muss das title-Attribut direkt auf dem Button selbst stehen. Screenreader erfassen Titel nicht einfach von irgendeinem Element. Dies wurde in den letzten 25 Jahren zu oft missbraucht, um diese Verallgemeinerung zu rechtfertigen. Wenn Sie das title-Attribut also auf das untergeordnete <button>-Element verschieben, wird der Screenreader es korrekt erfassen.