我目前正在开发一个处理翻译的应用程序。在原型中,应用程序可以处理从英语到德语的翻译。
目前,<textarea>
元素被<label>
元素包围:
<label className="m-translation-card__native-field-label"
aria-label="Original (English)">
English
<textarea className="m-translation-card__native-field-input"
placeholder="English translation"
onChange="..."
value="..."
/>
</label>
<label className="m-translation-card__translated-field-label"
aria-label="Translation (Deutsch)">
Deutsch
<textarea className="m-translation-card__translated-field-input"
placeholder="German translation"
onChange="..."
value="..."
/>
</label>
当通过键盘导航到“English translation”(英语翻译)文本区域时,屏幕阅读器将大声读出英文文本区域
value
属性内容。这是有意义的,lang
标记的<html>
属性被设置为“en”,并且是预期的功能。但是,当一个人导航到“德语翻译”文本区域时,屏幕阅读器会再次以英语发音文本区域
value
属性内容,这一发音通常与正确的德语发音大不相同。理想情况下,发音应该是德语。我想添加一个属性,以便屏幕阅读器知道第二个文本区域的内容是德语。我试过使用
lang="de"
属性,但它没有影响发音。有办法做到这一点吗?
最佳答案
使用lang
属性(在XHTML中使用xml:lang
是正确的方法。
不过,并不是所有的屏幕阅读器都支持lang
,对于那些支持它的阅读器来说,并不一定所有的语言都支持。
如果屏幕阅读器声称支持它,但它仍然不起作用,您可以尝试添加一个带有div
属性的lang
容器(这里只是猜测一下,当屏幕阅读器仅在textarea
元素上指定时,可能会有问题)。
(注意,德语placeholder
的textarea
也应该是德语。)
关于html - 设置HTML输入的语言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54550172/