我们目前正在为没有在HTML标签上设置lang属性的单页应用程序提供初始索引页。目前我们也没有在页面加载后动态设置它。在客户端动态设置HTML lang属性时是否有任何缺点?
是否有屏幕阅读器的任何问题,如果语言是动态设置的,而不是已经将它设置初始页面上?
我们目前正在为没有在HTML标签上设置lang属性的单页应用程序提供初始索引页。目前我们也没有在页面加载后动态设置它。在客户端动态设置HTML lang属性时是否有任何缺点?
是否有屏幕阅读器的任何问题,如果语言是动态设置的,而不是已经将它设置初始页面上?
现代屏幕阅读理解JavaScript和使用修改后的DOM代替初始DOM的的JavaScript。
只要你不改变lang
属性太晚了(在屏幕阅读器后,已经开始说话),它应该工作。
注意切换语言可能会导致一些错误,如果你不改变也使用HTML5 API历史的URL。
不,我不知道。 我们已经在已发布的产品中完成了它。我们的情况是在contenteditables中获得拼写检查的所需语言。所以我们动态地改变所有元素的lang属性,并且它工作正常。
号前面的两个答案都有了,但我的连接,我使用的客户机/会谈CodePen演示,所以您可以测试并确认自己:
http://codepen.io/aardrian/pen/eBOrZY
我切换main
,但我也做它的html
,你可以调整下面的代码在笔这样做:
function toggleLang(l) {
var m = document.querySelector('main');
m.setAttribute('lang', l);
}
只是有一点要记住:据我所知搜索引擎可能会看'lang'属性为了服务他们符合其语言设置的内容。所以它可能会对SEO产生一些负面影响。但不知道。 – domsson
重新搜索引擎:他们可能会做各种各样的事情,但是没有证据表明他们中的任何一个实际上都在关注lang属性。谷歌已经明确表示他们会忽略它,部分原因是它经常是错误的,部分原因是它们可以从内容中推断出语言。 –