独立站无障碍WCAG:对比度、键盘导航、屏幕阅读器的改造清单

B2B 独立站的无障碍改造,目标不是追求完美,而是对齐 WCAG 2.2 AA 这一条基线。硬指标只有三组:正文文字对比度不低于 4.5:1、所有可点击元...

WCAG 改造三件套:对比度、键盘、屏幕阅读器WCAG retrofit: contrast, keyboard, screen reader 反直觉:做无障碍不是做慈善,它和语义化 SEO、AI 引用是同一件事Counter-intuitive: a11y is not charity — it is the same work as SEO and AI citation 改造项Item 硬指标Hard bar 对比度Contrast 正文 ≥ 4.5:1Body text ≥ 4.5:1 大字 ≥ 3:1Large text ≥ 3:1 UI 边框 ≥ 3:1UI borders ≥ 3:1 灰字浅底是重灾区Gray on pale is the top fail 键盘导航Keyboard 所有可点元素可 Tab 到Every target reachable by Tab 焦点环必须可见Focus ring must be visible 无键盘陷阱No keyboard trap 鼠标划过来自己测一遍Tab through by hand 屏幕阅读器Screen reader 每张图有 altalt on every image 标题层级不跳级Heading order no skips 图标按钮有 aria-labelaria-label on icon buttons 装饰图 alt 留空Decorative images alt=”” 验收工具:axe 插件自动扫 + 键盘手动走查 + NVDA/VoiceOver 听一遍Test: axe auto-scan + keyboard walkthrough + NVDA/VoiceOver pass 自动工具能抓约 30% 至 40% 的问题,剩下必须手动——别把 axe 绿了当通过Automation catches only 30%-40%; the rest is manual 落地顺序:先修对比度与标题层级(半天),再修键盘焦点(一天),最后补 aria 与 alt(两天)Order: contrast/headings first, keyboard focus next, aria/alt last 目标先定 WCAG 2.2 AA,不追 AAA——AA 是法规与主流客户问卷的共同基线Target WCAG 2.2 AA, not AAA; AA is the common baseline
WCAG改造三件套:对比度阈值、键盘导航走查与屏幕阅读器语义化清单

独立站无障碍WCAG:对比度、键盘导航、屏幕阅读器的改造清单

结论先行:B2B 独立站的无障碍改造,目标不是追求完美,而是对齐 WCAG 2.2 AA 这一条基线。硬指标只有三组:正文文字对比度不低于 4.5:1、所有可点击元素能用 Tab 键走一遍且焦点环可见、每张有意义的图都有 alt 文本且标题层级不跳级。单人团队按”对比度与标题层级半天、键盘焦点一天、aria 与 alt 两天”排期,约四天就能把 P0 问题清零。反直觉的一点是:做无障碍和做语义化 SEO、让 AI 更容易引用,本质是同一批工作。

一、为什么 B2B 独立站也要做无障碍

很多人以为无障碍是给残障用户做的慈善项目,和一个卖设备、做询盘的 B2B 站没关系。这个判断只对了一半。真实动力有三个:欧美大客户的供应商问卷里,”网站是否符合 WCAG”已经是固定一题;美国部分州和欧盟采购对政府及公共采购合同有可访问性要求;更实际的是,语义化的 HTML 对搜索引擎和 AI 爬虫同样友好。

反直觉的判断在这里:无障碍改造不是额外成本,它和你想做的 SEO、结构化数据、AI 引用是同一份代码。把 div 按钮换成真正的 button、给图片加 alt、把字号层级理顺——这些事对屏幕阅读器是刚需,对 Google 和大模型理解页面结构同样是加分项。相关范围界定,可看网站无障碍(WCAG)里哪些必须做、哪些可以先放。

改造类别 WCAG 2.2 AA 硬指标 常见错误现状 修复成本
文本对比度 正文 ≥ 4.5:1,大字 ≥ 3:1 浅灰字配白底,约 2.5:1 半天
键盘焦点 所有交互元素可 Tab 到达且焦点可见 outline:none 去掉了焦点环 一天
图片 alt 信息图有描述性 alt,装饰图留空 alt 全是”image”或为空 两天
标题层级 h1→h2→h3 不跳级 直接从 h2 跳到 h4 半天
表单标签 每个输入框有可见 label 只有 placeholder 当标签 一天

二、第一件事:把对比度调到 4.5:1

对比度是最容易量化、也最容易自测的一项。规则很简单:18 磅(约 24 像素)以上的大字,或者 14 磅(约 18.66 像素)加粗的字,要求 3:1;其余正文、小字、按钮文字,要求 4.5:1。灰色小字配浅色背景是独立站最常见的翻车点,设计师为了”高级感”把正文调成 #888 放在 #f5f5f5 上,实际对比度只有 2 点几比一。

