News Hacker|极客洞察

27 5 小时前 shkspr.mobi
🤨“网页靠容错运行?”:HTML 宽容性、标准化与政治类比之争
把浏览器宽容度类比为社会包容,是不是太随意了?

🎯 讨论背景

原文提出“the web runs on tolerance”,即浏览器对损坏或非标准 HTML 的容错是 Web 成功的基础。评论从历史角度回顾 XML/XHTML 的兴起与 HTML 的宽松策略,并讨论 HTML 的 lenient parsing 与 CSS/JS 错误处理方式的差异。讨论进一步延伸到社区治理(moderation)、paradox of tolerance、以及把技术容错类比为社会包容是否恰当的政治争论,亦触及标准化时机、开发者工具改进与浏览器内核(如 Blink)主导地位的现实风险。理解这些争论需要知道 XHTML、lenient parsing、Blink 等技术或概念及它们在兼容性与治理上的含义。

📌 讨论焦点

HTML 的容错性与历史起因

评论回溯到 XML/XHTML 曾一度被推动为更严格的规范,HTML4/HTML5 的“宽松”解析被视为对严格化潮流的反弹。指出 HTML 解析器的容错(lenient parsing)能让大量不规范的页面继续渲染,很多 Markdown 解析器也采用类似的宽容策略以保持兼容性。反方强调这种容错并非普适:CSS 在遇到语法错误会忽略规则,未捕获的 JavaScript 异常则会导致硬中断,因此不能直接把 HTML 的容错推广到整个 web 的行为学上。还有评论认为 HTML 的宽容更多是一种为避免破坏已存在内容的现实必要而非纯粹的“优点”。

[来源1] [来源2]

技术容错与社区治理(Moderation)

有人把技术层面的容错性与社区治理中的宽容或不容忍区分开来,认为 web 社区更多靠 moderation(审查/管理)来剔除恶劣内容而非技术上的容错。该观点用加密货币由“无政府理想”走向被央行采纳的例子说明技术与社会现实可能脱节。反驳者认为技术无法脱离社会——技术来自人的社会组织,治理与价值观会影响技术选择;讨论中也引用了“paradox of tolerance”(宽容悖论)来说明宽容在治理中的边界问题。各方争论焦点是:是否能把技术上的容错直接类比为社会或政治层面的包容。

[来源1] [来源2] [来源3]

反对将多样性议题混入技术讨论

部分评论者对作者从技术议题转向种族、性别或性向等多样性讨论表示反感,认为他们关心的是软件是否可用、是否易懂,而不是开发者的身份。该立场引用“On the Internet, no one knows you are a dog”式的匿名文化,认为把身份政治带进工程话题会偏离`Is it working?`的核心关切。反对者的回应则提出若某些群体因为偏见被赶走,社区会失去潜在贡献者,从而影响技术生态和后续创新。争论实质在于工程质量优先与社区包容性之间的权衡。

[来源1] [来源2]

作者类比被指牵强或政治化(bait-and-switch)

多名评论者指责作者把浏览器对损坏 HTML 的“宽容”类比到对特定群体的社会宽容上是“bait-and-switch”,即从技术话题突然转向社会/政治论断,论证缺乏直接联系。有读者认为文章在暗指当前美国行政走向不容忍,但没有具体事实或对象支撑,要求作者给出明确例子或撤回模糊指控。部分评论直接表示这种突然的政治化让他们失去继续阅读的兴趣,并呼吁文章应更聚焦或提供更多上下文。总体评价是比喻力度不足且易导致误读。

[来源1] [来源2] [来源3] [来源4]

标准化、兼容性与开发者工具的现实考量

一条长评提出容错更多是浏览器为维持向后兼容做出的妥协:一旦某浏览器容忍某类输入,内容可能开始依赖该行为,迫使其他实现跟进并产生大量边缘情形。评论认为 XHTML 推出得太晚且在去中心化生态中难以强推,解决方案更可行的是早期统一标准与更好的开发者工具以防止错误发生。该评论还举例说明严格系统(例如某些论坛的配对标签规则)能够成功实施,并用 x86 在 endianness(大/小端)选择上的统一作为“选一条路并坚持”的对照。总体主张是:技术上可以通过工具与标准改进,而不是简单以“容错是美德”结论收场。

[来源1]

两种 Web:Web apps vs Web sites 与引擎垄断担忧

有人把现实分为两种“web”:依赖 JavaScript/ECMAScript 的 Web apps 与以无脚本、基础 (X)HTML 和语义标签为主的传统 Web sites。该评论警示 Web apps 越来越倚赖少数渲染引擎(如 Blink)才能“正确”运行,从而产生对 dominant engine 的滥用或兼容性风险。传统网站强调无障碍和语义化(例如使用表单、 / 等),但在现实生态中两类要求经常冲突,带来治理与技术选择上的困境。

[来源1]

📚 术语解释

XHTML: 一种基于 XML 的更严格 HTML 规范(要求 well-formed 文档),曾在早期被推动以替代松散的 HTML,但与浏览器对损坏标记的容错解析产生冲突。

容错解析 (lenient parsing / fault tolerance): HTML 解析器对不规范或损坏标记的恢复和宽容策略,使浏览器在面对 malformed markup 时仍能渲染页面;与 CSS/JavaScript 的错误处理(如 CSS 忽略错误规则、未捕获的 JS 异常导致中断)不同。

paradox of tolerance(宽容悖论): 哲学家 Karl Popper 提出的概念:若无限制地对不宽容者宽容,最终会导致宽容本身的消亡,因此社会或社区可能需要对不宽容采取不宽容的策略以自保。

Blink(渲染引擎): Blink 是 Chromium 项目使用的渲染引擎,被 Chrome、Edge 等浏览器采用;评论中被引用为可能的主导引擎,带来兼容性与市场支配(monopoly)方面的担忧。