我如何自动化欧洲 RGAA 可访问性准则的62%
Source: Dev.to
请提供您希望翻译的具体文本内容,我将为您翻译成简体中文并保持原有的格式、Markdown 语法以及技术术语不变。谢谢!
介绍
在欧洲,网页可访问性已于2025年6月根据 欧洲可访问性法案(EAA)成为强制性要求。虽然欧盟要求遵守,但并未规定具体的测试方法;各成员国各自采用自己的标准。法国使用 RGAA 4.1,这是一套由政府发布的规范,包含106条准则和详细的测试程序。
现有工具(Axe、WAVE、Lighthouse)针对 WCAG,无法直接映射到 RGAA,因此我构建了一个专用的解决方案。
RGAA 4.1 vs. WCAG
- 106 条标准(vs. 78 in WCAG 2.1 AA)
- 分为 13 个主题领域(images, colors, links, forms, navigation, …)
- 提供 精确的测试方法 – not only “what to achieve” but also “how to verify”
当公共机构或受 EAA 约束的公司需要审计时,所需参考的是 RGAA,而不是 WCAG。此前没有针对该目的的 SaaS 工具。
自动化覆盖率
在 106 项 RGAA 标准中,66 项(62 %)可以自动测试。按主题划分的最佳覆盖率:
| 主题 | 可自动化 / 总计 | 百分比 |
|---|---|---|
| 强制元素 | 9 / 10 | 90 % |
| 导航 | 8 / 11 | 73 % |
| 结构 | 3 / 4 | 75 % |
| 颜色 | 2 / 3 | 67 % |
| 表单 | 7 / 13 | 54 % |
| 图像 | 5 / 9 | 56 % |
| 多媒体 | 1 / ? | 23 %(最低) |
最高的投资回报率来自 强制元素(缺少 lang 属性、HTML 无效、缺少页面标题)。一次性修复这些问题即可消除所有页面的违规。
实现
核心检测引擎
- axe‑core 用于低层次的可访问性检查。
- 自定义映射层将每个 axe‑core 规则关联到一个或多个 RGAA 标准(多对多关系)。
{
"image-alt": {
"rgaaCriteria": ["1.1", "1.2"],
"theme": "Images",
"testMethod": "automatic"
}
}映射存储在关系型数据库中(包括标准、主题、测试方法及其对应的 WCAG 条目),并具备完整的参照完整性。
模式检测
工具不会一次性输出成千上万的单独违规,而是按 DOM 指纹(相同的 CSS 选择器、组件层级和违规类型)对违规进行分组。
示例输出:
“您的产品图片使用了相同的组件——只需在一个地方修复 alt 属性,即可在 50 个页面上解决 287 条违规。”
站点爬取与模板检测
- 爬取整个站点并发现页面。
- 通过 DOM 指纹识别页面模板,避免重复扫描(例如,200 个使用同一模板的商品页面 → 扫描一次并推断其余页面)。
- 支持需要身份验证的页面(仪表盘、后台、设置等)。
技术栈
| 组件 | 技术 |
|---|---|
| 前端(营销) | Nuxt 3 – SSR |
| 前端(仪表盘) | Nuxt 3 – SPA |
| 可访问性引擎 | axe‑core + Puppeteer (headless) |
| 数据层 | Prisma + PostgreSQL |
| 计费 | Stripe (Free → Enterprise tiers) |
| AI 驱动的修复建议 | OpenAI (适配 Vue、React、Angular、WordPress) |
集成到开发工作流
GitHub Action
- uses: rgaaudit/action@v1
with:
url: ${{ env.STAGING_URL }}
threshold: 75
api-key: ${{ secrets.RGAA_KEY }}如果 RGAA 分数低于阈值,拉取请求将被阻止。
REST API (CI/CD)
curl -X POST https://rgaaudit.fr/api/ci/scan \
-H "X-API-Key: sk_..." \
-d '{"url": "https://staging.mysite.com"}'MCP Server (local use)
npx @rgaaudit/mcp-server
> rgaa_audit https://mysite.com
# Score RGAA: 72/100
# Patterns detected: 6
# Priority fixes: 3好处
- 62 % automation 处理重复检查(contrast、alt text、heading structure)。
- 为剩余需要人工判断的 38 % 释放专家时间(semantic relevance、keyboard navigation quality、screen‑reader experience)。
- Pattern grouping 将大量违规列表转化为可执行计划:“Fix this component once, and 200 pages are fixed.”
可用性
- 在 rgaaudit.fr 在线 – 免费套餐:每月 3 次审计,每次最多 15 页。
- MCP 服务器已在 npm 上发布,包名为
@rgaaudit/mcp-server。
结论
本地可访问性标准造成了真实的市场空白。虽然大多数国际工具遵循 WCAG,但欧洲的 27 个国家通常需要各自的规范(例如法国的 RGAA)。能够使用审计员和监管机构语言的工具可以显著改进合规工作流程。
如果您正在处理欧洲可访问性要求——或仅仅想了解 RGAA 与 WCAG 的比较——欢迎尝试该工具并分享您的反馈。