Skip to content

网页无障碍辅助小部件

A11y 是一个轻量、独立、可无缝集成到任何网页的无障碍工具栏。它通过浮动按钮提供 20 余项辅助功能,覆盖视觉、运动、认知与听觉障碍,帮助您快速提升网站的可访问性,并满足 WCAG 2.1 合规要求。

🚀 快速开始

方式一:Script 标签

在 HTML 中引入脚本,小部件即自动初始化,无需额外 JavaScript 代码:

html
<script src="/path/to/c-a11y.min.js" defer></script>

方式二:NPM

bash
npm install @william-xu-web/c-a11y
javascript
import { init } from "@william-xu-web/c-a11y";

const widget = init({
  lang: "zh",
  position: "bottom-left",
});

// 需要时销毁小部件并清理所有事件监听
widget.destroy();

✨ 功能全景

所有功能均按需启用,用户可随时开关,偏好设置自动保存至本地。

👁️ 视觉与显示辅助

功能WCAG 参考适用人群
字体缩放(放大/缩小/重置)1.4.4低视力、老年人
高对比度模式(深色/浅色/反色)1.4.3低视力
深色模式1.4.3光敏感人群
灰度显示1.4.1色盲
色彩饱和度滑块1.4.1色彩敏感者
文字间距调整1.4.12阅读障碍、低视力
阅读障碍专用字体(OpenDyslexic)最佳实践阅读障碍
隐藏图片最佳实践认知障碍
色盲模拟滤镜1.4.1开发者测试、无障碍意识教育

🧭 导航与阅读辅助

功能WCAG 参考适用人群
全键盘导航支持2.1.1运动障碍
焦点指示器增强2.4.7运动障碍、低视力
标题地图 / 页面目录2.4.10屏幕阅读器用户
ARIA 地标结构展示2.4.1屏幕阅读器用户
阅读辅助标尺(遮光引导线)最佳实践阅读障碍、多动症
行聚焦 / 内容遮罩最佳实践多动症、认知障碍
大光标模式最佳实践运动障碍、低视力
屏幕阅读器预览1.1.1, 1.3.1开发者、测试人员

🔊 媒体与内容辅助

功能WCAG 参考适用人群
悬停朗读(TTS)最佳实践视障、低视力
选中朗读(TTS)最佳实践视障、低视力
整页朗读(TTS)最佳实践视障、低视力
链接高亮显示1.4.1, 2.4.4低视力、认知障碍
图片替代文本覆盖显示1.1.1视障、低视力
停止所有动画2.3.1, 2.3.3癫痫、前庭障碍
静音所有声音1.4.2听障、认知障碍

⚙️ 配置参数

您可以通过全局对象 window.OpenA11yConfig 在脚本加载前进行配置。

html
<script>
  window.OpenA11yConfig = {
    position: "bottom-left", // 按钮位置
    lang: "zh", // 界面语言
    bottomOffset: 20, // 桌面端向上偏移(px)
    mobileBottomOffset: 60, // 移动端向上偏移(px)
    statementUrl: "/accessibility-statement", // 外部无障碍声明链接
    statementData: {
      // 内置声明生成器数据
      orgName: "我的公司",
      orgPhone: "13088888888",
      orgEmail: "access@example.com",
      coordinatorName: "张三",
      lastAuditDate: "2026-01-15",
    },
  };
</script>
<script src="/path/to/c-a11y.min.js" defer></script>

配置项说明

参数类型默认值说明
positionstring'bottom-left'可选:bottom-leftbottom-righttop-lefttop-right
langstring自动检测界面语言:'zh''en'
bottomOffsetnumber0桌面端(屏幕 > 768px)按钮额外向上偏移,仅对底部位置生效
mobileBottomOffsetnumber0移动端(屏幕 ≤ 768px)额外向上偏移,适用于底部固定导航栏的页面
statementUrlstring若您已有无障碍声明页面,可在此填写完整 URL
statementDataobject若需内置声明生成器,提供机构信息即可自动生成声明

🌐 多语言支持

小部件界面内置 中文(zh)英语(en) 两种语言,用户可随时在工具栏中切换。

📜 合规性说明

本小部件不仅覆盖 WCAG 2.1 的常用标准,还额外支持以下成功准则:

  • 1.4.10 回流(Reflow)
  • 1.4.12 文字间距(Text Spacing)
  • 1.4.13 悬停或焦点时的内容(Content on Hover or Focus)
  • 2.3.3 交互动画(Animation from Interactions)
  • 4.1.3 状态消息(Status Messages)

🧱 项目架构

目录结构

src/
  c-a11y.js            # 主入口
  styles.js            # 所有 CSS(注入 Shadow DOM)
  i18n.js              # 中/英翻译
  storage.js           # localStorage 持久化
  utils.js             # 共用工具函数
  modules/             # 每个功能独立模块(共 24 个)
dist/
  c-a11y.min.js        # 压缩版 IIFE(约 89 KB)
  c-a11y.esm.js        # ES Module 版本(供打包工具使用)
demo.html              # 功能演示页面

设计特点

  • Shadow DOM — 样式隔离,完全避免与宿主页面 CSS 冲突。
  • 零依赖 — 纯原生 JavaScript,无需加载任何第三方库。
  • 模块化 — 每个功能提供 enable() / disable() / toggle() 方法,便于扩展。
  • 状态持久化 — 用户偏好自动保存至 localStorage,跨会话保留。
  • ARIA 实时区域 — 为屏幕阅读器提供状态通知(WCAG 4.1.3)。

🌍 浏览器支持

浏览器最低版本
Chrome80+
Firefox78+
Safari14+
Edge80+

🔗 相关链接