Jonathan Gillette,“Textarea,你就是一个沉没的无物”,2004
是的,我的意思是,Textarea。你就是一个沉没的无物。你有一个斜面边缘,但你是一个毫无价值的涂鸦之物。坏垫子!坏垫子!!
[…]
你是否接受制表符?哎呀。好吧,我的这篇仓促的文章现在发表了。
你是最流行的文本编辑器。你也是最糟糕的文本编辑器。即使是记事本也有查找和替换功能。我还可以使其变大或变小。
Kroc Camen,“Textarea颂”,2011
Textarea,我该如何恨你?
让我细数一下…[…]
现在就修复 textarea。不要以后。不要在你发布了其他不断变化的 HTML5 功能之后。不要等到其他人先这么做。现在。请承担责任,并认识到你漫不经心的态度造成的损害的严重性。
Monica Dinculescu,“<input> 我 [心] 你,但你让我很沮丧”,2015
但是,
<input>API 不是古怪的——它实际上只是一罐蜘蛛,当你打开罐子时,就太晚了。你身上爬满了蜘蛛。甚至你的猫现在也变成了蜘蛛。最好找点火。[…]
问题是,浏览器已经有了 21 年的时间来解决输入问题,但它们甚至还没有就如何传达“你还没有选择文件”达成一致。
是的,input 和 textarea 很糟糕,但 select 最糟糕,迄今为止。
还有 @Monica Dinculescu,“实际上是一罐蜘蛛”?拜托,人们不要再滥用这个词了,它现在已经变得毫无意义了。
啊,得了吧。我认为这是对“蜘蛛”一词完全合法且有意义的用法。
我觉得很有趣。我也知道他们的意思。
它现在是 真的了。
@Joseph,哈哈,说得好。我没有预料到这种回应,尽管我可能应该预料到的。 :)
@Ed,我同意它很有趣,我也理解其含义,让我困扰的是,它在任何时候都不是“实际上”一罐蜘蛛。
这个类比本身非常好,事实上也很棒,但随后却被用来进一步破坏“实际上”一词。我们现在所处的语言状态令人悲哀,原本用来指定某件事没有夸张的“实际上”一词,现在已被劫持用来表示带有夸张意味。从本质上讲,“字面”一词不再存在了。
@Chris 我知道字典在技术上已经认可了对该词的劫持,这就是为什么它令人悲伤的原因。
我认为语言的演变有点美妙,即使它有时让人感觉尴尬。也许我只是非常害怕变成一个挥舞拳头的老头,但我更愿意拥抱变化。
@Chris 我不是以我可能呈现的方式来表达意思。我确实喜欢语言的流畅性,因为否则我们仍然会说诸如“胡说八道”之类的话。事实上,我对“扭动”、“麻瓜”等成为词汇感到满意,因为它们不会损害现有的词汇。麻瓜是一个完全多余的词,因为它基本上意味着“每个人”,但每个人仍然意味着每个人,所以我并不在意。我遇到的问题是,“实际上”被改变为意味着“并非实际上”,这意味着我们不再拥有一个真正表示“实际上”的词。我们失去了一个非常重要的词,因为人们不知道它的含义。有人告诉我“我实际上差点死了”,因为几只鸟飞离他们大约 10 英尺远。这让我非常难过,因为我们现在作为一个社会已经摧毁了那个词。
回到我们的话题,
<textarea>元素中的 TAB 被禁用,因为制表符是键盘体验的一部分,用于辅助功能。我希望 HTML 支持一些用于基于表单的输入的新元素,并支持更多属性来增强其功能;也许在替代方案出现后,将一些现有的表单元素列入长期弃用列表?不是所有东西,只是选择框、复选框、单选按钮,以及两个或三个 textarea 的替代方案,普通、富文本和 DOM(tinyMCE 不应该是我们唯一的选项)。愿望清单
使用 url,也许是 css 选择器,在浏览器中从外部和内部数据源自动完成语法?
删除 ,但允许自动完成具有“选择式”双击行为
对更广泛范围的输入提供原生跨浏览器支持,包括按照名称排列的输入列表
颜色选择器
日期和日期时间选择器,能够显示 {周期} 和 {n-周期}
删除复选框与单选按钮,并使用选择元素,使用多属性进行复选框行为,以及状态的通用 CSS 选择器(按钮也应该有自己的选择器)
更好的浏览器内文件上传支持,也许只需指定一个 data-service url 并让浏览器处理分块上传,而无需 JS
与您针对 CSS 属性和值的 JS 不同;我对此有点过于热情,但我确实认为 JS 可以暂时通过 contenteditable HTML DOM 属性和更标准的 CORS XHR + 元素事件赋予我们这种能力。缺点是非表单形式需要 JS 提交,对于制表符,它必须应用于 pre 标签。
我想一个好处是,:before 和 :after 伪元素将起作用,您无需担心不同类型的编辑器,因为您可以自己定义它们,但缺点包括必须仅在 JS 中为一系列用例跨多个浏览器实现辅助功能(真糟糕!)。
Michael,你是否意识到这没什么新鲜的,对吧?几个世纪以来一直都在做,而且不仅仅是平民。狄更斯做过,萨克雷做过,一大批作家做过并且一直在做。那你认为普通人不够格做吗?
另一方面,语法纳粹也几个世纪以来一直在抱怨这件事,所以我想这都没问题…
只需接受这样一个事实,即你不应该期望一个简单的 textarea 表单成为一个功能齐全的 IDE 或文本编辑器。这都是关于内容的,众所周知,内容为王。
也许可以添加到花哨的表单脚本中(将复选框、单选按钮和选择元素转换为可样式化的东西的脚本)。
我想你可以使用
contenteditable属性并绑定你自己的事件?Todd,类似的想法,但是…
还有…
请记住,
contenteditable在 HTML 上工作,因此像 textarea 一样的制表符会更改焦点,但对于除制表符之外的所有内容,它都可以正常工作。