2017-03-08 77 views
2

我们目前正在为没有在HTML标签上设置lang属性的单页应用程序提供初始索引页。目前我们也没有在页面加载后动态设置它。在客户端动态设置HTML lang属性时是否有任何缺点?

是否有屏幕阅读器的任何问题,如果语言是动态设置的,而不是已经将它设置初始页面上?

+1

只是有一点要记住:据我所知搜索引擎可能会看'lang'属性为了服务他们符合其语言设置的内容。所以它可能会对SEO产生一些负面影响。但不知道。 – domsson

+0

重新搜索引擎:他们可能会做各种各样的事情,但是没有证据表明他们中的任何一个实际上都在关注lang属性。谷歌已经明确表示他们会忽略它,部分原因是它经常是错误的,部分原因是它们可以从内容中推断出语言。 –

回答

2

现代屏幕阅读理解JavaScript和使用修改后的DOM代替初始DOM的的JavaScript。

只要你不改变lang属性太晚了(在屏幕阅读器后,已经开始说话),它应该工作。

注意切换语言可能会导致一些错误,如果你不改变也使用HTML5 API历史的URL。

0

不,我不知道。 我们已经在已发布的产品中完成了它。我们的情况是在contenteditables中获得拼写检查的所需语言。所以我们动态地改变所有元素的lang属性,并且它工作正常。

0

号前面的两个答案都有了,但我的连接,我使用的客户机/会谈CodePen演示,所以您可以测试并确认自己:

http://codepen.io/aardrian/pen/eBOrZY

我切换main,但我也做它的html,你可以调整下面的代码在笔这样做:

function toggleLang(l) { 
    var m = document.querySelector('main'); 
    m.setAttribute('lang', l); 
}