自测不用买工具,浏览器装个 axe 或者 WAVE 插件,一键扫描就会标出所有对比度不达标的元素。修的时候不要整体改设计,只把不达标的那几处颜色加深:正文从 #888 提到 #555 通常就能过 4.5:1,代价几乎为零。这和性能优化里先抓低 hanging fruit 是一个思路,见Core Web Vitals里按收益排序的做法。

元素类型 AA 对比度要求 判断方法 常见修法
正文小字 ≥ 4.5:1 axe/WAVE 自动标注 文字色加深一档
大字标题 ≥ 3:1 同上 通常已达标
按钮文字 ≥ 4.5:1 连同底色一起测 加深按钮文字或底色
UI 边框/图标 ≥ 3:1 与相邻背景对比 边框色加深
禁用状态文字 可豁免 确认是真禁用 不必强改

三、第二件事:关掉鼠标,用键盘把全站走一遍

键盘导航的验收方法只有一个:拔掉鼠标,纯用 Tab、Shift+Tab、Enter、Esc,把首页、产品列表、产品详情、联系表单这四个页面从头到尾走一遍。你会立刻发现三类问题:焦点环被 CSS 用 outline: none 干掉了,根本看不到自己在哪;下拉菜单用纯 JS 写的,键盘进不去;弹窗打开后焦点被困在里面出不来,这叫键盘陷阱。

场景一:一个用 div 写的”假按钮”。设计师图省事用 div 加点击事件,键盘用户 Tab 不到、回车也触发不了。修法不是补 JS,而是直接换成原生 button,它天然支持键盘,还自带可访问名。场景二:焦点环看不见。很多全局样式里写了 *:focus { outline: none },把浏览器默认焦点线删了。正确做法是保留一个清晰的焦点样式,比如 2px 蓝色外描边,而不是彻底删除。语义化和结构化数据怎么配合,见结构化数据Schema。

键盘走查项 合格标准 不合格表现 修复方式
Tab 顺序 与视觉阅读顺序一致 乱跳、跳不到按钮 调整 DOM 顺序或 tabindex
焦点可见 当前焦点元素有清晰描边 outline 被删,看不见 加 :focus-visible 样式
下拉菜单 方向键可展开选择 只能鼠标点 改用原生 select 或加键盘支持
弹窗 焦点进入弹窗,Esc 关闭 焦点被困住出不去 实现焦点圈 trap 与释放
跳转链接 长页面有”跳到主内容” 每次从导航 Tab 几十次 加 skip to content 链接

四、第三件事:让屏幕阅读器读得懂

屏幕阅读器用户听到的是 HTML 的”语义骨架”,不是你眼睛看到的设计。三件事决定骨架好不好:alt 文本、标题层级、ARIA 标签。alt 不是”给图起个文件名”,而是用一句话说清这张图传达的信息;装饰性分隔图则要写 alt=””,让读屏器直接跳过,不要把”按钮”两个字念出来。

标题层级是另一个重灾区。很多页面为了让某个标题显示成大字号,直接用 h4 甚至 p 标签套 CSS,结果读屏器从 h2 直接听到 h4,用户完全摸不清文档结构。规则是机械的:一个页面一个 h1,下面 h2 平级,小节用 h3,不许跳级。图标按钮(比如放大镜、汉堡菜单)没有文字,必须加 aria-label,否则读屏器只念”按钮”两个字,用户不知道点了干嘛。文案层面哪些表述对海外买家友好,见官网文案语气规范。

检查项 正确做法 常见错误 工具验证
信息图 alt 描述图中关键结论 alt=”产品图”,无信息 读屏器实际听
装饰图 alt alt=”” 留空 念出无意义的文件名 听是否被跳过
标题层级 h1>h2>h3 逐级 h2 直接到 h4 axe 标跳级
图标按钮 加 aria-label=”搜索” 只读”按钮” NVDA/VoiceOver
表格 表头 th 标记 全部用 td 拼 读行是否念出表头

五、验收:自动化扫完,手动补刀

最后一个认知误区是”axe 插件扫绿了就等于合规”。自动化工具大约只能覆盖 30% 至 40% 的无障碍问题——对比度、缺失 alt、标题跳级这些机械错误它能抓,但键盘陷阱、焦点顺序、读屏器实际体验,它全都测不出来。完整验收必须三件套:axe 自动扫一遍、键盘纯手动走四个关键页、用 NVDA(Windows)或 VoiceOver(Mac)把首页听一遍。

