Javascript 是否可以在运行时设置页面语言以实现可访问性和WCAG 2 3.1.1合规性?

Javascript 是否可以在运行时设置页面语言以实现可访问性和WCAG 2 3.1.1合规性?,javascript,html,accessibility,wcag2.0,Javascript,Html,Accessibility,Wcag2.0,如果页面加载后使用javascript更改元素上的语言属性,这会对可访问性造成不利影响吗?或者,屏幕阅读器和其他辅助设备通常会让页面在解析之前加载动态内容吗?此外,它是否符合WCAG 23.1.1?我已经阅读了规范的这一部分,它似乎没有触及这一点 在这种情况下,系统是一个单页web应用程序,根据用户偏好加载各种语言的内容。我们也在研究3.1.2(将lang添加到子元素),但是我们仍然需要适当地标记元素 我目前的实施计划是首先将lang改为英语(因为这是默认语言)然后在加载用户的首选项时更改lan

如果页面加载后使用javascript更改
元素上的语言属性,这会对可访问性造成不利影响吗?或者,屏幕阅读器和其他辅助设备通常会让页面在解析之前加载动态内容吗?此外,它是否符合WCAG 23.1.1?我已经阅读了规范的这一部分,它似乎没有触及这一点

在这种情况下,系统是一个单页web应用程序,根据用户偏好加载各种语言的内容。我们也在研究3.1.2(将lang添加到子元素),但是我们仍然需要适当地标记
元素


我目前的实施计划是首先将lang改为英语(因为这是默认语言)然后在加载用户的首选项时更改lang属性。

WCAG 3.1.1要求中没有规定必须在加载的html上设置
lang
,或者禁止在页面加载时设置
lang
。你应该没事的

如果您有一个屏幕阅读器,当它看到
lang
属性时会切换方言,那么测试就很容易了。试一下这样的方法:

<p>dos</p>
<p lang="es">dos</p>
<p>deux</p>
<p lang="fr">deux</p>
dos

dos

双份

双份


然后,如果您动态地将页面语言更改为“es”或“fr”,请查看“dos”或“duex”的发音是否与指定的
语言的相同。

好问题。可访问性树/api在DOM更新时得到更新(但有时可能会有轻微的延迟),因此我不确定动态添加到html元素的
lang
属性的影响。我需要测试一下。您可以根据需要动态地将
lang
添加到通用DOM元素中。谢谢,我会在有机会的时候进行测试。你有推荐的屏幕阅读器吗?如果你有Mac,那么你已经有了画外音(我想是Cmd+Shift+F5打开的)。如果你有一台电脑,那么NVDA是一个免费的屏幕阅读器(可选)。JAWS是一个非常受欢迎的阅读器,但需要许可证,尽管有一个40分钟的试用版-。有时你需要安装额外的语言包来听到语言的变化。这似乎在Mac VoiceOver上正常工作(刚刚测试过)。