Ich habe Elemente auf einer Seite, die "fokussierbar" sind (Schaltflächen, Elemente mit Tabindex usw.), und der Bildschirmleser liest den Inhalt einwandfrei.
Ich habe jedoch einige andere Elemente, die nicht fokussierbar sind (aufgrund der Tatsache, dass es viele davon gibt - Dropdown-Listenergebnisse usw.), daher möchte ich nicht, dass der Benutzer unzählige Male auf die Registerkarte klickt, aber sie können durch links / rechts / navigiert werden Auf / Ab-Tasten, und sie erhalten die CSS-Klasse "ausgewählt" (obwohl ein anderes Element - ihr übergeordnetes Element - tatsächlich fokussiert ist)
Ich möchte den Leser dazu bringen, diese spezifischen Elemente mit der Klasse "ausgewählt" zu lesen. Wie mache ich es?
(Ich habe versucht, ihnen das Attribut aria-label = "read this" zuzuweisen, aber es hat nicht funktioniert; es funktioniert nur, wenn das Element tatsächlich fokussiert ist.)
Hier sind weitere Details, damit Sie verstehen, was ich erreichen möchte:
<div tabindex="0" >
<span>title1</span>
<ul>
<li class="selected">item1</li>
<li>item2</li>
<li>item3</li>
</ul>
</div>
<div tabindex="0">
<span>title2</span>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
</div>
Hier ist die Geige: https://jsfiddle.net/d5gbjst1/1/
Sie können zwischen diesen beiden Divs hin und her wechseln, und jeder Bildschirmleser (ich habe es mit Windows Narrator, NVDA und JAWS versucht) liest "title1" und alle Elemente für das erste und "title2" und alle Elemente für das zweite. je nachdem wo der Fokus liegt .
Beachten Sie die Klasse "ausgewählt" für das erste Element in der ersten Ul. Jetzt stöbere ich mit den Aufwärts- / Abwärtspfeilen durch meine Ul-Listen, und die Klasse "ausgewählt" wechselt entsprechend von Element zu Element. (Dies ist der separate JS-Code, der der Einfachheit halber in diesem Beispiel nicht enthalten ist.)
Wenn die Klasse "ausgewählt" auf das Element angewendet wird, möchte ich den Leser zwingen, es zu lesen. Ist das überhaupt möglich?
Bearbeiten: Ich habe versucht, auch Attribute zu ul und li hinzuzufügen, immer noch kein Glück:
<ul role="list">
<li role="listitem">