Web无障碍开发教程

Web无障碍开发教程

目录

  1. Web无障碍简介
  2. 无障碍设计原则
  3. HTML语义化
  4. 键盘可访问性
  5. 视觉设计与无障碍
  6. 多媒体无障碍
  7. 表单与交互元素无障碍
  8. 辅助技术兼容性
  9. 测试与评估
  10. 法律和政策合规
  11. 网站无障碍声明

Web无障碍简介

什么是Web无障碍

Web无障碍(Web Accessibility)是指设计和开发网站、工具和技术时,确保所有人,包括残障人士,都能平等地访问和使用Web内容。它的目标是消除Web使用中的障碍,让互联网成为一个包容性更强的空间。

Web无障碍涉及多个方面,包括但不限于:

  • 视觉:为视力障碍者提供屏幕阅读器兼容的内容
  • 听觉:为听力障碍者提供音频内容的文字转录
  • 运动:为行动不便者提供键盘导航功能
  • 认知:为认知障碍者提供清晰、简单的界面和内容
  • Web无障碍的重要性

    Web无障碍对于创建一个包容性的数字世界至关重要,其重要性体现在以下几个方面:

    1. 平等机会:确保所有人都能平等地访问信息和服务,不因残障而被排斥。

    2. 扩大受众群:通过提高可访问性,网站可以吸引更多的用户,包括残障人士和老年人。

    3. 提升用户体验:无障碍设计通常会改善所有用户的体验,使网站更易于使用和导航。

    4. 法律合规:许多国家已经制定了Web无障碍相关法律,遵守这些规定可以避免法律风险。

    5. 社会责任:实践Web无障碍体现了企业的社会责任,有助于建立积极的品牌形象。

    6. 技术创新:追求无障碍性能促进技术创新,如语音识别和自动字幕等技术的发展。

    无障碍标准和指南

    为了指导开发者创建无障碍的Web内容,多个组织制定了相关标准和指南。其中最广为人知的是:

    1. Web内容无障碍指南(WCAG)

      WCAG由W3C的Web无障碍倡议(WAI)制定,是最广泛采用的国际标准。WCAG基于四个原则:

    2. 可感知(Perceivable)
    3. 可操作(Operable)
    4. 可理解(Understandable)
    5. 鲁棒性(Robust)

    WCAG提供了三个符合级别:A(最低),AA和AAA(最高)。

  • 无障碍富互联网应用程序(ARIA)

    ARIA是一套由W3C制定的规范,旨在使Web内容和Web应用程序更易于访问。它提供了一种方法来添加语义和其他元数据到HTML元素,以增强可访问性。

  • Section 508

    这是美国的一项法规,要求联邦机构的电子和信息技术对残障人士可访问。虽然主要适用于美国政府网站,但也常被其他组织采用作为指南。

  • 要实现Web无障碍,开发者应该熟悉这些标准和指南,并在开发过程中积极应用。同时,定期进行无障碍测试和评估也是确保网站持续符合无障碍标准的重要步骤。

    无障碍设计原则

    感知性

    感知性原则要求网站的信息和用户界面组件必须以用户可以感知的方式呈现。

  • 为非文本内容提供替代文本
  • 为多媒体内容提供字幕和音频描述
  • 创建可以以不同方式呈现的内容,而不丢失信息或结构
  • 使内容易于查看和听取
  • 示例代码:

    <!-- 为图片提供替代文本 -->
    <img src="logo.png" alt="公司标志">
    
    <!-- 为视频提供字幕 -->
    <video controls>
      <source src="video.mp4" type="video/mp4">
      <track kind="captions" src="captions.vtt" srclang="zh" label="中文字幕">
    </video>

    可操作性

    可操作性原则确保用户界面组件和导航是可操作的。

  • 所有功能应可通过键盘访问
  • 为用户提供足够的时间阅读和使用内容
  • 避免设计可能导致癫痫发作的内容
  • 提供帮助用户导航和找到内容的方法
  • 示例代码:

    <!-- 使用语义化的导航结构 -->
    <nav aria-label="主导航">
      <ul>
        <li><a href="#home">首页</a></li>
        <li><a href="#about">关于我们</a></li>
        <li><a href="#contact">联系方式</a></li>
      </ul>
    </nav>
    
    <!-- 为表单控件提供标签 -->
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username">

    可理解性

    可理解性原则要求信息和用户界面的操作必须是可理解的。

  • 使文本内容可读且可理解
  • 使网页以可预测的方式出现和操作
  • 帮助用户避免和纠正错误
  • 示例代码:

    <!-- 使用简单明了的语言 -->
    <p>请填写以下表单以注册账户。所有带星号(*)的字段为必填项。</p>
    
    <!-- 提供清晰的错误信息 -->
    <form>
      <label for="email">电子邮件*:</label>
      <input type="email" id="email" name="email" required>
      <span id="email-error" class="error" aria-live="polite"></span>
    </form>
    
    <script>
    document.querySelector('form').addEventListener('submit', function(event) {
      var emailInput = document.getElementById('email');
      var emailError = document.getElementById('email-error');
      if (!emailInput.validity.valid) {
        event.preventDefault();
        emailError.textContent = '请输入有效的电子邮件地址。';
      }
    });
    </script>

    兼容性

    兼容性原则确保内容与当前和未来的用户代理(包括辅助技术)兼容。

  • 最大化与当前和未来用户代理的兼容性
  • 确保无障碍功能可以被关闭
  • 使用 WAI-ARIA 来增强可访问性
  • 示例代码:

    <!-- 使用WAI-ARIA角色和属性 -->
    <div role="alert" aria-live="assertive">
      您的表单已成功提交!
    </div>
    
    <!-- 创建一个可访问的下拉菜单 -->
    <div class="dropdown">
      <button aria-haspopup="true" aria-expanded="false">选项菜单</button>
      <ul role="menu" hidden>
        <li role="menuitem"><a href="#option1">选项1</a></li>
        <li role="menuitem"><a href="#option2">选项2</a></li>
        <li role="menuitem"><a href="#option3">选项3</a></li>
      </ul>
    </div>

    通过遵循这些原则,开发者可以创建更加包容和易于访问的网站,确保所有用户都能够有效地使用和理解网站内容。

    HTML语义化

    HTML语义化是提高网页可访问性的关键基础。它不仅能让页面结构更加清晰,还能帮助辅助技术更好地理解和解释网页内容。

    正确使用HTML标签

    正确使用HTML标签是实现语义化的第一步。每个HTML标签都有其特定的语义和用途,合理使用这些标签可以使网页结构更加清晰,同时提高可访问性。

    一些常用的语义化标签包括:

  • <header>: 用于页面或区块的头部
  • <nav>: 导航菜单
  • <main>: 主要内容区域
  • <article>: 独立的文章内容
  • <section>: 相关内容的区块
  • <aside>: 侧边栏内容
  • <footer>: 页脚
  • 示例代码:

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta charset="utf-8">
        <title>语义化HTML示例</title>
    </head>
    <body>
        <header>
            <h1>网站标题</h1>
            <nav>
                <ul>
                    <li><a href="#home">首页</a></li>
                    <li><a href="#about">关于</a></li>
                    <li><a href="#contact">联系我们</a></li>
                </ul>
            </nav>
        </header>
    
        <main>
            <article>
                <h2>文章标题</h2>
                <p>文章内容...</p>
            </article>
    
            <aside>
                <h3>相关链接</h3>
                <ul>
                    <li><a href="#">链接1</a></li>
                    <li><a href="#">链接2</a></li>
                </ul>
            </aside>
        </main>
    
        <footer>
            <p>© 2023 公司名称。保留所有权利。</p>
        </footer>
    </body>
    </html>

    ARIA属性的应用

    ARIA(Accessible Rich Internet Applications)是一组用于增强Web内容和应用程序可访问性的属性。它们可以为HTML元素提供额外的语义信息,特别是对于那些没有原生语义的自定义组件。

    常用的ARIA属性包括:

  • role: 定义元素的角色
  • aria-label: 为元素提供标签
  • aria-describedby: 指向描述元素的ID
  • aria-hidden: 隐藏不需要被辅助技术读取的元素
  • 示例代码:

    <button role="tab" aria-selected="true" aria-controls="panel-1">
        标签1
    </button>
    
    <div id="search" role="search">
        <input type="text" aria-label="搜索" placeholder="输入搜索内容">
        <button aria-label="执行搜索">搜索</button>
    </div>
    
    <div class="alert" role="alert" aria-live="polite">
        操作成功!
    </div>
    
    <span class="icon" aria-hidden="true">&#9733;</span>

    替代文本的重要性

    替代文本(alt text)是为图像、视频等非文本内容提供文字描述的重要方式。它不仅能帮助视觉障碍用户理解内容,还能在图像无法加载时提供信息,同时对SEO也有积极影响。

    关于替代文本的几点建议:

    1. 所有重要的图片都应该有alt属性
    2. 描述应该简洁而准确,传达图像的主要信息
    3. 装饰性图片可以使用空的alt属性(alt=””)
    4. 复杂图表可以使用longdesc属性链接到详细描述

    示例代码:

    <!-- 信息性图片 -->
    <img src="company-logo.png" alt="XX公司标志">
    
    <!-- 功能性图片 -->
    <a href="https://example.com">
        <img src="download-icon.png" alt="下载按钮">
    </a>
    
    <!-- 装饰性图片 -->
    <img src="decorative-line.png" alt="">
    
    <!-- 复杂图表 -->
    <img src="sales-chart.png" alt="2023年季度销售数据图表" longdesc="sales-chart-description.html">

    通过正确使用HTML标签、应用ARIA属性和提供恰当的替代文本,我们可以显著提高网页的可访问性,使得各种用户,包括使用辅助技术的用户,都能更好地访问和理解网页内容。

    键盘可访问性

    键盘可访问性是网页开发中的一个重要方面,它确保所有用户,包括那些无法使用鼠标的用户,都能够通过键盘操作来访问和使用网站的所有功能。以下是三个关键的子主题:

    焦点管理

    焦点管理是确保用户可以清楚地知道当前哪个元素被选中的关键。良好的焦点管理可以帮助用户更容易地导航和操作网页。

    主要原则:

    1. 确保所有可交互元素都能接收焦点
    2. 提供清晰可见的焦点指示器
    3. 维护合理的焦点顺序

    示例代码:

    /* 自定义焦点样式 */
    :focus {
      outline: 2px solid #007bff;
      box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
    }
    
    /* 去除默认的焦点轮廓,但保留可访问性 */
    .custom-focus:focus {
      outline: none;
      box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.5);
    }

    键盘导航

    键盘导航允许用户使用键盘在网页的各个元素之间移动。确保用户可以使用Tab键在所有交互元素之间导航,并且能够使用Enter键激活这些元素。

    主要原则:

    1. 使用正确的HTML语义元素
    2. 确保所有功能都可以通过键盘访问
    3. 提供跳过重复内容的链接

    示例代码:

    <!-- 跳过导航链接 -->
    <a href="#main-content" class="skip-link">跳到主要内容</a>
    
    <!-- 导航菜单 -->
    <nav>
      <ul>
        <li><a href="#home">首页</a></li>
        <li><a href="#about">关于我们</a></li>
        <li><a href="#services">服务</a></li>
        <li><a href="#contact">联系我们</a></li>
      </ul>
    </nav>
    
    <!-- 主要内容 -->
    <main id="main-content">
      <!-- 页面主要内容 -->
    </main>

    快捷键设计

    快捷键可以大大提高键盘用户的效率。设计合适的快捷键可以帮助用户快速访问网站的主要功能。

    主要原则:

    1. 使用直观且易记的组合键
    2. 避免与浏览器和操作系统的默认快捷键冲突
    3. 提供快捷键的文档和说明

    示例代码:

    // 为网站添加快捷键
    document.addEventListener('keydown', function(event) {
      // Ctrl + H:跳转到首页
      if (event.ctrlKey && event.key === 'h') {
        event.preventDefault();
        window.location.href = '/home';
      }
    
      // Ctrl + S:打开搜索栏
      if (event.ctrlKey && event.key === 's') {
        event.preventDefault();
        document.getElementById('search-bar').focus();
      }
    
      // 更多快捷键...
    });

    通过实施这些键盘可访问性策略,可以显著提高网站的整体可用性,使其对所有用户都更加友好和易于使用。

    视觉设计与无障碍

    视觉设计在网页无障碍开发中扮演着至关重要的角色。通过合理的设计,我们可以确保所有用户,包括那些视力受限或色盲的用户,都能轻松地访问和理解网页内容。本节将探讨三个关键方面:颜色对比度、字体选择与大小,以及响应式设计考虑。

    颜色对比度

    颜色对比度是指前景(通常是文本)和背景之间的亮度差异。高对比度可以提高文本的可读性,特别是对于视力受限的用户。

    最佳实践:

    1. 遵循WCAG 2.1指南,确保文本和背景的对比度至少为4.5:1(对于大文本,可以是3:1)。
    2. 使用颜色对比度检查工具来验证你的设计。
    3. 避免仅依赖颜色来传达信息,always提供替代方式(如图标或文本标签)。

    示例代码:

    /* 高对比度文本样式 */
    .high-contrast-text {
        color: #000000; /* 黑色文本 */
        background-color: #FFFFFF; /* 白色背景 */
    }
    
    /* 为链接添加下划线,不仅依赖颜色 */
    a {
        color: #0000FF; /* 蓝色链接 */
        text-decoration: underline;
    }

    字体选择与大小

    选择合适的字体和大小对于提高可读性至关重要,尤其是对于视力不佳的用户。

    最佳实践:

    1. 使用清晰、易读的sans-serif字体作为默认选择。
    2. 设置基础字体大小为16px或更大。
    3. 使用相对单位(如em或rem)来定义字体大小,允许用户根据需要调整。
    4. 确保行高适当,通常为1.5倍字体大小。

    示例代码:

    body {
        font-family: Arial, Helvetica, sans-serif;
        font-size: 16px; /* 基础字体大小 */
        line-height: 1.5;
    }
    
    h1 {
        font-size: 2em; /* 相对于基础字体大小的2倍 */
    }
    
    p {
        font-size: 1rem; /* 1rem等于根元素的字体大小 */
    }

    响应式设计考虑

    响应式设计确保网页在各种设备和屏幕尺寸上都能正常显示和使用。这对于无障碍性尤为重要,因为许多用户可能使用放大工具或特定的设备设置。

    最佳实践:

    1. 使用流式布局和弹性盒子(Flexbox)或网格(Grid)来创建灵活的页面结构。
    2. 实现可缩放的文本,避免使用固定的像素尺寸。
    3. 确保触摸目标(如按钮和链接)足够大,易于点击。
    4. 使用媒体查询来调整布局和样式,以适应不同的屏幕尺寸。

    示例代码:

    /* 基本的响应式布局 */
    .container {
        display: flex;
        flex-wrap: wrap;
    }
    
    .column {
        flex: 1 1 300px; /* 弹性增长、收缩和基础宽度 */
        margin: 10px;
    }
    
    /* 适应小屏幕的媒体查询 */
    @media screen and (max-width: 600px) {
        .column {
            flex: 1 1 100%; /* 在小屏幕上占满宽度 */
        }
    }
    
    /* 确保触摸目标足够大 */
    button, .touch-target {
        min-width: 44px;
        min-height: 44px;
        padding: 10px;
    }

    通过关注这些视觉设计方面,我们可以显著提高网页的无障碍性,使其对所有用户都更加友好和易用。记住,好的无障碍设计不仅有利于特定群体,而且能够提升所有用户的使用体验。

    多媒体无障碍

    视频字幕和音频描述

    在进行网页无障碍开发时,为视频内容提供字幕和音频描述是非常重要的。这不仅能帮助听力障碍用户理解视频内容,还能为视力障碍用户提供更好的体验。

    视频字幕

    1. 使用 <track> 元素为视频添加字幕:
    <video controls>
      <source src="video.mp4" type="video/mp4">
      <track kind="subtitles" src="captions.vtt" srclang="zh" label="中文" default>
    </video>
    1. 创建 WebVTT 格式的字幕文件(captions.vtt):
    WEBVTT
    
    00:00:00.000 --> 00:00:02.000
    欢迎观看这个视频教程
    
    00:00:02.500 --> 00:00:05.000
    今天我们将学习网页无障碍开发

    音频描述

    为视力障碍用户提供音频描述,描述视频中的视觉信息:

    1. 创建包含音频描述的视频版本
    2. 使用 <track> 元素添加音频描述:
    <video controls>
      <source src="video.mp4" type="video/mp4">
      <source src="video_with_description.mp4" type="video/mp4">
      <track kind="descriptions" src="descriptions.vtt" srclang="zh" label="音频描述">
    </video>

    图像的替代文本

    为图像提供替代文本是确保视力障碍用户能够理解图像内容的关键。

    使用 alt 属性

    <img src="logo.png" alt="公司标志:一朵绽放的花">

    复杂图像的描述

    对于复杂的图像,可以使用 aria-describedby 属性链接到详细描述:

    <img src="chart.png" alt="销售数据图表" aria-describedby="chart-description">
    <p id="chart-description">这张图表展示了过去12个月的销售趋势,显示销售额逐月稳步增长。</p>

    装饰性图像

    对于纯装饰性的图像,使用空的 alt 属性:

    <img src="decorative-line.png" alt="">

    非文本内容的无障碍

    除了图像和视频,还有其他类型的非文本内容需要考虑无障碍性。

    音频内容

    为音频内容提供文字记录:

    <audio controls>
      <source src="podcast.mp3" type="audio/mpeg">
    </audio>
    <a href="podcast-transcript.html">查看音频文字记录</a>

    SVG 图形

    为 SVG 图形添加描述性文本:

    <svg width="100" height="100">
      <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow">
        <title>黄色圆圈,绿色边框</title>
      </circle>
    </svg>

    表格数据

    使用适当的表格标记和摘要:

    <table>
      <caption>月度销售报告</caption>
      <thead>
        <tr>
          <th scope="col">月份</th>
          <th scope="col">销售额</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <th scope="row">一月</th>
          <td>10,000元</td>
        </tr>
        <!-- 更多行... -->
      </tbody>
    </table>

    通过实施这些多媒体无障碍技术,我们可以显著提高网站的可访问性,确保所有用户都能获得良好的体验。

    表单与交互元素无障碍

    标签和说明文字

    在开发无障碍网页时,为表单和交互元素提供清晰的标签和说明文字是至关重要的。这不仅可以帮助视力正常的用户,还能让使用屏幕阅读器的用户更好地理解和操作表单。

    1. 使用<label>元素:
      为每个表单控件关联一个标签,可以提高可访问性。

      <label for="username">用户名:</label>
      <input type="text" id="username" name="username">
    2. 使用aria-label属性:
      当无法使用可见的标签时,可以使用aria-label属性为元素提供描述。

      <button aria-label="关闭对话框">X</button>
    3. 使用aria-describedby属性:
      为表单控件提供额外的说明文字。

      <label for="password">密码:</label>
      <input type="password" id="password" name="password" aria-describedby="password-hint">
      <p id="password-hint">密码必须包含至少8个字符,包括大小写字母和数字。</p>

    错误提示和验证

    适当的错误提示和验证机制可以帮助所有用户,尤其是那些使用辅助技术的用户,更容易地识别和纠正输入错误。

    1. 使用aria-invalid属性:
      当输入无效时,设置aria-invalid="true"

      <input type="email" id="email" name="email" aria-invalid="true">
    2. 使用aria-errormessage属性:
      关联错误消息与表单控件。

      <label for="email">电子邮箱:</label>
      <input type="email" id="email" name="email" aria-invalid="true" aria-errormessage="email-error">
      <p id="email-error" role="alert">请输入有效的电子邮箱地址</p>
    3. 使用role="alert"
      为动态生成的错误消息添加此角色,使屏幕阅读器能够立即宣布它们。

    自定义控件的无障碍

    对于自定义的交互控件,我们需要特别注意确保它们对所有用户都是可访问的。

    1. 使用适当的ARIA角色:
      为自定义控件分配合适的角色,以便辅助技术能够正确解释它们。

      <div role="button" tabindex="0" id="custom-button">自定义按钮</div>
    2. 管理焦点:
      确保自定义控件可以通过键盘访问和操作。

      const customButton = document.getElementById('custom-button');
      
      customButton.addEventListener('keydown', (event) => {
       if (event.key === 'Enter' || event.key === ' ') {
         event.preventDefault();
         // 执行按钮点击操作
       }
      });
    3. 提供状态反馈:
      使用ARIA状态属性来传达控件的当前状态。

      <div role="checkbox" tabindex="0" aria-checked="false" id="custom-checkbox">自定义复选框</div>
      const customCheckbox = document.getElementById('custom-checkbox');
      
      customCheckbox.addEventListener('click', () => {
       const isChecked = customCheckbox.getAttribute('aria-checked') === 'true';
       customCheckbox.setAttribute('aria-checked', !isChecked);
      });

    通过遵循这些原则和技术,我们可以显著提高表单和交互元素的可访问性,确保所有用户都能顺利地使用我们的网站或应用程序。

    辅助技术兼容性

    辅助技术兼容性是Web可访问性开发中的关键部分,它确保网站或应用程序能够与各种辅助技术无缝配合,为所有用户提供良好的使用体验。

    屏幕阅读器测试

    屏幕阅读器是视障用户浏览网页的重要工具。开发者需要确保网页内容能被屏幕阅读器正确解读和朗读。

    关键要点:

    1. 使用语义化HTML标签
    2. 提供适当的替代文本
    3. 确保正确的标题层级
    4. 使用ARIA属性增强可访问性

    代码示例:

    <!-- 使用语义化标签 -->
    <nav>
      <ul>
        <li><a href="#home">首页</a></li>
        <li><a href="#about">关于我们</a></li>
      </ul>
    </nav>
    
    <!-- 提供替代文本 -->
    <img src="logo.png" alt="公司标志">
    
    <!-- 正确的标题层级 -->
    <h1>主标题</h1>
    <h2>二级标题</h2>
    <h3>三级标题</h3>
    
    <!-- 使用ARIA属性 -->
    <button aria-label="关闭" onclick="closeModal()">X</button>

    放大镜兼容性

    为低视力用户提供良好的放大体验是非常重要的。网页设计应当考虑到内容在放大时的布局和可读性。

    关键要点:

    1. 使用响应式设计
    2. 避免使用固定像素尺寸
    3. 确保文本和背景色对比度足够
    4. 测试不同缩放级别下的布局

    代码示例:

    /* 使用响应式单位 */
    body {
      font-size: 16px; /* 基准字体大小 */
    }
    
    h1 {
      font-size: 2em; /* 相对于基准字体的2倍大小 */
    }
    
    /* 确保足够的对比度 */
    .content {
      color: #333; /* 深灰色文本 */
      background-color: #fff; /* 白色背景 */
    }
    
    /* 响应式布局 */
    @media screen and (max-width: 600px) {
      .container {
        width: 100%;
        padding: 0 15px;
      }
    }

    语音识别支持

    语音识别技术使得用户能够通过语音命令控制网页。确保网页能够支持语音交互是提高可访问性的重要方面。

    关键要点:

    1. 为所有可交互元素提供清晰的标签
    2. 使用tabindex属性确保正确的焦点顺序
    3. 实现键盘导航支持
    4. 避免使用依赖于特定设备的交互方式

    代码示例:

    <!-- 清晰的标签和tabindex -->
    <form>
      <label for="username">用户名:</label>
      <input type="text" id="username" name="username" tabindex="1">
    
      <label for="password">密码:</label>
      <input type="password" id="password" name="password" tabindex="2">
    
      <button type="submit" tabindex="3">登录</button>
    </form>
    
    <!-- 键盘导航支持 -->
    <script>
    document.addEventListener('keydown', function(e) {
      if (e.key === 'Enter' && e.target.tagName === 'BUTTON') {
        e.target.click();
      }
    });
    </script>

    通过实施这些技术和最佳实践,开发者可以显著提高网站的辅助技术兼容性,为所有用户创造更加包容和无障碍的网络体验。

    无障碍与SEO的关系

    无障碍开发和搜索引擎优化(SEO)之间存在着密切的关系。良好的无障碍实践不仅能够帮助所有用户更好地访问网站内容,还能提高网站在搜索引擎中的排名。以下是无障碍开发如何影响SEO的几个关键方面:

    1. 语义化HTML:

    2. 使用正确的HTML标签和结构有助于搜索引擎理解网页内容
    3. 语义化标签如<header>, <nav>, <article>等也有利于无障碍访问
  • 清晰的标题结构:

  • 使用正确的标题层级(h1-h6)不仅有助于屏幕阅读器用户导航,也能让搜索引擎更好地理解页面结构