我可以在我的表单元素上配置拼写检查属性使用的字典语言吗?

Posted

技术标签:

【中文标题】我可以在我的表单元素上配置拼写检查属性使用的字典语言吗?【英文标题】:Can I configure the dictionary language used by the spellcheck attribute on my form elements? 【发布时间】:2018-06-28 04:03:53 【问题描述】:

我需要将spellcheck 属性添加到一些<textarea><input> 元素。我的问题是:spellcheck支持可配置的英语版本吗?”我在澳大利亚,我们使用英式英语。我的理解是拼写检查默认配置为美式英语。

它与最初在html 元素上设置的lang 属性有什么关系吗?

【问题讨论】:

属性和标签不是一回事。请不要将它们混为一谈。 你说得对。不错的选择。 【参考方案1】:

我相信我已经找到了这个问题的答案,并且在此过程中接受了英语教育。

language codes 的 W3C 参考表明英语版本不可配置。但是,我发现了一个更详细的W3C Working Group Note,内容如下:

注意 2: lang 和 xml:lang 属性的允许值在下面引用的资源中指明。语言标签使用主代码表示语言,使用可选子代码(由连字符分隔)表示语言的变体。例如,英语以主代码“en”表示;英式英语和美式英语可以分别使用“en-GB”和“en-US”来区分。主要代码的使用对于这种技术很重要。子代码的使用是可选的,但在某些情况下可能会有所帮助。

这是子代码的完整列表:ISO 3166-1 alpha-2。

这意味着以下任何一个值在技术上都是有效的; lang="en-AU"lang="en-GB"lang="en-US"

我运行了两个测试来确定spellcheck 在这些语言子代码中的表现(参见 sn-p)。我在 macOS High Sierra 版本 10.13.2 的 Safari 版本 11.0.2、Chrome 版本 63.0.3239.132Firefox 版本 57.0.4 上运行了这些测试> 结果好坏参半。

没有我测试的浏览器似乎受到对各种元素的lang 属性声明的影响。我在系统级别打开和关闭字典进行了测试。

我首先测试了 Safari 和 Chrome,得到了相同的结果:

然后我测试了 Firefox 并得到了以下结果:

总而言之:“是”使用lang 属性时,英语版本是可配置的。 “否”,spellcheck 似乎无法配置为您使用 lang 属性声明的语言,而是配置为浏览器配置的英语版本。

我希望这个答案对其他人有所帮助。

<!-- Test #1 -->
<textarea lang="en-AU" spellcheck="true"></textarea>
<textarea lang="en-GB" spellcheck="true"></textarea>
<textarea lang="en-US" spellcheck="true"></textarea>
<div contenteditable="true" lang="en-AU" spellcheck="true">insert spelling</div>
<div contenteditable="true" lang="en-GB" spellcheck="true">insert spelling</div>
<div contenteditable="true" lang="en-US" spellcheck="true">insert spelling</div>

<!-- Test #2 -->
<!DOCTYPE html>
<html lang="en-AU">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<textarea spellcheck="true"></textarea>
	<div contenteditable="true" spellcheck="true">insert spelling</div>
</body>
</html>

【讨论】:

以上是关于我可以在我的表单元素上配置拼写检查属性使用的字典语言吗?的主要内容,如果未能解决你的问题,请参考以下文章

Win10中的拼写检查文本框 - 慢

我的拼写检查器无法正确比较单词

表单元素内容禁用拼写检查

Textarea 2 语言拼写检查

Eclipse 拼写检查平台字典

使用拼写检查时使用 VBA 切换字典 (MS Access)