优先级上,先做”不影响设计、纯修代码”的项:对比度、标题层级、alt、焦点环,这些不需要设计介入,开发自己两天就能改完。涉及交互重写的项(自定义下拉、弹窗焦点管理)放第二批,工作量大但数量少。目标定在 WCAG 2.2 AA,不要去追 AAA——AAA 要求正文对比度 7:1,在实际设计里往往要牺牲视觉,投入产出不划算。

验收方式 能发现的问题 覆盖比例 频率
axe/WAVE 自动扫 对比度、缺 alt、标题跳级 约 30% 至 40% 每次上线前
键盘手动走查 焦点顺序、键盘陷阱 自动化测不出 每月一次
NVDA/VoiceOver 试听 读屏体验、aria 命名 自动化测不出 每季度一次
真实用户反馈 实际使用中的卡点 最准但最慢 持续收集

FAQ 常见问题

WCAG 2.1、2.2、AA、AAA 到底选哪个?
做 WCAG 2.2 AA。AA 是欧美政府采购、大客户供应商问卷和主流法律诉讼实际参照的基线;AAA 要求正文对比度 7:1,对设计约束过大,绝大多数商业站不需要。把目标写死在 AA,正文 4.5:1、大字 3:1,够你应对 95% 的问卷和合规要求。2.2 比 2.1 多了关于焦点外观、拖动操作等新细则,直接按最新版本做即可。
我们的站不大,无障碍改造要投入多少天?
单人或小团队约四天清掉 P0 问题:对比度与标题层级半天、键盘焦点一天、图片 alt 与图标按钮 aria 两天。不需要重设计,只修代码。先做不影响视觉的机械项,交互重写(自定义下拉、弹窗焦点)放第二批。如果全站用的是主流主题加几个插件,很多问题主题更新后就解决了,实际投入可能小于四天。
axe 插件扫出来全绿,是不是就达标了?
不是。自动化工具只能覆盖约 30% 至 40% 的问题,对比度、缺失 alt、标题跳级这类机械错误它能抓;但键盘陷阱、焦点顺序是否合理、读屏器念出来顺不顺,它都测不出。必须补两步:拔掉鼠标用 Tab 走四个关键页面,再用 NVDA 或 VoiceOver 把首页完整听一遍。自动化扫绿只算完成了三分之一。
图片的 alt 到底写多长、写什么?
原则是:读屏器念出来时,这张图承载的信息没有损失。产品主图写 alt=”某型号不锈钢法兰,PN16 压力等级”,而不是”产品图”。如果图里是图表,alt 里直接写出关键结论,比如”2024 年环比增长 18%”。纯装饰的分隔线、背景纹理写 alt=””,让读屏器跳过。不要在 alt 里写”图片:”或”点击”这类冗余词。
我们用的是现成主题,有必要自己改无障碍吗?
有,但工作量小。先查主题是否在官网声明支持 WCAG,主流商业主题大多已过 AA。你要做的是:自己加的页面模板、自定义表单插件、自定义图标按钮,这些是主题管不到的地方,也是最常翻车的地方。用 axe 扫你自己做的那几页,把问题补掉即可,不需要去改主题核心文件。
无障碍和 SEO 冲突吗,会不会要我放弃设计?
不冲突,绝大多数情况下是同一件事:换成语义化标签、加 alt、理标题层级,对搜索引擎和大模型理解页面同样有帮助。真正需要取舍的只有 AAA 级别的对比度要求,按 AA 做完全不会牺牲设计。唯一可能调整的是删掉那个被写死 outline:none 的全局样式,把焦点环换成符合品牌色的样式,视觉上几乎无差别。

写在最后

无障碍改造最容易被做成”为了合规而合规”的面子工程,扫个插件、截几张图放进交付文档就完事。真正有用的做法是把它拆成三天可完成的 P0 清单:先把对比度和标题层级理顺,再把键盘焦点走通,最后把 alt 和 aria 补齐。这套动作做完,你的站对屏幕阅读器可用了,对搜索引擎和 AI 爬虫也更好懂了。

落地三步:第一,装 axe 扫全站,把对比度、缺 alt、标题跳级列成一张表;第二,拔掉鼠标用 Tab 走首页、产品页、表单页,记录所有焦点卡住的地方;第三,每个月发布前自动扫一次,每季度用读屏器完整听一遍首页。多语言站还要注意 alt 和标题的翻译完整性,见多语言站的图表处理。

一句可以记住的话:无障碍不是给特殊人群做的补丁,而是把网页写成人话——读屏器听得懂,搜索引擎才读得懂,AI 才引得到你。

环形山
环形山 环形山专家

机构官方 · 环形山 Crater

环形山(Crater)是一家专注 WordPress 独立站开发 + Google SEO + GEO 全域增长的出海服务公司,服务智能硬件、工业装备、SaaS、新能源等赛道。

产品能力方法论白皮书行业报告
965篇分享
78篇知识库