Ich implementiere Barrierefreiheit für Dropdown-Komponente, die Besonderheit meiner Dropdown ist es füllt Werte im Optionsmenü nur beim Öffnen Dropdown, dh es im laufenden Betrieb kompiliert die Vorlage und hängt an die Dropdown-Box.Eingabehilfen für die Dropdown-Komponente
Dropdown HTML:
<div id="dropdown" ng-click="openDropdown()">
<div id="selectedValue" role="listbox" tabindex="0" aria-label="{{selectedVal}}" aria-owns="dropDownMenu">{{selectedVal}}</div>
</div>
DropDown Menu template(which gets compiled and polpulated after clicking dropdown above) :
<div id="dropDownMenu">
<li ng-click="selectItem()" role="option">item1</li>
<li ng-click="selectItem()" role="option">item2</li>
</div>
Ich bin vor zwei Probleme
Wie mein #dropdownMenu auf Klick von #dropdown (dynamische Vorlage Generation) Backen haben keinen Zugriff auf #dropdownMenu generiert wird, wenn der Fokus so #selectedValue kommt es gibt nicht die Anzahl der Optionen usw. an, wie im Fall einer typischen Auswahlbox.
Ich gebe aria-label = "{{selectedVal}}" für #selectedValue also beim Klick auf die Pfeiltasten javascript kümmert sich um die Aktualisierung von selectedVal, obwohl #dropdownMenu nicht geöffnet ist, aber der Wert von selectedVal wurde nicht bekanntgegeben durch Backen 16.0, es meldet es nur erst einmal als Benutzer Tabs hinein. Beachte, dass dies in Backen 14.0 funktioniert.
Wir freuen uns für einige Lösungen ....
Ich versuche, unser vorhandenes Dropdown zugänglich zu machen, also kann ich die Dropdown-Funktionalität viel nicht ändern. Danke für Ihren Hinweis, dass Aria-Label nicht verwendet werden sollte, um den Wert an den Benutzer zu übermitteln, ich versuchte auch Aria-Live = "höflich" in # selectedvalue, aber Kiefer noch nichts als Wertänderungen zu melden. Ich vermute, dass dies passiert wenn wir die Listbox-Rolle zu #selectedvalue hinzufügen. – jsHero