【问题标题】:What are the practical benefits of semantic markup for visual user-agents语义标记对视觉用户代理的实际好处是什么
【发布时间】:2026-01-11 14:25:01
【问题描述】:

经过多年创建 HTML 文档并尝试了解使标记最有意义的不同标记模式和最佳实践,我常常想知道这些语义将如何开始为最终用户带来回报。

让我们把问题介绍为:你有两个文件……

第一个文档使用当代 HTML 中所有最合理标准化的部分来创建一个丰富的文档结构,其中包含一些 RDFa 和选择微格式,用于示例性的表现力 HTML。

第二个文档与第一个文档的结构相同,只是标签已全部转换为 div 和 span,并且所有类名都是纯样式挂钩:所有语义都已删除,但页面呈现高效且视觉上与第一个相同。

对于通过桌面或移动浏览器与此 HTML 文档进行交互的有远见的人来说,第一个文档相对于第二个文档的直接好处很感兴趣。您的答案可以创造内容的性质并指向特定的浏览器功能来证明您的观点。

您的答案不应包括:

  • 屏幕阅读器(用户视力良好)
  • SEO(搜索引擎可见性的间接好处是题外话)
  • 语义标记更容易维护(这也是间接的)

【问题讨论】:

  • 我没有遵循最后一行。 通常好的代码是干净的代码,通常是语义代码。所以非语义编码使用<div style>,按照doc2的所有内容。
  • FF(可能还有 Chrome)拥有能够读取微格式(RDFA 和微数据)的extensions
  • @RyanB 好点,我的意思丢失了,所以我修改了这一点。我的意思是,非语义代码不是任意复杂的:它仍然可以高效渲染,只是缺乏语义价值。
  • 问题标题显示“user-agents”,尽管问题正文将其限制为“browser[s]”。如果您不想讨论其他用户代理(除了浏览器和屏幕阅读器),请调整标题。
  • 如果您只关心视觉输出,那么<table>s 很好。但是,正是由于您声明离题的所有要点,我们已经放弃了表格布局。

标签: html semantic-markup


【解决方案1】:

(当然,这还不完整。这只是我在打字时想到的。)

此答案假设:对于没有屏幕阅读器的桌面/移动浏览器用户;页面仅包含 divspan 元素(具有允许的属性);只有今天相关的内容(not tomorrownot in 2400 years)。

缺少元数据

  • 在为页面添加书签时,用户不会看到 favicon(icon 链接类型;除非您将 ICO img 放在根目录中)或标题(title 元素)
  • 创建快捷方式时没有图标(apple-touch-iconmsapplication-TileImage、...)
  • 当用户在那里发布/引用/共享您的页面时,某些 Web 应用程序无法从您的页面中提取元数据(例如 Open Graph Protocol
  • 浏览器不会自动检测您的供稿(alternate 链接类型)
  • prefetchprerenderdns-prefetchpingbackprev/next、...等链接类型没有(性能)优势

(请注意,一些可以通过 HTTP 标头完成。)

缺少默认功能

如果没有ainputtextareabutton 等,相应的功能将需要 JavaScript。没有 JavaScript 的用户无法点击链接、搜索、上传文件、提交表单……

不支持(或有限)JS 的原因:

  • 用户停用 JS(全局,仅适用于站点/主机)
    • 故意的,例如NoScript
    • 公司/管理员/等要求。
  • JS 文件无法加载(CDN 问题,...)
  • 非常旧浏览器

默认情况下,一些典型的导航机制可能不可用(在字段中切换;焦点;按 Enter 激活;在链接文本中搜索(例如 Firefox 中的')。

缺少浏览器扩展提供的功能

各种浏览器插件(或小书签等)可以解析标记并“做事”。

缺少默认的“样式”

如果没有 CSS 支持,仅包含 divspan 元素的页面可能难以阅读,甚至可能变得难以理解(例如复杂的数据表)。

不支持(或有限)CSS 的原因:

  • 文本浏览器(Lynxw3m、...)
  • 非常旧的图形浏览器
  • 用户停用的 CSS(全局,仅适用于网站,仅适用于页面)
  • 用户使用自己的样式表
  • CSS 文件无法加载(CDN 问题……)

可重用性有限

  • 复制和粘贴:如果用户复制和粘贴某些内容和/或标记,而您的自定义 CSS 没有被“包含”(可能是许多工具的情况),则可能很难甚至不可能理解/重用它内容/标记。
  • 提取您的内容:其他人更难抓取您的内容(例如Piggy Bank)和/或转换它(XSLT、XPath)

【讨论】:

  • 我怎么读到发帖人的问题是他将使用pa 等,他不会使用我们现在拥有的花里胡哨的方式进行编码。基本上是 1997/1998 年与现在的编码。
  • 虽然@RyanB 对我的问题的意图是绝对正确的,但我认为这个答案巧妙地从逻辑表面上看,并显示了由于基本语义标记而发生了多少内置功能。好奇是否有超出这些基础的用例,但目前这个答案是最准确的。
【解决方案2】:

对于视力良好的用户来说,可能没有区别。

但是,您永远不应该假设用户的能力。

除了可访问性之外,最大的区别在于机器解释代码的方式。所以,搜索引擎优化很重要,即使你也想排除它。其他地方提到的浏览器扩展,以及将来可能出现的任何内容。

【讨论】:

  • 目前有什么值得注意的浏览器扩展吗?
最近更新 更多