autocorrect="off" 仅在 iOS/macOS Safari 和旧版 Android Chrome(50–70)生效,现代 Chrome/Firefox/Edge 完全忽略;它比 spellcheck="false" 更早介入输入流程,且必须写成带引号的字符串形式。

autocorrect="off" 在 iOS Safari 里才真正起作用
现代 Chrome、Firefox、Edge 完全忽略 autocorrect 属性,它只对 iOS/macOS Safari 和旧版 Android Chrome(50–70)生效。别指望靠它在桌面端或新安卓浏览器里关掉纠错——写了也白写。
但在 iOS Safari 中,autocorrect="off" 是第一道防线:它能压住键盘自动替换和首字母大写,比 spellcheck="false" 更早介入输入流程。必须写成完整字符串形式,不能省略引号或写成布尔值。
-
autocorrect="off"✅ 正确(带引号、值为 off) -
autocorrect❌ 错误(无值,默认视为 on) -
autocorrect={false}❌ React 里这样写会被转成autocorrect="false",Safari 不认
textarea 和 contenteditable 元素才支持 spellcheck="false"
spellcheck="false" 对 <input type="text"> 基本无效,浏览器常直接忽略。它只在可编辑的块级元素上稳定生效:<textarea></textarea> 或设置了 contenteditable="true" 的 <div>、<code><pre class="brush:php;toolbar:false;"></code> 等。</p>
<p>如果你用的是 Monaco、CodeMirror 这类编辑器,它们的真实输入层通常是隐藏的 <code><textarea></code>(比如 class="monaco-editor-background" 下的那个),不是你看到的代码渲染区。给外层 div 加 <code>spellcheck="false"</code> 没用,得找到并操作那个实际接收输入的 textarea。</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/xiazai/skill9972" title="Wechat Article Html"><img
src="https://img.php.cn/upload/skill/001/246/273/6adaf20e695c2374.jpg" alt="Wechat Article Html" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/xiazai/skill9972" title="Wechat Article Html">Wechat Article Html</a>
<p>将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。</p>
</div>
<a href="/xiazai/skill9972" title="Wechat Article Html" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div>
<ul>
<li>React 项目中,确保属性名是小写字符串:<code><textarea spellcheck="false" autocorrect="off" /></code></li>
<li>不要给 <code><code></code> 或 <code><pre class="brush:php;toolbar:false;"></code>(未设 contenteditable)加 <code>spellcheck</code>,它根本不可编辑,属性无效</li>
<li>iOS Safari 中,<code>spellcheck="false"</code> 可能延迟 200ms 才消失下划线,不是失效,是异步词典检查机制</li>
</ul>
<H3>必须三件套齐上:autocorrect + spellcheck + autocapitalize</H3>
<p>单靠一个属性无法覆盖所有平台。iOS 上缺 <code>autocapitalize="none"</code>,密码或代码输入时仍会首字母大写;Android 上光有 <code>autocorrect</code> 没用,得靠 <code>spellcheck="false"</code> 配合 <code>inputmode="text"</code> 抑制预测键盘。</p>
<p>完整写法示例:</p>
<pre class="brush:php;toolbar:false;"><textarea
spellcheck="false"
autocorrect="off"
autocapitalize="none"
autocomplete="off"></textarea></pre>
<ul>
<li>
<code>autocomplete="off" 虽不控拼写,但某些输入法(尤其 iOS)会把它当作“允许上下文推测”的信号,关掉能减少干扰
type="password")默认禁用拼写检查,无需额外加 spellcheck,但 autocapitalize="none" 仍建议加上验证是否真生效,别只看代码
写完属性不代表搞定。打开真机(不是模拟器),输一个明显错词(比如 recieve),观察两个关键点:
- 有没有红色波浪线
- 右键点击或长按是否弹出“更正为…”菜单
两者都消失才算成功。如果还标红,大概率是 macOS 系统设置里「键盘 → 文本输入 → 在网页文本框中检查拼写」没关,或者 Safari 正在用系统词典做异步校验——这时 HTML 属性已尽力,再往下就得动终端命令或调整系统偏好了。


















