我需要将动态文本绑定到HTML页面上的aria-label
属性中。
这是一个Angular 2应用程序。我正在使用类似以下的代码:
aria-label="Product details for {{productDetails?.ProductName}}"
但我遇到了一个错误:
无法绑定到'aria-label',因为它不是'div'的已知属性。
有什么解决方法吗?
我需要将动态文本绑定到HTML页面上的aria-label
属性中。
这是一个Angular 2应用程序。我正在使用类似以下的代码:
aria-label="Product details for {{productDetails?.ProductName}}"
但我遇到了一个错误:
无法绑定到'aria-label',因为它不是'div'的已知属性。
有什么解决方法吗?
只需在 aria-label 前使用 attr.
:
attr.aria-label="产品详细信息:{{productDetails?.ProductName}}"
或者
[attr.aria-label]="'产品详细信息:' + productDetails?.ProductName"
提示:正如@Simon_Weaver所提到的,有一些组件实现了其自己的 aria-label @Input
,如 mat-select
。
请参见他在这里的答案:Angular Material mat-label accessibility
[ ]
):[attr.aria-label]="'Product details for' + productDetails?.ProductName"
[attr.aria-label]="(typeof productDetails.ProductName !== 'undefined') ?
'Product details for ' + productDetails.ProductName : '' "
这样JAWS/NVDA/Narrator就能够读出该值是否存在。
这对我来说是有效的,不需要[]
。
attr.aria-labelledby="navbarDropdownMenuLink{{ i }}"
[attr.aria-label]="productDetails?.ProductName"
,意思是将productDetails?.ProductName
的值绑定到aria-label
属性上。 - Luca De Nardi[attr.aria-label]
和{{productDetails}}
,因为方括号已经解析了变量。你应该将属性写成没有方括号但有花括号,或者有方括号但没有花括号。请注意不要改变原来的意思。 - Luca De Nardi[attr.aria-labelledby]
同样适用于labelledby。 - Bullsized