屏幕 reader 未读取韩语和俄语
Screen reader isn't reading Korean and Russian
我正在开发一个 angular 应用程序,该应用程序已实现本地化,它有一个下拉菜单可以帮助用户 select 语言,NVDA 屏幕 reader 只能读取英语、西班牙语( Espanol )... 但看不懂用母语写的韩语和俄语,请指教
NVDA 在不添加 aria-label 标签的情况下识别、读取英语、西班牙语,即使在添加标签后它也不适用于韩语和俄语
您遇到的问题有两个,第一个是您的 HTML 无法识别语言的变化,第二个是可能不熟悉屏幕的使用 reader .
添加 lang
属性
要解决识别特定部分语言的第一个问题很简单,我们使用 HTML lang
属性。
您可能会在整个文档中使用它,但您可以在任何部分/流程内容元素上使用它,例如 <div>
、<p>
等以向屏幕发送信号 readers 和辅助技术,语言已经改变。
在特定屏幕中 readers 这将自动切换到该语言包(如果安装在客户端计算机上)。
有一个 list of the ISO language codes here 可以使用。
列表中 lang
属性的示例 HTML
<ul>
<li>
<a lang='en'>English</a>
</li>
<li>
<a lang='ko'>한국어</a>
</li>
<li>
<a lang='ru'>русский</a>
</li>
</ul>
旁白 - 请注意锚点 (<a>
) 仅应在导航发生时使用,并且应具有有效的 href
属性 (不是 href="#"
),这可能会更好 <select>
.
屏幕reader使用
即使使用上述标记,如果客户端屏幕 reader 不支持给定的语言,您仍然可能遇到问题。
在某些屏幕 reader 中,可以通过在 OS.
上安装相关语言包来解决此问题
对于Windows,它是“设置”->“时间和语言”->“语言”->“添加语言”
在其他屏幕上 readers 它是需要更改的实际合成器。
在您的情况下,NVDA 需要使用“eSpeak NG”合成器才能正确识别不同的语言。 (其他合成器可能会工作,但我不熟悉它们,默认的“Windows Speech API version 5”合成器不会自动切换语言(如果安装了语言包,它会自动切换语言的整个文档, 但不适用于文档片段))
要将合成器“Windows Speech API 版本 5”更改为“eSpeak NG”,请右键单击工具栏中的 NVDA 图标,然后转到“首选项”->“合成器。 .." -> 更改“合成器”下拉菜单并按“确定”。
如果您更新合成器并更新您的 HTML 以使用 lang
属性(而不是您一直放在示例小提琴中的 link
属性)屏幕 reader 将正确识别语言。
我的建议
尽管以上所有方法都可以有效解决您的问题,但我建议如果您的页面语言是英语,那么所有选项都使用英语。
然后,如果有人选择另一种语言(韩语),您就可以用该语言(韩语)显示所有选项。
虽然这看起来不太容易访问,但大多数浏览器都提供“自动翻译”功能,如果菜单都是一种语言,该功能将正确翻译菜单(确保为页面声明正确的语言(<html lang="en">
) 因为这很重要)。
这也意味着屏幕 reader 用户不需要知道如何更改他们的合成器等
最后,它使您不必将 lang
属性添加到选项列表,使您的标记更清晰。
这是我的个人建议,并非官方指导
我正在开发一个 angular 应用程序,该应用程序已实现本地化,它有一个下拉菜单可以帮助用户 select 语言,NVDA 屏幕 reader 只能读取英语、西班牙语( Espanol )... 但看不懂用母语写的韩语和俄语,请指教
NVDA 在不添加 aria-label 标签的情况下识别、读取英语、西班牙语,即使在添加标签后它也不适用于韩语和俄语
您遇到的问题有两个,第一个是您的 HTML 无法识别语言的变化,第二个是可能不熟悉屏幕的使用 reader .
添加 lang
属性
要解决识别特定部分语言的第一个问题很简单,我们使用 HTML lang
属性。
您可能会在整个文档中使用它,但您可以在任何部分/流程内容元素上使用它,例如 <div>
、<p>
等以向屏幕发送信号 readers 和辅助技术,语言已经改变。
在特定屏幕中 readers 这将自动切换到该语言包(如果安装在客户端计算机上)。
有一个 list of the ISO language codes here 可以使用。
列表中 lang
属性的示例 HTML
<ul>
<li>
<a lang='en'>English</a>
</li>
<li>
<a lang='ko'>한국어</a>
</li>
<li>
<a lang='ru'>русский</a>
</li>
</ul>
旁白 - 请注意锚点 (<a>
) 仅应在导航发生时使用,并且应具有有效的 href
属性 (不是 href="#"
),这可能会更好 <select>
.
屏幕reader使用
即使使用上述标记,如果客户端屏幕 reader 不支持给定的语言,您仍然可能遇到问题。
在某些屏幕 reader 中,可以通过在 OS.
上安装相关语言包来解决此问题对于Windows,它是“设置”->“时间和语言”->“语言”->“添加语言”
在其他屏幕上 readers 它是需要更改的实际合成器。
在您的情况下,NVDA 需要使用“eSpeak NG”合成器才能正确识别不同的语言。 (其他合成器可能会工作,但我不熟悉它们,默认的“Windows Speech API version 5”合成器不会自动切换语言(如果安装了语言包,它会自动切换语言的整个文档, 但不适用于文档片段))
要将合成器“Windows Speech API 版本 5”更改为“eSpeak NG”,请右键单击工具栏中的 NVDA 图标,然后转到“首选项”->“合成器。 .." -> 更改“合成器”下拉菜单并按“确定”。
如果您更新合成器并更新您的 HTML 以使用 lang
属性(而不是您一直放在示例小提琴中的 link
属性)屏幕 reader 将正确识别语言。
我的建议
尽管以上所有方法都可以有效解决您的问题,但我建议如果您的页面语言是英语,那么所有选项都使用英语。
然后,如果有人选择另一种语言(韩语),您就可以用该语言(韩语)显示所有选项。
虽然这看起来不太容易访问,但大多数浏览器都提供“自动翻译”功能,如果菜单都是一种语言,该功能将正确翻译菜单(确保为页面声明正确的语言(<html lang="en">
) 因为这很重要)。
这也意味着屏幕 reader 用户不需要知道如何更改他们的合成器等
最后,它使您不必将 lang
属性添加到选项列表,使您的标记更清晰。
这是我的个人建议,并非官方指导