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

Can page language be set at run time for accessibility and WCAG 2 3.1.1 compliance?

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

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

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

WCAG 3.1.1 要求中没有任何内容表明必须在加载的 html 上设置 lang 或阻止在页面加载时设置 lang。你应该没事的。

如果您的屏幕 reader 会在看到 lang 属性 时切换方言,则很容易测试。试试像这样的东西:

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

然后,如果您将页面语言动态更改为 "es" 或 "fr",请查看 "dos" 或 "duex" 的发音是否与

相同lang 已指定。