<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ 无障碍 - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ freeCodeCamp 是一个免费学习编程的开发者社区，涵盖 Python、HTML、CSS、React、Vue、BootStrap、JSON 教程等，还有活跃的技术论坛和丰富的社区活动，在你学习编程和找工作时为你提供建议和帮助。 ]]>
        </description>
        <link>https://www.freecodecamp.org/chinese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ 无障碍 - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/chinese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 23 Jun 2026 20:20:01 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/chinese/news/tag/accessibility/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Ep. 10 对话视障开发者李连才：信息无障碍，让我们拥有平等的机会 ]]>
                </title>
                <description>
                    <![CDATA[ 这是 freeCodeCamp 中文播客的第 10 期节目。在这个播客上线的一个多月里，我们收到很多听众表达的喜爱和支持，非常感谢大家，你们的反馈对 freeCodeCamp 社区持续推动教育公益非常重要。 希望这些关于学习编程和职业发展的经验乃至对于生活的思考能够给更多人传递能量和动力。 如果你也想在这个播客中讲述自己的故事，或者提供建议，欢迎给我们发邮件。你可以在这篇文章 [https://www.freecodecamp.org/chinese/news/freecodecamp-podcast-in-chinese/] 里找到邮箱地址。 今天我们邀请了无障碍工程师李连才。首先我想说他的表达很有感染力，我很开心能够和他一起录这个对话。 李连才 他因为视力障碍，在初中时从普通的学校辍学，接着进入一所特殊教育学校学按摩。在按摩店工作期间，他摸索着学习电脑基础知识，例如，看不清键盘找不到按键的时候，他用手在父亲的手上描绘出按键的首字母，请父亲帮忙找到按键。 接着他接触到其他盲人朋友讲的编程课程，开始在每天十多个小时的按摩工作之余自学编程，慢慢地主要学习微信小程序开发。 20 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/interview-li-lian-cai-web-accessibility/</link>
                <guid isPermaLink="false">650c3554e5e37203f8d4145c</guid>
                
                    <category>
                        <![CDATA[ 播客 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ 无障碍 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Miya Liu ]]>
                </dc:creator>
                <pubDate>Thu, 21 Sep 2023 13:00:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2023/09/Chinese-2.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>这是 freeCodeCamp 中文播客的第 10 期节目。在这个播客上线的一个多月里，我们收到很多听众表达的喜爱和支持，非常感谢大家，你们的反馈对 freeCodeCamp 社区持续推动教育公益非常重要。</p><p>希望这些关于学习编程和职业发展的经验乃至对于生活的思考能够给更多人传递能量和动力。</p><p>如果你也想在这个播客中讲述自己的故事，或者提供建议，欢迎给我们发邮件。你可以在<a href="https://www.freecodecamp.org/chinese/news/freecodecamp-podcast-in-chinese/">这篇文章</a>里找到邮箱地址。</p><p>今天我们邀请了无障碍工程师李连才。首先我想说他的表达很有感染力，我很开心能够和他一起录这个对话。</p><!--kg-card-begin: html--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://chinese.freecodecamp.org/news/content/images/2023/09/WechatIMG108.jpeg" class="kg-image" alt="李连才" width="600" height="400" loading="lazy"><figcaption>李连才</figcaption></figure><!--kg-card-end: html--><!--kg-card-begin: html--><iframe width="100%" height="180" frameborder="no" scrolling="no" seamless="" src="https://share.transistor.fm/e/58caf44c" title="嵌入内容" loading="lazy"></iframe><!--kg-card-end: html--><p>他因为视力障碍，在初中时从普通的学校辍学，接着进入一所特殊教育学校学按摩。在按摩店工作期间，他摸索着学习电脑基础知识，例如，看不清键盘找不到按键的时候，他用手在父亲的手上描绘出按键的首字母，请父亲帮忙找到按键。</p><p>接着他接触到其他盲人朋友讲的编程课程，开始在每天十多个小时的按摩工作之余自学编程，慢慢地主要学习微信小程序开发。</p><p>2018 年，他加入另一位视障开发者蔡勇斌创办的公司，正式从事无障碍开发工作。团队为众多互联网产品提供无障碍测试服务，开发一些应用程序为残障人士的学习、工作和生活提供支持，也向大众普及无障碍知识。他们相信，盲人只要有平等的机会获取互联网信息，就有超越的可能。</p><p>在节目中，李老师还分享了无障碍开发的技术实践、学习资源。希望这些内容对你有帮助，期待你在收听播客的平台上给我们五星或者好评，并把节目分享给更多朋友。</p><p>欢迎在 <a href="https://chinese.freecodecamp.org/">https://chinese.freecodecamp.org/</a> 查看更多免费的编程学习资源。</p><h2 id="-"><strong><strong>主要话题</strong></strong></h2><ul><li>03:46 什么是信息无障碍</li><li>05:03 辍学后学按摩</li><li>08:00 盲人就业的多种可能性</li><li>12:21 电脑窗口都没啦</li><li>19:43 读屏软件</li><li>23:20 在安卓 TalkBack 模式下使用微信</li><li>27:32 学的第一门编程语言是易语言</li><li>29:27 专注学小程序</li><li>31:11 在盲人社区中学习</li><li>31:56 视障人群学编程的障碍</li><li>33:55 VS Code 支持无障碍吗</li><li>38:45 开发图片识别小程序</li><li>40:30 离开按摩店，成为无障碍工程师</li><li>42:22 人生的意义和价值</li><li>46:20 团队的业务范围</li><li>48:43 创造平等的机会</li><li>51:47 产品在什么阶段进行无障碍优化</li><li>55:58 无障碍不是做公益</li><li>58:44 覆盖哪些障碍人群</li><li>59:55 被用户真诚的反馈打动</li><li>63:12 无障碍学习资源</li><li>63:58 freeCodeCamp 支持无障碍</li><li>64:19 开发者如何进行无障碍测试</li><li>65:52 用 HTML 语义化标签而不是 div</li><li>68:18 alt 属性和图注</li><li>69:20 色彩对比度为 4.5:1 及以上</li><li>70:42 uniapp 开发中的无障碍</li><li>72:08 最关键的是键盘可访问</li><li>73:40 无障碍硬件设备</li><li>74:32 期待解决验证码的问题</li></ul><h2 id="--1"><strong><strong>提到的资源</strong></strong></h2><ul><li><a href="https://www.freecodecamp.org/chinese/news/freecodecamp-podcast-in-chinese/">文章</a>末尾有邮箱地址</li><li><a href="https://developer.mozilla.org/zh-CN/docs/Learn/Accessibility">信息无障碍</a></li><li><a href="http://www.etinfo.cn/">一同信息科技</a></li><li><a href="http://www.mwyg123.com/">阳光读屏软件</a></li><li><a href="https://www.nvaccess.org/">免费开源的读屏软件 NVDA</a></li><li><a href="https://code.visualstudio.com/">VS Code</a></li><li><a href="https://www.w3.org/Translations/WCAG21-zh/">Web 内容无障碍指南 WCAG</a></li><li><a href="https://www.freecodecamp.org/chinese/news/semantic-html-alternatives-to-using-divs/">《语义化 HTML 指南》</a></li><li><a href="https://apps.apple.com/cn/app/%E5%BE%AE%E7%A7%98%E7%94%9F%E6%B4%BB/id1561320353?l=en-GB">微秘生活</a></li><li><a href="http://sky808.com/">PC 秘书</a></li><li><a href="https://tffm.net/">天福 FM</a></li><li><a href="https://developer.mozilla.org/zh-CN/docs/Web/Accessibility/ARIA">无障碍富互联网应用 ARIA</a></li><li><a href="https://www.freecodecamp.org/chinese/learn/2022/responsive-web-design/learn-accessibility-by-building-a-quiz/step-1">freeCodeCamp 的无障碍课程</a></li><li><a href="https://zh.uniapp.dcloud.io/">uniapp</a></li><li><a href="https://www.apple.com.cn/newsroom/archive/apple-vision-pro/">Apple Vision Pro</a></li></ul> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 无障碍最佳实践——创建无障碍 Web 应用程序的注意事项 ]]>
                </title>
                <description>
                    <![CDATA[ 任何人都应该能够使用你的网站和应用程序，包括残障人士和健全人士。这将增强你的网站的可访问性。 想想你创建的上一个网站，或者你最喜欢的网站，你是否确信任何人都能使用你的网站并执行其所需的关键操作？你是否考虑过患有运动障碍、视力障碍、认知障碍和听力障碍的人呢？ 无障碍往往是事后才想到的问题。当需要发布一项功能时，我们会进行无障碍测试，然后发现我们的网站并不具有无障碍特性，于是就进行简单的修复。 创建一个无障碍网站是一项艰巨的任务。但如果我们从一开始就牢记无障碍，那么创建一个无障碍的 Web 应用程序就会容易得多。 在本篇文章中，我将介绍你在创建应用程序的过程中可以牢记的 5 件事，这样你就不必在最后一筹莫展了。 实现良好的无障碍需牢记的 5 件事  * 语义化 HTML（Semantinc HTML）  * Tabindex  * Aria 属性（Aria attributes）  * Role  * 键盘导航和屏幕阅读器（Keyboard navigation and screen readers） 简而言之，S.T.A.R.K。 如果你需要什么来辅助记住这一点，想想托尼- ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/accessibility-best-practices-to-make-web-apps-accessible/</link>
                <guid isPermaLink="false">6503c295e5e37203f8d41317</guid>
                
                    <category>
                        <![CDATA[ 无障碍 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Miya Liu ]]>
                </dc:creator>
                <pubDate>Fri, 15 Sep 2023 04:57:46 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2023/09/ben-kolde-bs2Ba7t69mM-unsplash-1.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文：</strong> <a href="https://www.freecodecamp.org/news/accessibility-best-practices-to-make-web-apps-accessible/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">https://www.freecodecamp.org/news/accessibility-best-practices-to-make-web-apps-accessible/</a>
      </p><p>任何人都应该能够使用你的网站和应用程序，包括残障人士和健全人士。这将增强你的网站的可访问性。</p><p>想想你创建的上一个网站，或者你最喜欢的网站，你是否确信任何人都能使用你的网站并执行其所需的关键操作？你是否考虑过患有运动障碍、视力障碍、认知障碍和听力障碍的人呢？</p><p>无障碍往往是事后才想到的问题。当需要发布一项功能时，我们会进行无障碍测试，然后发现我们的网站并不具有无障碍特性，于是就进行简单的修复。</p><p>创建一个无障碍网站是一项艰巨的任务。但如果我们从一开始就牢记无障碍，那么创建一个无障碍的 Web 应用程序就会容易得多。</p><p>在本篇文章中，我将介绍你在创建应用程序的过程中可以牢记的 5 件事，这样你就不必在最后一筹莫展了。</p><h2 id="-5-">实现良好的无障碍需牢记的 5 件事</h2><ul><li>语义化 HTML（Semantinc HTML）</li><li>Tabindex</li><li>Aria 属性（Aria attributes）</li><li>Role</li><li>键盘导航和屏幕阅读器（Keyboard navigation and screen readers）</li></ul><p>简而言之，S.T.A.R.K。</p><p>如果你需要什么来辅助记住这一点，想想托尼-斯塔克（Tony Stark）。</p><figure class="kg-card kg-image-card"><img src="https://cdn.vox-cdn.com/uploads/chorus_image/image/55400215/ktokatitmir0.0.jpg" class="kg-image" alt="TonyStark" width="600" height="400" loading="lazy"></figure><p>让我们逐一了解如何在 Web 应用程序中使用它们。</p><h3 id="-html-">语义化 HTML 是什么</h3><p>使用语义化 HTML 对于无障碍非常重要。这是因为屏幕阅读器等辅助技术能够通过解析页面的 HTML 来解释页面上的内容。它们能让用户根据元素采取相应的行动。</p><p>例如，如果屏幕阅读器遇到一个按钮，它就会向用户发出信号，让他们点击该按钮。</p><p>让我们来看看不使用语义化 HTML 时会发生什么情况：</p><h4 id="-div-button-">使用 <code>div</code> 而不是 <code>button</code> 创建按钮：</h4><p><code>div</code> 是容器元素，因此当屏幕阅读器遇到 <code>div</code> 时，它会自动认为这是一个呈现元素。</p><p>当屏幕阅读器用户遇到一个内含内容或子元素的 <code>div</code> 时，屏幕阅读器会宣布 <code>role="group"</code>，而用户将完全不知道这个 <code>div</code> 是交互式的。因此，请确保使用适当的语义元素来实现其目的。这是实现轻松实现无障碍的方法。</p><h4 id="-css-h1-6-">使用 CSS 写标题，而不是使用 <code>h1-6</code> 标记：</h4><p><code>&lt;h1&gt;</code> 和 <code>&lt;h2&gt;</code>等标题标记可以让辅助技术知道这是重要的文本，屏幕阅读器会提示 "标题"。 </p><p>如果使用 CSS 而不是正确的语义来生成标题，屏幕阅读器就会忽略文本的重要性。</p><p>因此，请确保尽可能使用语义化 HTML。</p><h3 id="tabindex-">Tabindex 是什么</h3><p>添加 <code>tabindex</code> 可使交互式元素具有键盘导航功能。为元素添加 <code>tabindex</code> 后，用户只需使用键盘和/或辅助技术就能导航到该元素。</p><ul><li><code>tabindex</code> 为 <code>0</code> 时，按默认制表顺序将焦点设置到元素上</li><li><code>tabindex</code> 为 <code>-1</code> 时，使用 JavaScript 通过编程的方式让元素获得焦点</li><li>不要为 <code>tabindex</code> 赋值 &gt; 1</li></ul><p>但有一点要注意——你只能为交互式元素添加 <code>tabindex</code>。为 <code>div</code> 等元素添加 <code>tabindex</code> 并不是一种好的做法。</p><p>在这种情况下，请使用语义元素（如 <code>button</code>）来代替添加 <code>tabindex</code>，因为语义元素已经可以添加 <code>tabbable</code>，不需要额外的 <code>tabindex</code> 值。</p><h3 id="aria-"><strong>Aria 属性是什么</strong></h3><p><code>aria-checked</code> 和 <code>aria-label</code> 等 Aria 属性可为辅助技术提供额外信息。</p><p>Aria 属性是一组 HTML 属性，用于提供有关网页上元素的目的和状态的附加信息。这些属性尤其有利于辅助技术为用户提供更多的上下文和更好的导航。</p><p>一些常见的 aria-attributes 包括：</p><ul><li><code>aria-label</code>：用于为元素提供标签或名称</li><li><code>aria-hidden</code>：用于表示元素应从辅助技术中隐藏，这对用于布局但与页面内容无关的元素非常有用</li><li><code>aria-describedby</code>：用于将元素与描述关联起来，这有助于提供元素的上下文</li><li><code>aria-live</code>：用于表示元素的内容可能会动态变化，辅助技术应注意元素内容的变化</li></ul><p>你可以将这些属性与标准 HTML 属性结合起来使用，以创建更易于访问的和用户友好的网页内容。</p><h3 id="aria-role-"><code><strong>aria-role</strong></code><strong> 属性是什么</strong></h3><p>你可以使用 <code>aria-role</code> 属性来定义 HTML 元素的用途并提供其语义。</p><p>例如，如果你正在使用 CSS 和 <code>div</code> 创建一个网格组件，你可以使用 <code>role="grid"</code> 让辅助技术了解该组件的语义。</p><p>一些常见的 <code>aria-role</code> 包括：</p><ul><li><code>button</code>：用于表示一个元素应被视为一个按钮</li><li><code>alert</code>：用于表示某个元素是一个提示框</li><li><code>presentation</code>：用于表示一个元素只是演示性的</li></ul><p>使用 <code>aria-role</code> 时一定要谨慎。切记不要过度使用。</p><h3 id="-">如何操作键盘导航和屏幕阅读器</h3><p>许多有运动障碍的用户依靠键盘和辅助技术来浏览网页。因此，每个组件都必须能够使用键盘和屏幕阅读器进行导航。</p><p>你可以通过仅使用键盘导航网站来测试键盘的无障碍性。以下是一些常用键：</p><ul><li>tab 键，用于浏览网站的不同部分</li><li>空格键，用于选择元素，如复选框</li><li>回车键，用于按下按钮</li></ul><p>在测试键盘导航时，请务必考虑以下几点：</p><ul><li>焦点保持可见：确保你能清楚地看到页面上哪个元素获得焦点。焦点应始终保持可见。</li><li>选项卡顺序：在各部分之间切换时，切换顺序应遵循网站的自然流程和逻辑结构。不应在各部分之间来回跳转。</li><li>键盘陷阱：确保使用键盘导航时，焦点不会被困在某个元素上。例如，当打开模态框或焦点导航到日历或表情符号选择器等小工具时，就会出现这种情况。确保你在选择部件中的元素时，能够导航回网站。</li></ul><h2 id="--1"><strong>总结</strong></h2><p>总之，在开发过程中进行无障碍测试是整个流程的重要组成部分，有助于为所有用户创建更可用、更无障碍的软件。尽早测试无障碍特性有助于为每个人提供良好的用户体验。</p><p>在下一篇文章中，我将介绍各种无障碍性工具以及如何调试无障碍性问题。你可以在这里注册，<a href="http://tinyletter.com/shrutikapoor">在收件箱中收到这篇文章</a>。</p><p>在此之前，请享受你的假期！</p><p>圣诞快乐</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 语义化 HTML 指南——div 的十种替换方案 ]]>
                </title>
                <description>
                    <![CDATA[ 如果你的 HTML 布局是这个样子，请举手： <body>   <div class="header" id="site-header">     <div class="site-nav">       <ul>         <li><a href="/">Home</a></li>         <li><a href="/">About</a></li>         ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/semantic-html-alternatives-to-using-divs/</link>
                <guid isPermaLink="false">636bb2d6c8777b07d5fd1b6a</guid>
                
                    <category>
                        <![CDATA[ 无障碍 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ PapayaHUANG ]]>
                </dc:creator>
                <pubDate>Wed, 09 Nov 2022 04:19:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2022/11/root-font-size-article-image.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文：</strong> <a href="https://www.freecodecamp.org/news/semantic-html-alternatives-to-using-divs/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Semantic HTML Guide – 10 Alternatives to Using divs</a>
      </p><!--kg-card-begin: markdown--><p>如果你的 HTML 布局是这个样子，请举手：</p>
<pre><code class="language-html">&lt;body&gt;
  &lt;div class="header" id="site-header"&gt;
    &lt;div class="site-nav"&gt;
      &lt;ul&gt;
        &lt;li&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="/"&gt;About&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="/"&gt;Contact&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="content-wrap"&gt;
    &lt;div class="intro"&gt;
      This is the introduction to the site, which is full of divs.
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="container"&gt;&lt;/div&gt;
&lt;/body&gt;
</code></pre>
<p>大部分人在搭建 HTML 布局的时候会默认使用 <code>&lt;div&gt;</code> 元素。大多数人会把精力放在更有趣的 CSS 或者 JavaScript。</p>
<p>使用 <code>&lt;div&gt;</code> 元素在搭建页面的时候很简单，但是在后期会造成一些麻烦。</p>
<h2 id="div">仅使用<code>div</code>带来的问题</h2>
<p>使用 <code>&lt;div&gt;</code> 元素本身并没有什么问题。存在即合理。</p>
<p>但大量地使用 DIV 会给你和你的合作伙伴带来麻烦。</p>
<h3 id="">易读性问题</h3>
<p>如果你尝试去看别人的代码，或者是几个月后回看自己的代码，如果整个页面只有 <code>&lt;div&gt;</code>元素，很难快速浏览。</p>
<p>你得花费更多地时间去解构页面，这或许会成为你效率的绊脚石。仅是寻找某一个代码块的结束 <code>&lt;/div&gt;</code> 标签都会花费你大量时间。</p>
<h3 id="">无障碍问题</h3>
<p>遵循无障碍（a11y）原则是实践，不单是考虑颜色、对比和字幕。根据 WHO（联合国卫生组织）的统计结果：全世界约有 2.85 亿人口遭遇视觉损伤，其中 0.39 亿失明，2.46 亿视力低下。</p>
<p>这就是 HTML 应该无障碍的原因，也就是使用语义化代码。</p>
<p>屏幕阅读器需要通过上下文来判断网页的准确信息。 对于屏幕阅读器来说，<code>&lt;div&gt;</code>和<code>&lt;span&gt;</code>这类元素没有任何意义； 而<code>&lt;form&gt;</code>和 <code>&lt;button&gt;</code>这类语义化的元素更好解析。</p>
<h3 id="">一致性问题</h3>
<p>在团队工作中，如果你知道你即将在项目中担任什么角色，你的工作效率会更高，代码中的问题也会越少。</p>
<p>把使用语义化 HTML 设置为一个标准可以使任何刚加入的人马上了解网页布局。</p>
<p>另外，当你开始使用 CSS 来调整 HTML 样式的时候，你会发现语义化的 HTML 的元素更容易被选定。</p>
<h3 id="seo">SEO 问题</h3>
<p>使用语义化标记时，搜索引擎会将这些内容视为重要的关键字，以此来提高页面的搜索排名。 <a href="https://developer.mozilla.org/en-US/docs/Glossary/Semantics">(MDN 网页文档)</a></p>
<p>何为语义化 HTML？</p>
<p>我找到最<a href="https://www.w3schools.com/html/html5_semantic_elements.asp">清晰的定义</a> 是：</p>
<blockquote>
<p>语义元素清楚地向浏览器和开发人员描述了它的含义。</p>
</blockquote>
<p>使用语义化 HTML 带来的改变很像这样的场景：当你指向天空一个物品大呼：“快看！有一个物品”和“快看！有一架飞机”。</p>
<p>清晰描述日常物品使得日常交流更加容易，而语义化 HTML 使得读取代码更加容易。</p>
<p>实际上，语义化 HTML 已经被当作 <a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-div-element">HTML5 标准</a>：</p>
<blockquote>
<p>鼓励开发者将 <a href="https://html.spec.whatwg.org/multipage/grouping-content.html#the-div-element">div</a> 元素作为备选方案，当实在没有别的元素可以使用的时候再使用。使用比 <code>div</code> 元素更适合的元素可以使网页的无障碍性更好，使开发者更易维护代码。</p>
</blockquote>
<p>举一个例子，哪一个更方便阅读：</p>
<pre><code class="language-html">&lt;div class="quote" id="twain-quote"&gt;
  "Get your facts first, then you can distort them as you please." – Mark Twain
&lt;/div&gt;
</code></pre>
<p>或者</p>
<pre><code class="language-html">&lt;blockquote&gt;
  "Get your facts first, then you can distort them as you please." – Mark Twain
&lt;/blockquote&gt;
</code></pre>
<p>在上面两个例子中，我们看到了 <code>&lt;blockquote&gt;</code> 元素，我们很容易就理解到元素内的文字应该被当作引用来处理格式。</p>
<p>如果使用<code>div</code>可能需要进一步判断，但使用语义化 HTML 总不会错。</p>
<h2 id="htmldiv">HTML 中<code>div</code>的替换元素</h2>
<p>让我们来看看一些常用的<code>div</code> 替换元素。你很有可能见过这些元素，我们将在这里讲解它们存在的原因以及如何使用。</p>
<h3 id="nav"><nav>元素</nav></h3>
<pre><code class="language-html">&lt;nav&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href="/"&gt;Home&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="/"&gt;About&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="/"&gt;Contact&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/nav&gt;
</code></pre>
<p>nav 元素正如其名，是用来标记一系列导航连接的元素。</p>
<p>如上文所述，这个标记可以帮助屏幕阅读器判断是否现在就展示所属内容。<code>nav</code> 元素的最佳实践是 HTML 文档中的导航链接代码块。</p>
<h3 id="main"><main> 元素</main></h3>
<pre><code class="language-html">&lt;main&gt;
  &lt;h1&gt;The Godfather of All Content&lt;/h1&gt;
  &lt;h2&gt;The Wedding&lt;/h2&gt;
  &lt;p&gt;
    Why did you go to the police? Why didn't you come to me first? Vito, how do
    you like my little angel? Isn't she beautiful? Only don't tell me you're
    innocent. Because it insults my intelligence and makes me very angry. I see
    you took the name of the town. What was your father's name? The hotel, the
    casino. The Corleone Family wants to buy you out.
  &lt;/p&gt;
&lt;/main&gt;
</code></pre>
<p>和 <code>&lt;nav&gt;</code>类似，这个元素也正如其名（语义化派上了用场）。该元素将页面或者文档的主要内容打包成一个块级元素。main 元素位于两个<code>&lt;body&gt;</code>标签之间。</p>
<h3 id="section"><section> 元素</section></h3>
<pre><code class="language-html">&lt;section&gt;
  &lt;h1&gt;The Best Sandwich Ever&lt;/h1&gt;
&lt;/section&gt;
&lt;section&gt;
  &lt;p&gt;
    The best sandwich is a mutton, lettuce and tomato, where the mutton is nice
    and lean. It's so perky, I love that.
  &lt;/p&gt;
&lt;/section&gt;
</code></pre>
<p><code>&lt;section&gt;</code>元素是取代<code>div</code>来区分不同内容绝佳的例子。</p>
<p>在上面的例子中，我们将一段介绍和段落开头区分成两个 section，这样和<code>&lt;div&gt;</code>类相比在 CSS 文档中就更容易找到这些 section。</p>
<h3 id="header"><header> 元素</header></h3>
<pre><code class="language-html">&lt;header&gt;
  &lt;img src="/" id="logo" /&gt;
&lt;/header&gt;
</code></pre>
<p><code>&lt;header&gt;</code> 元素和<code>&lt;head&gt;</code> 不同，你可以在文档内多次使用。</p>
<p>例如，你可以使用一对<code>&lt;header&gt;</code> 元素来放置一个 logo，以及另一组对 header 来介绍特定的内容，如 article（之后会详细说明）。</p>
<h3 id="footer"><footer> 元素</footer></h3>
<pre><code class="language-html">&lt;footer&gt;
  &lt;p&gt;© 2021 All rights reserved. Don't steal.&lt;/p&gt;
  &lt;p&gt;Contact: &lt;a href="mailto:jiffy@jiffysites.com"&gt;Email Jiffy!&lt;/a&gt;&lt;/p&gt;
&lt;/footer&gt;
</code></pre>
<p>和 <code>&lt;header&gt;</code> 元素一样，你可以在 HTML 文档中的任意地方使用 <code>&lt;footer&gt;</code> 元素。</p>
<p><code>&lt;footer&gt;</code> 的典型案例是展示版权和作者信息，也可以使用 footer 元素来结束 <code>&lt;section&gt;</code> 元素。</p>
<h3 id="div">一些不那么常见的 <code>div</code>替换</h3>
<p>还有一些元素你可能见过，或者只见过一两次。但是当你需要的时候，它们很有用，学习它们可以使得你的代码的易读性更好。</p>
<h3 id="aside"><aside> 元素</aside></h3>
<pre><code class="language-html">&lt;p&gt;
  My favorite TV show of all time is The Muppet Show. It's sweet, funny and
  brilliant.
&lt;/p&gt;
&lt;aside&gt;
  &lt;h3&gt;The Muppet Show&lt;/h3&gt;
  &lt;p&gt;The Muppet Show was created by Jim Henson and aired from 1976 – 1981.&lt;/p&gt;
&lt;/aside&gt;
</code></pre>
<p>在影视和戏剧作品中，aside 是一种戏剧手法，角色会跳脱出主要的对话，和观众进行交流。</p>
<p>我们在 HTML 中也可以这样使用 </p><aside> 元素。我们对一个内容做注解，注解和主题内容区分。我们可以把它放置在侧边栏。<p></p>
<h3 id="code"><code> 元素</code></h3><code>
<pre><code class="language-html">&lt;p&gt;
  You can use this for a piece of code such as:
  &lt;code class="gray-code"&gt;const muppetFrog = 'Kermit'&lt;/code&gt;, which looks
  different from the other text.
&lt;/p&gt;
</code></pre>
<p>如果想要将代码和普通文本区分开来，可以使用 <code>&lt;code&gt;</code> 元素。上面示例在浏览器的渲染结果（添加了一点 CSS 样式）如下：</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/code-display.png" alt="code-display" width="600" height="400" loading="lazy"></p>
<h3 id="article"><article> 元素</article></h3>
<pre><code class="language-html">&lt;article class="all-muppets"&gt;
  &lt;h1&gt;Muppets&lt;/h1&gt;
  &lt;article class="kermit"&gt;
    &lt;p&gt;Kermit is the Muppet leader.&lt;/p&gt;
  &lt;/article&gt;
  &lt;article class="fozzy"&gt;
    &lt;p&gt;Fozzy is a stand-up bear.&lt;/p&gt;
  &lt;/article&gt;
  &lt;article class="piggy"&gt;
    &lt;p&gt;Don't mess with Miss Piggy.&lt;/p&gt;
  &lt;/article&gt;
&lt;/article&gt;
</code></pre>
<p><code>&lt;article&gt;</code> 元素也是用来和其他元素区分内容的。</p>
<p><code>&lt;article&gt;</code>自成一体，和主内容区分开来。使用这个元素可以更容易使用 CSS 将它与页面其他内容区分开来。</p>
<h3 id="blockquote"><blockquote> 元素</blockquote></h3>
<p><code>&lt;blockquote&gt;</code> 简单明了，将引文和其他文本区分开来，如上文所示。</p>
<h3 id="mark"><mark> 元素</mark></h3>
<pre><code class="language-html">&lt;p&gt;
  This is a sentence about the best Muppet ever, which happens to be
  &lt;mark&gt;Pepe the King Prawn&lt;/mark&gt;.
&lt;/p&gt;
</code></pre>
<p><code>&lt;mark&gt;</code> 元素不仅可以使文本高亮，也可以使文档内容更易被理解，如下：</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/07/mark-display.png" alt="mark-display" width="600" height="400" loading="lazy"></p>
<p>请在你的代码中使用这些<code>div</code>替换元素，提高你的代码的易读性。</p>
<h2 id="">总结</h2>
<p>以上只是十个 <code>div</code> 的替换元素，在 HTML 还有另一些语义化元素。</p>
<p>我们不可能在一个文档中把它们全都用了，也不需要记住这一百来个元素。 需要的时候你可以查看 MDN 文档： <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element">HTML 元素参考</a>。</p>
<p>编写语义化 HTML 是一个好习惯，越早开始越好。它提高了易读性、SEO，同时也不要忘了那些视觉障碍的人，他们会非常感谢你的体贴。</p>
<!--kg-card-end: markdown--></code></aside> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
