2016-07-01 13 views
2

Ich habe in seltsame Problem gerannt, die mich verrückt macht. Eigentlich habe ich eine HTML-Struktur wieWAI ARIA - Bildschirmleser liest mehrere Male

<button ng-disabled="vm.updating" ng-click="doSomething()" class="something" type="submit" aria-label="average score"> 
 
    
 
<span ng hide="hideConditional()" class="font-white">score</span> 
 
<span ng-show="showConditional()" class="font-white"> 
 
    <span class="grey"></span> 
 
    <span>scoring</span> 
 
</span> 
 
</button>

Wenn ich auf dem Bildschirm Leser drehen, liest es durchschnittliche Punktzahl Punktzahl Scoring-Taste mehrere Male und dann wieder punkten Scoring, aber ich Ich möchte nur, dass ich den Text lese, den ich in die Schaltfläche schreibe, und ignoriere den Text von untergeordneten Elementen wie alles, was sich innerhalb von Spannen oder einem Steuerelement unterhalb der Schaltfläche befindet. Aber ich kann den Rest des Inhalts nicht ignorieren. Ich habe versucht, aria-hidden auf jedem span aber keinen Nutzen zu verwenden. Kann mir bitte jemand korrigieren? Was fehlt mir hier? Wie kann der Bildschirmleser Text von Elementen innerhalb button ignorieren und es nur Text lesen lassen, der auf der Schaltfläche selbst eingestellt ist?

+0

Haben Sie eine URL mit dieser Funktion? Als ich [einen Stift machte] (http://s.codepen.io/aardrian/debug/YWxqYv), alles, was ich bekomme, ist "durchschnittliche Punktzahl Schaltfläche" im Fokus und (offensichtlich) nichts auf Klick/drücken. Da das AT das gerenderte HTML und nicht die "ng-aria" -Bits selbst liest, ist dies unmöglich, ansonsten zu debuggen. – aardrian

Antwort

0

Ich habe verwendet:

<div class="" aria-hidden="true" role="presentation" > </div> 

Es funktionierte sehr gut für mich.