全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-17 8 分钟 ✍️ juanwangdev

无障碍多媒体嵌入

无障碍多媒体嵌入遵循 WCAG 标准,确保视听障碍用户能够获取多媒体内容。

核心要求

WCAG 级别要求

级别要求
A级必须提供字幕替代方案
AA级实时内容提供字幕,预录内容提供字幕
AAA级提供音频描述和扩展字幕

视频无障碍

字幕轨道(track元素)

HTML
<video controls>
  <source src="video.mp4" type="video/mp4">
  <track
    kind="subtitles"
    src="subtitles-zh.vtt"
    srclang="zh"
    label="中文字幕"
    default
  >
  <track
    kind="captions"
    src="captions-zh.vtt"
    srclang="zh"
    label="中文隐藏字幕"
  >
</video>

WebVTT 字幕格式

vtt
WEBVTT

00:00:01.000 --> 00:00:04.000
欢迎观看本教程

00:00:05.000 --> 00:00:08.000
今天我们将学习HTML基础知识

00:00:09.000 --> 00:00:12.000
<bold>语义化标签</bold>是重点内容

音频描述

HTML
<video controls>
  <source src="video.mp4" type="video/mp4">
  <track kind="descriptions" src="descriptions.vtt" srclang="zh" label="音频描述">
</video>

音频无障碍

基本实现

HTML
<figure>
  <audio controls>
    <source src="podcast.mp3" type="audio/mpeg">
    <source src="podcast.ogg" type="audio/ogg">
  </audio>
  <figcaption>第15期播客:HTML语义化最佳实践</figcaption>
</figure>

<!-- 提供文字稿链接 -->
<p><a href="transcript.html">查看完整文字稿</a></p>

文字稿示例

HTML
<section aria-label="音频文字稿">
  <h2>文字稿</h2>
  <p>
    <strong>主持人:</strong>大家好,欢迎来到本期的节目...
  </p>
  <p>
    <strong>嘉宾:</strong>很高兴能参与这次讨论...
  </p>
</section>

键盘控制

自定义控件

HTML
<div class="media-player" role="region" aria-label="视频播放器">
  <video id="video" src="video.mp4"></video>

  <div class="controls">
    <button id="playBtn" aria-label="播放">
      <span class="icon-play"></span>
    </button>

    <input
      type="range"
      id="progress"
      min="0"
      max="100"
      value="0"
      aria-label="播放进度"
    >

    <button id="muteBtn" aria-label="静音">
      <span class="icon-volume"></span>
    </button>
  </div>
</div>

键盘交互

JavaScript
document.addEventListener('keydown', (e) => {
  const video = document.getElementById('video');

  switch(e.key) {
    case ' ':
    case 'k':
      video.paused ? video.play() : video.pause();
      break;
    case 'ArrowLeft':
      video.currentTime -= 5;
      break;
    case 'ArrowRight':
      video.currentTime += 5;
      break;
    case 'm':
      video.muted = !video.muted;
      break;
  }
});

无障碍检查清单

text
☐ 所有视频提供字幕(captions)
☐ 重要视觉内容提供音频描述
☐ 音频内容提供文字稿
☐ 播放器可通过键盘完全控制
☐ 控件具有正确的ARIA标签
☐ 自动播放默认关闭
☐ 播放状态可通过屏幕阅读器感知

注意:自动播放的视频必须提供暂停按钮,且不应自动播放有声音的内容。

要点总结

  • 使用 <track> 元素添加字幕和音频描述
  • 字幕格式使用 WebVTT,支持样式标记
  • 音频内容必须提供文字稿
  • 键盘控制支持空格播放、方向键快进
  • 所有控件添加 aria-label 属性

📝 发现内容有误?点击此处直接编辑

← 上一篇 嵌入对象标签 object 与 embed
下一篇 → SEO元标签(title/meta/robots/canonical等)
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库