输入元素(用于iOS)上的Autocapitalize属性会中断验证

Don*_*ins 6 forms input w3c-validation ios

这里可以看出,iPhone的Safari和Safari支持所有HTML元素,包括不推荐使用的元素,甚至一些从未参与任何W3C规范的专有元素.

它实际上非常有用,包括autocapitalize在表单中的"电子邮件"和"网站"字段中,因为没有什么比在填写这两个输入中的任何一个时取消选择SHIFT键一样烦人.这样做很简单,因为你需要做的就是将autocapitalize=off属性添加到相应的输入中,例如:

<label for="email">E-mail</label>
<input type="email" name="email" placeholder="yourname@domain.com" autocapitalize="off" title="Enter your e-mail address" class="required email" id="email">
Run Code Online (Sandbox Code Playgroud)

iPhone和iPad都完美地将键盘与表格中附加到输入元素的属性相匹配.不幸的是,这个标记似乎打破了验证,当设置上述时,W3C响应"此时元素输入上不允许属性自动资本化".

我想这不是死的东西,但有没有办法在不破坏验证的情况下包含属性?也许我在这里弄错了.

Don*_*ins 12

ughoavgfhw的评论完全回答了这个问题:由于W3C规范目前存在,你不能在不破坏验证的情况下在表单中包含autocapitalize属性,因此这是一个衡量用户不得不在表单中摸索的不便之处SHIFT关于iOS 的关键.

我认为这是极少数情况之一(内联样式是另一种情况),在一个页面上忍受错误是有意义的,只要它们没有出现任何问题的症状,只是W3C在某一方面有点慢.摄取.

  • 你可以在javascript中添加`autocapitalize`属性.这是完全没有意义的,因为生成的DOM完全相同,但W3C验证器不会运行javascript,因此它将在那里显示为有效.为同样的结果做更多​​的工作:我不推荐它.但是,如果由于某种原因通过验证是绝对必要的,那么它是一种选择. (3认同)