执行功能时需要宣布aria标签

时间:2018-12-06 21:40:13

标签: javascript angular accessibility wai-aria

<div class="accordion-header" (click)="toggleExpandCollapse()" tabindex="0" (keyup.enter)="toggleExpandCollapse()">

   <span class="accordion-title" role="button" [attr.aria-label]="toggled ? menuItemHeader.label + 'expanded' : menuItemHeader.label + 'collapsed'">`{{ menuItemHeader.label }}</span>`

我目前拥有可以折叠或展开的手风琴元素。折叠时,屏幕阅读器会将其宣布为折叠状态;如果展开,则将其宣布为折叠状态。 对于可访问性用户,我现在需要的是当他们按下Enter键以展开手风琴时,屏幕阅读器应宣布“展开”。 因此,我需要该(keyup.enter)=“ toggleExpandCollapse()”来宣布aria-label =“ expanded”。我该怎么办?

2 个答案:

答案 0 :(得分:1)

aria-*属性分为两类:状态和属性。

state是可以更改的,通常是由于用户交互(例如aria-checked)。

property是定义对象“性质”的事物,其值很少更改,例如aria-required

属性发生更改时,不会向用户发出更改的通知。

状态发生更改时,屏幕阅读器会宣布更改。

aria-label财产。进行更改时,将宣布其价值。

aria-expanded状态。进行更改时,将宣布其值

我建议您不要更改对象的aria-label,而应设置aria-expanded并将其值在true和false之间切换。

答案 1 :(得分:0)

屏幕阅读器将根据aria-expanded属性的状态自动读取“展开”或“折叠”。这是您要切换的属性。