这是一个老版本的错误(浏览器设计师在他们1984年的智慧中决定称之为“功能”,因为上升已经失败,和平就是战争,而计算机总是比用户更了解),但它只是让我在后面,并且有很多矛盾的信息(包括StackOverflow上的所有先前的问题),我不知道在哪里转。
我在最后有一个带有密码字段的表单,作为各种签名。表单没有用户名字段,也没有像用户名字段那样远程。它具有的是input type="text"
,旨在包含ICD10代码。 (大小为5,maxlength为6,因此对于用户名来说太小了。)
在最后一个文本字段和密码字段之间,有一个textarea,10次4组单选按钮和另一个textarea,所以无论你的语义多么疯狂,根本没有逻辑方法来推断文本字段应该用用户名覆盖,但显然会发生什么:浏览器询问是否应该记住密码,你告诉它“是”,下次你打开一个类似的表格时,最后的诊断代码已被破坏了什么以其智慧,浏览器已决定必须是您的用户名,尽管有相反的指示。 (可能是,这是另一个诊断代码,而不是正确的代码。)
这里的踢球者,浏览器记住密码是完全没问题的。记住密码的浏览器没有问题。所以autofill="newpassword"
(如果那仍然是一件事)不是我想要的。我做的问题是浏览器决定随机文本字段必须是用户名。
对于Internet Explorer,在密码字段之前添加文本字段并将其隐藏display:none
可解决此问题。但Chrome真的非常坚持它比你知道的更好,并且未显示的文本字段确实是bupkis。同样适用于Firefox。相反,我做了position:absolute;margin-left:-1000em;
,这似乎在Chrome和Firefox上做了。目前。如果你交叉手指向正确的神祈祷。我不知道在Safari上有什么用途。
我是否可以添加到我的表单中以防止此错误的实际设置?如同,不是一个kludgy解决方法,而是一个符合标准的实际设置?我可以在诊断领域说“这不是用户名字段”吗?如果失败了,是否有一个可接受的当前解决方法来解决此错误?在所有主流浏览器(IE,Chrome,Firefox,Safari,Edge)上运行 2017 的一个,最好不会破坏可访问性?或者人们只是使用margin-left:-1000em;
kludge,虽然它是丑陋的?
(如果kludge是现在开放的唯一途径,我们是否知道它是否可能继续工作,或者是邪恶的浏览器设计师甚至现在正在策划如何从我们手中拉下地毯?)