我如何在 html5 aria-label 中部分使用另一种语言?

How can i use partly another language in html5 aria-label?

屏幕阅读器的重音由 <html lang="[language]"> 元素控制。当 lang 属性设置为 "de" 时,某些英语单词如 "email" 发音为 "Emil"(德语名字)。有没有办法将 aria-label 中单个单词的重音切换为另一种语言或其他众所周知的解决方法来实现这一点?

类似

<button aria-label="(lang=en:E-Mail) schreiben">

对于您关于 dividual words in an aria-label 的具体问题,答案是否定的。

但是,如果您使用 aria-labelledby 将标签指向另一个元素(或几个其他元素),那么您可以将单词拆分并在您想要的任何单词上使用 lang 属性.

<div class="sr-only" id="mylabel">
  <span lang="en">email</span>
  <span lang="de">schreiben</span>
</div>

<button aria-labelledby="mylabel"></button>

在视觉上是隐藏的(有关 "sr-only" class 的信息,请参阅 What is sr-only in Bootstrap 3?),但可用于屏幕 reader。

2019 年 1 月 14 日更新

如果屏幕 reader(无论是 VoiceOver,如 OP 中所要求的,还是 JAWS 或 NVDA)不使用 aria-labelledby 更改语言,那么您必须嵌入 "hidden"