欢迎来到语义网(Semantic Web)的世界!

在本章中,我们将探索信息技术(Information Technology)中非常重要的一部分:语义网(Semantic Web)。别担心这个术语听起来很深奥!简单来说,我们不再只是让网站看起来“漂亮”,而是更专注于让它们变得“聪明”。在看完这些笔记后,你将学会如何编写让电脑、搜索引擎以及身心障碍人士都能完美理解的代码。让我们开始吧!


1. 什么是语义化 HTML(Semantic HTML)?

在网络发展的早期,人们使用代码仅是为了改变外观(例如让文字变大或变蓝)。语义化 HTML 则不同,它是一种使用能够描述内容含义(而非仅仅是外观)的 HTML 标签的做法。

为什么这很重要?

当你使用正确的标签时,你其实是在帮助多种不同的“用户”:

1. 搜索引擎: 像 Google 这类工具会利用语义化代码来了解你的网页内容。这就是所谓的搜索引擎优化(SEO)。如果你使用 "header" 标签来标记标题,Google 就会知道那是网页中最核心的部分。
2. 辅助技术: 视障人士会使用屏幕阅读器(Screen Readers)。这些设备会将代码朗读出来。语义化标签能告诉屏幕阅读器哪里是导航栏,或者哪里是文章的主体内容。
3. 更好的维护性: 对开发人员来说,阅读和更新结构良好且具有语义的代码要容易得多。

类比: 想象你在搬家。你可以把所有东西都丢进一模一样的棕色纸箱里,这就是“非语义化”。但如果你在箱子上标注“厨房 - 碗盘”或“卧室 - 枕头”,这就是“语义化”。里面的东西是一样的,但标签让每个人在整理时都轻松得多!

快速复习: 语义化代码描述的是内容,而不是外观


2. 构建基石:结构元素

课程要求你必须熟悉定义网页结构的特定标签。你可以把它们想象成你数字房屋里的“房间”。

关键结构标签:

<header> 和 <footer>: 这是页面或特定区域的顶部与底部。页眉(header)通常包含标志(logo),而页脚(footer)则包含联系信息或链接。
<nav>: 代表导航(navigation)。只在帮助用户浏览网站的主要链接区块使用此标签。
<main>: 标记该特定页面的独特内容。每个页面通常只应有一个 <main> 标签。
<article>: 用于独立的内容。如果你能将其复制并粘贴到另一个网站上,且内容依然完整有意义(例如新闻报道或博客文章),就应该使用 article 标签。
<section>: 用于将相关内容归类在一起,就像书中的章节一样。
<aside>: 用于“侧边”的内容。它与主要内容相关,但不是重点,例如包含额外事实或广告的侧边栏。

重点总结: 使用这些标签能为电脑建立一份清晰的网页地图。


3. 通用容器:当“意义”缺失时

有时候,你只是为了设定样式(例如在随机的一堆对象周围加上框线)而需要将元素组合在一起,但没有适合的语义标签。在这种情况下,我们使用非语义化容器:

<div>: 一个块级(block-level)容器。它会从新的一行开始,并占据可用的整个宽度。
<span>: 一个行内(inline)容器。它保持在同一行,且只占用文字内容所需要的空间。

别担心这个部分: 只要记住 <div><span> 本身没有任何含义。只有在没有其他合适的语义标签(如 <article> 或 <nav>)可用时,才使用它们。


4. 为文字赋予含义

语义化标记不仅适用于大型区块,对单词也同样重要!以下是如何为文字添加语义

重要性 (<strong>): 用于非常重要的文字。浏览器通常会将其设为粗体
强调 (<em>): 当你想强调某个词(就像你说话时改变语气)时使用。浏览器通常会将其设为斜体
引用: 使用 <blockquote> 进行长篇引用,使用 <q> 进行简短的行内引用。
缩写 (<abbr>): 帮助解释缩写词(例如 "NASA")的全称。
引注与定义: 使用 <cite> 引用作品标题(如书名),使用 <dfn> 定义新术语。
地址 (<address>): 专门用于文件作者或所有者的联系信息。
标记 (<mark>): 用于高亮显示文字,就像在纸上使用荧光笔一样。

记忆小贴士: <strong> 是为了重要性(Importance),而 <b> 只是单纯的粗体(Bold)。如果文字真的很重要,请务必选择 <strong>!

5. 图表与标题

当你添加一张图片、图表或代码片段,且它是“独立存在”的(意味着即便脱离主文,其目的依然明确),就应该使用 <figure> 标签。

若要为该 figure 添加标题或说明,请在 figure 标签内使用 <figcaption> 标签。

你知道吗? 使用 <figcaption> 比单纯在图片下方放置一个段落要好得多,因为它能为屏幕阅读器在图片与说明文字之间建立永久性的链接。


6. WAI-ARIA:无障碍设计的额外辅助

有时候 HTML 标签不足以解释复杂的网页功能(如弹出式菜单或加载条)。这就是 WAI-ARIA(网页无障碍倡议 – 无障碍丰富网络应用程序)发挥作用的地方。它提供了额外的“属性”来帮助辅助技术。

考试重点:

角色(Roles): 告诉电脑该元素是什么(例如 role="button" 或 role="search")。
状态与属性(States and Properties): 告诉电脑元素的当前状态(例如复选框的 aria-checked="true")。
即时区域(Live Regions): 这非常酷!它们告诉屏幕阅读器在变更发生时立即进行播报,而无需用户重新整理页面(例如“新消息”提醒)。
增强键盘导航: ARIA 有助于确保无法使用鼠标的用户能仅通过“Tab”和“Enter”键进行完整浏览。

要避免的常见错误: 不要过度使用 ARIA!“ARIA 的第一原则”是:如果可以使用原生的 HTML 标签(例如 <button>),就使用该标签,而不是通过 ARIA 把其他元素硬改成按钮。


期末快速复习箱

1. 语义化 HTML = 含义。
2. 结构标签包括 <header>, <nav>, <main>, <article>, <section>, <aside> 和 <footer>。
3. 非语义化标签(如 <div>)仅用于样式设定。
4. SEO 与无障碍设计是我们使用语义网的两大主因。
5. WAI-ARIA 为复杂功能添加额外标签,以协助屏幕阅读器。