无障碍修复报告示例。 Harbor & Pine是我们搭建的一家存在常见无障碍缺陷的虚构商店,并用扫描您网站的同一引擎进行了测试。
免费扫描您的网站无障碍修复报告示例
harborandpine.example
- 平台:
- Shopify
- 生成时间:
- 2026年9月24日
- 测试页面:
- 9
- 引擎:
- axe-core 4.13.0
摘要
- 我们于 2026年9月24日 使用 axe-core 4.13.0 按 WCAG 2.2 A 级和 AA 级测试了 harborandpine.example 的 9 个页面(其中 4 个来自您的站点地图),并进行了纯键盘购物测试。
- 8 类问题未通过自动化 WCAG 测试(131 个实例)。 其中 8 类标记为“优先修复”。
- 流程受阻仅使用键盘的购物者在以下步骤受阻:选择选项和数量。
- 4 个项目需要人工检查:自动化测试标记了它们,但无法判定。
- 建议先处理:键盘焦点被困在 Cookie 横幅中; 无法用键盘选择产品选项; 按钮必须有可辨识的文本。
自动化测试只能发现网站上的部分无障碍问题,而不是全部。本报告描述我们的测试发现了什么以及如何修复。它不构成法律意见,也不证明符合 ADA、《欧洲无障碍法案》或任何法律。
概览
- P1 · 优先修复在关键页面上阻碍访客
- 8
- P2 · 其次修复严重或中等程度的障碍
- 0
- P3 · 建议改进轻微问题和最佳实践
- 2
按严重程度统计的实例数
- 关键
- 73
- 严重
- 58
- 中等
- 25
- 轻微
- 0
- 已确认的未通过项未通过自动化测试的问题类型
- 10
- 需复核已标记,但需要人工判定
- 4
- 通过的检查没有未通过项的自动化规则
- 32
- 未测试流程步骤和人工检查
- 7
我们测试了 9 个页面,其中 4 个从您的站点地图中抽取。目标日期是根据严重程度给出的建议;最终日期请与您的开发人员商定。
网站概览
根据所测页面上的公开证据识别。标签可能有误;它只决定运行哪些额外检查。
网站类型
- 网店高置信度
- 运行在店铺平台 Shopify 上
- 指向购物车的链接
- 产品或商店链接
- 落地页中等置信度
- 仅链接了 6 个内部页面
检测到的技术
- Shopify高置信度
页面上有 Shopify 的资源或脚本
此网站的检查项
- 通用检查:无障碍、SEO、速度、安全和邮件
- 电商模块:产品系列页、产品页和购物车页面,以及一直到结账按钮的键盘购物流程
- Shopify 说明:模板和后台的修复步骤;由平台管理的响应头和 Cookie 列出仅供参考
键盘购物流程
我们像无法使用鼠标的人那样,只用键盘(Tab、Shift+Tab、Enter、Space、Escape)进行购物。我们在一次性会话中将一件商品加入购物车,并在结账按钮前停止:绝不进入结账流程,也不输入个人信息或支付信息。 目标:仅用键盘从首页到达结账按钮。
01到达主导航
通过按了 21 次 Tab 键后,焦点到达导航中的“Shop”。
预期:从首页顶部按 Tab 键,可以到达主导航中的链接。
- 备注:Cookie 横幅一直占据键盘焦点,直到我们在“Accept all”上按下 Enter 键。
如何复现
https://harborandpine.example/
- 打开首页。
- 点击浏览器的地址栏,然后反复按 Tab 键(Shift+Tab 可返回)。
我们观察到的焦点顺序
“Shop”
02从产品系列中打开产品
通过按了 9 次 Tab 键后,焦点到达“Trail Daypack 22L”,按 Enter 键打开了 /products/trail-daypack。
预期:按 Tab 键可以到达产品系列网格中的产品,按 Enter 键可以打开其页面。
如何复现
https://harborandpine.example/collections/all
- 打开 /collections/all。
- 反复按 Tab 键,直到网格中的某个产品被突出显示,然后按 Enter 键。
我们观察到的焦点顺序
“Harbor & Pine” → “Shop” → “New arrivals” → “Our story” → body > header.site > div.icons > button → “Account” → body > header.site > div.icons > a → “FeaturedPrice, low to highPrice, high to low” → “Trail Daypack 22L”
03选择选项和数量
未通过3 个产品选项无法获得键盘焦点:“S”、“M”、“L”。它们能响应鼠标,但键盘用户无法选择。
预期:每个产品选项(尺寸、颜色、款式)和数量字段都能用 Tab 键到达。
2.1.1 键盘 · 置信度:高

选择选项和数量:标出轮廓的未通过元素 如何复现
https://harborandpine.example/products/trail-daypack
- 打开 /products/trail-daypack。
- 从页面顶部开始按 Tab 键,记下在“加入购物车”之前有哪些控件获得了焦点。
我们观察到的焦点顺序
“Harbor & Pine” → “Shop” → “New arrivals” → “Our story” → ……还有 5 个…… → body > header.site > div.icons > a → div.page.product > div.gallery > div.thumbs > button → div.page.product > div.gallery > div.thumbs > button → div.page.product > div.gallery > div.thumbs > button → div.page.product > div > div.swatches > button → div.page.product > div > div.swatches > button → div.page.product > div > div.swatches > button → “1” → “Add to cart”
元素 <div class="size-option" data-fr="opt-1">S</div>04用键盘加入购物车
需复核在“加入购物车”上按 Enter 键有效(页头中的购物车数量发生了变化、出现了“已加入购物车”的消息),但我们没有找到状态消息或获得焦点的对话框,因此屏幕阅读器用户可能听不到商品已加入的提示。
预期:在“加入购物车”上按 Enter 键可以加入商品,并且确认信息会被播报:状态消息、获得焦点的对话框,或购物车页面。
4.1.3 状态消息 · 置信度:中

用键盘加入购物车:此步骤时的页面 如何复现
https://harborandpine.example/products/trail-daypack
- 打开 /products/trail-daypack。
- 反复按 Tab 键,直到“加入购物车”获得焦点,然后按 Enter 键。
- 用屏幕阅读器(VoiceOver:Cmd+F5)收听是否有确认提示。
05修改购物车并到达结账
通过按了 12 次 Tab 键,到达全部 4 个购物车控件和结账按钮(“Check out”)。我们没有按下该按钮。
预期:数量字段、移除按钮和结账按钮都能用 Tab 键到达。
如何复现
https://harborandpine.example/cart
- 将任意产品加入购物车,然后打开购物车页面。
- 按 Tab 键,检查数量字段、移除按钮和结账按钮是否都能获得焦点。
我们观察到的焦点顺序
“Harbor & Pine” → “Shop” → “New arrivals” → “Our story” → body > header.site > div.icons > button → “Account” → body > header.site > div.icons > a → “1” → tbody > tr > td > button.remove → “2” → tbody > tr > td > button.remove → “Check out”
06结账
未测试我们在结账按钮前停止:我们绝不进入结账、创建订单或输入支付信息。在 Shopify 上,结账页面由 Shopify 运行,而不是由您的模板运行。请手动检查结账流程(见“人工检查”)。
律师函指控对照表
律师函中的每项指控与扫描证据逐一比对。这是事实比对,不是法律意见。
- 已复现
“Images lack alternative text, so product photos are not described.”
缺少替代文本的图片. 在所测的 5 个页面中,有 3 个页面出现,共 10 个实例。
image-alt
- 已复现
“Text has insufficient color contrast against its background, including sale badges and prices.”
颜色对比度不足. 在所测的 5 个页面中,有 5 个页面出现,共 16 个实例。
color-contrast
- 已复现
“The website cannot be navigated using a keyboard alone.”
键盘访问和焦点. 键盘焦点被困在 Cookie 横幅中。
- 已复现
“Form fields do not have labels, including the newsletter sign-up and the quantity fields in the cart.”
表单字段缺少标签. 在所测的 5 个页面中,有 3 个页面出现,共 4 个实例。
select-name, label
- 需人工检查
“Product videos do not have captions.”
视频和音频字幕. 自动化扫描无法判定字幕。请检查每个产品视频或品牌视频是否有准确的字幕和文字记录。
- 需人工检查
“Our client is legally blind and uses screen reader software.”
其他问题. 这是一种笼统的说法。请用 VoiceOver 或 NVDA 等屏幕阅读器测试关键流程(搜索、产品页、加入购物车、结账)。
修复计划
| 优先级 | 问题 | 状态 | WCAG | 实例数 | 负责人 | 目标日期 |
|---|---|---|---|---|---|---|
| P1 | 键盘焦点被困在 Cookie 横幅中 | 已确认 | 2.1.2 | 1 | 应用供应商 | 2026-10-08 |
| P1 | 无法用键盘选择产品选项 | 已确认 | 2.1.1 | 1 | 主题开发人员 | 2026-10-08 |
| P1 | 按钮必须有可辨识的文本 | 已确认 | 4.1.2 | 41 | 主题开发人员 | 2026-10-08 |
| P1 | 图像必须有替代文本 | 已确认 | 1.1.1 | 22 | 内容编辑 | 2026-10-08 |
| P1 | 表单元素必须有标签 | 已确认 | 4.1.2 | 7 | 主题开发人员 | 2026-10-08 |
| P1 | select 元素必须有一个可访问的名称 | 已确认 | 4.1.2 | 1 | 主题开发人员 | 2026-10-08 |
| P1 | 链接必须有可辨识的文本 | 已确认 | 2.4.4, 4.1.2 | 36 | 主题开发人员 | 2026-10-08 |
| P1 | 元素必须满足最小颜色对比度比率阈值 | 已确认 | 1.4.3 | 22 | 店主(后台设置) | 2026-10-08 |
| P3 | 所有页面内容应包含在 landmark 中 | 已确认 | 最佳实践 | 18 | 主题开发人员 | 2026-11-23 |
| P3 | 标题级别只应递增一 | 已确认 | 最佳实践 | 7 | 主题开发人员 | 2026-11-23 |
如何修复每个问题
键盘焦点被困在 Cookie 横幅中
工作量:中等 · 负责人:应用供应商 · 2.1.2 无键盘陷阱
键盘用户按 Tab 键时,焦点在几个元素之间循环,始终无法到达页面的其余部分。
如果焦点被困住,仅使用键盘的用户和屏幕阅读器用户将完全无法购物(WCAG 2.1.2 无键盘陷阱)。
证据
- 发现方式
- 键盘测试(在首页上逐个按 Tab 键)
- 状态 · 置信度
- 已确认的未通过项 · 高
- 检测时间
- 2026年9月24日(UTC)
- 位置
- 1 个页面上共 1 个实例
预期: 按 Tab 键能够依次经过页面上的每个交互元素,并继续移到页面的其余部分。
实际: 按了 40 次 Tab 键后,焦点一直在以下元素之间循环:Settings、Accept all。
如何复现
- 打开首页。
- 点击地址栏,然后反复按 Tab 键。
- 焦点不断回到同样几个元素上。
未通过的元素(显示 6 个)
SettingsAccept allSettingsAccept allSettingsAccept all受影响的页面(1)
- https://harborandpine.example/
如何修复
通用指导- 在您的 Cookie 或同意横幅应用的设置中查找无障碍或焦点陷阱相关选项,或请供应商修复。
- 模态框只能在打开期间将焦点保持在其内部,并且必须能用 Escape 键关闭,然后将焦点返回到原来的位置。
用 AI 修复显示提示词
将它与您的主题文件一起粘贴到 ChatGPT、Claude、Cursor 或 Copilot 中。发布前请检查修改内容。
我在 harborandpine.example 上运营一家 Shopify 店铺(Online Store 2.0 模板,Liquid 模板文件)。一项无障碍测试发现了这个问题,我想在我的主题中修复它。 问题:键盘焦点被困在 Cookie 横幅中(WCAG 2.1.2)。 位置:1 个页面上共 1 个实例,例如 /。 一个未通过的元素(浏览器渲染后的代码): ```html Settings ``` 为什么重要:如果焦点被困住,仅使用键盘的用户和屏幕阅读器用户将完全无法购物(WCAG 2.1.2 无键盘陷阱)。 需要修改的内容: - 在您的 Cookie 或同意横幅应用的设置中查找无障碍或焦点陷阱相关选项,或请供应商修复。 - 模态框只能在打开期间将焦点保持在其内部,并且必须能用 Escape 键关闭,然后将焦点返回到原来的位置。 回答要求: - 以修改前和修改后的形式给出确切的改动,并说明应改在哪个文件或设置中。如果需要先看我的文件,请让我粘贴给你。 - 保持视觉设计和所有现有功能不变。 - 不要编造产品名称、价格或文字;请使用我可以自行填写的占位符。 - 最后说明我可以如何自行检查修复效果。 - 请说明如何用键盘和屏幕阅读器确认修复效果。
检查您的修复
- 加载首页,反复按 Tab 键,确认焦点能够到达主导航和主要内容。
由自动化键盘探测发现;请人工确认。
无法用键盘选择产品选项
工作量:中等 · 负责人:主题开发人员 · 2.1.1 键盘
尺码、颜色或变体选项响应鼠标,但无法获得键盘焦点,键盘用户无法选择变体。
仅使用键盘的购物者(包括许多屏幕阅读器用户)无法通过此步骤(WCAG 2.1.1)。
证据
- 发现方式
- 键盘流程
- 状态 · 置信度
- 已确认的未通过项 · 高
- 检测时间
- 2026年9月24日(UTC)
- 位置
- 1 个页面上共 1 个实例
预期: 每个产品选项(尺寸、颜色、款式)和数量字段都能用 Tab 键到达。
实际: 3 个产品选项无法获得键盘焦点:“S”、“M”、“L”。它们能响应鼠标,但键盘用户无法选择。

如何复现
- 打开 /products/trail-daypack。
- 从页面顶部开始按 Tab 键,记下在“加入购物车”之前有哪些控件获得了焦点。
未通过的元素(显示 1 个)
<div class="size-option" data-fr="opt-1">S</div>受影响的页面(1)
- https://harborandpine.example/products/trail-daypack
如何修复
通用指导- 用带可见标签的原生单选按钮(或 <select>)构建选项选择器;将标签设置为色块样式。
- 如果保留自定义元素,每个选项都需要 tabindex="0"、位于 role="radiogroup" 内且带 aria-checked 的 role="radio",以及方向键和空格键处理。原生单选按钮会自动提供这些功能。
代码
供开发人员参考的实现示例。我们没有您主题的源代码,因此文件位置只是提示,并非确切路径。
<div class="size-option" data-fr="opt-1">S</div><fieldset class="variant-picker">
<legend>Size</legend>
<input type="radio" id="size-s" name="Size" value="S" class="visually-hidden">
<label for="size-s" class="size-option">S</label>
<input type="radio" id="size-m" name="Size" value="M" class="visually-hidden">
<label for="size-m" class="size-option">M</label>
</fieldset>每个选项都是真正的单选按钮,可用 Tab 键到达,用方向键切换;标签保留您的色块样式。请使用您自己的选项名称和值。
用 AI 修复显示提示词
将它与您的主题文件一起粘贴到 ChatGPT、Claude、Cursor 或 Copilot 中。发布前请检查修改内容。
我在 harborandpine.example 上运营一家 Shopify 店铺(Online Store 2.0 模板,Liquid 模板文件)。一项无障碍测试发现了这个问题,我想在我的主题中修复它。 问题:无法用键盘选择产品选项(WCAG 2.1.1)。 位置:1 个页面上共 1 个实例,例如 /products/trail-daypack。 一个未通过的元素(浏览器渲染后的代码): ```html <div class="size-option" data-fr="opt-1">S</div> ``` 为什么重要:仅使用键盘的购物者(包括许多屏幕阅读器用户)无法通过此步骤(WCAG 2.1.1)。 需要修改的内容: - 用带可见标签的原生单选按钮(或 <select>)构建选项选择器;将标签设置为色块样式。 - 如果保留自定义元素,每个选项都需要 tabindex="0"、位于 role="radiogroup" 内且带 aria-checked 的 role="radio",以及方向键和空格键处理。原生单选按钮会自动提供这些功能。 建议的修改(您主题中产品表单的变体选择器): ```html <fieldset class="variant-picker"> <legend>Size</legend> <input type="radio" id="size-s" name="Size" value="S" class="visually-hidden"> <label for="size-s" class="size-option">S</label> <input type="radio" id="size-m" name="Size" value="M" class="visually-hidden"> <label for="size-m" class="size-option">M</label> </fieldset> ``` 回答要求: - 以修改前和修改后的形式给出确切的改动,并说明应改在哪个文件或设置中。如果需要先看我的文件,请让我粘贴给你。 - 保持视觉设计和所有现有功能不变。 - 不要编造产品名称、价格或文字;请使用我可以自行填写的占位符。 - 最后说明我可以如何自行检查修复效果。 - 请说明如何用键盘和屏幕阅读器确认修复效果。
检查您的修复
- 只用键盘重复复现步骤。
- 从本报告申请复测:流程测试会再次运行。
图像必须有替代文本
工作量:中等 · 负责人:内容编辑 · 1.1.1 非文本内容
图片缺少文本替代内容,屏幕阅读器用户无法得知图片显示的内容。
WCAG 1.1.1 要求有意义的图片提供文本替代内容。没有它,屏幕阅读器用户无法分辨照片展示的是哪件产品。
证据
- 发现方式
- axe-core 自动化规则
- 状态 · 置信度
- 已确认的未通过项 · 高
- 检测时间
- 2026年9月24日(UTC)
- 位置
- 7 个页面上共 22 个实例
预期: 图像必须有替代文本
实际: 元素没有 alt 属性。aria-label 属性不存在或为空。aria-labelledby 属性不存在,引用不存在的元素或引用空元素。元素没有 title 属性。元素的默认语义没有被 role="none" 或 role="presentation" 覆盖。


如何复现
- 在 Chrome 或 Edge 中打开 https://harborandpine.example/。
- 打开开发者工具(F12)› Elements,按 Ctrl+F(Mac 上为 Cmd+F)并搜索:img[src$="hero-photo.jpg"]
- 在开发者工具的 Accessibility 窗格中,该元素计算得出的 Name 为空。
- 或者在页面上运行免费的 axe DevTools 浏览器扩展:它会将此问题报告为“image-alt”。
未通过的元素(显示 4 个)
<img src="/img/hero-photo.jpg" loading="lazy"><img src="/img/mug.svg"><img src="/img/beanie.svg"><img src="/img/jacket.svg">受影响的页面(7)
- https://harborandpine.example/
- https://harborandpine.example/collections/all
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
如何修复
根据您页面的标记生成的代码- 在 Shopify 后台打开“产品 > [产品] > 媒体文件”,点击每张图片并填写“替代文本”。对于分区中的图片,请打开“在线商店 > 模板 > 自定义”,在分区设置中设置图片的替代文本。
- 描述对购物者重要的信息:产品名称、颜色和展示角度(例如“橄榄绿帆布托特包,正面”)。
- 装饰性图片应使用空的 alt 属性(alt=""),让屏幕阅读器跳过它们。
代码
供开发人员参考的实现示例。我们没有您主题的源代码,因此文件位置只是提示,并非确切路径。
<img src="/img/hero-photo.jpg" loading="lazy"><img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]">描述图片显示的内容(产品照片:产品、颜色、角度)。如果图片纯属装饰,请改用 alt="",让屏幕阅读器跳过它。
<img src="/img/mug.svg"><img src="/img/mug.svg" alt="[Describe the image for a shopper]">描述图片显示的内容(产品照片:产品、颜色、角度)。如果图片纯属装饰,请改用 alt="",让屏幕阅读器跳过它。
<img src="/img/beanie.svg"><img src="/img/beanie.svg" alt="[Describe the image for a shopper]">描述图片显示的内容(产品照片:产品、颜色、角度)。如果图片纯属装饰,请改用 alt="",让屏幕阅读器跳过它。
<img src="/img/jacket.svg"><img src="/img/jacket.svg" alt="[Describe the image for a shopper]">描述图片显示的内容(产品照片:产品、颜色、角度)。如果图片纯属装饰,请改用 alt="",让屏幕阅读器跳过它。
用 AI 修复显示提示词
将它与您的主题文件一起粘贴到 ChatGPT、Claude、Cursor 或 Copilot 中。发布前请检查修改内容。
我在 harborandpine.example 上运营一家 Shopify 店铺(Online Store 2.0 模板,Liquid 模板文件)。一项无障碍测试发现了这个问题,我想在我的主题中修复它。 问题:图像必须有替代文本(WCAG 1.1.1)。 位置:7 个页面上共 22 个实例,例如 /、/collections/all、/products/trail-daypack、/products/pine-wool-beanie。 一个未通过的元素(浏览器渲染后的代码): ```html <img src="/img/hero-photo.jpg" loading="lazy"> ``` 为什么重要:WCAG 1.1.1 要求有意义的图片提供文本替代内容。没有它,屏幕阅读器用户无法分辨照片展示的是哪件产品。 需要修改的内容: - 在 Shopify 后台打开“产品 > [产品] > 媒体文件”,点击每张图片并填写“替代文本”。对于分区中的图片,请打开“在线商店 > 模板 > 自定义”,在分区设置中设置图片的替代文本。 - 描述对购物者重要的信息:产品名称、颜色和展示角度(例如“橄榄绿帆布托特包,正面”)。 - 装饰性图片应使用空的 alt 属性(alt=""),让屏幕阅读器跳过它们。 建议的修改(产品照片:Shopify 后台 › 产品 › 媒体文件 › 替代文本。其他图片:您的模板代码): ```html <img src="/img/hero-photo.jpg" loading="lazy" alt="[Describe the image for a shopper]"> ``` 回答要求: - 以修改前和修改后的形式给出确切的改动,并说明应改在哪个文件或设置中。如果需要先看我的文件,请让我粘贴给你。 - 保持视觉设计和所有现有功能不变。 - 不要编造产品名称、价格或文字;请使用我可以自行填写的占位符。 - 最后说明我可以如何自行检查修复效果。 - 请说明如何用键盘和屏幕阅读器确认修复效果。
检查您的修复
- 重新扫描受影响的页面。
- 使用屏幕阅读器(Mac 上的 VoiceOver:Cmd+F5)收听产品图片的朗读内容。
详细指南:https://dequeuniversity.com/rules/axe/4.13/image-alt?application=playwright
表单元素必须有标签
工作量:小 · 负责人:主题开发人员 · 4.1.2 名称、角色、值
部分表单字段没有标签,屏幕阅读器用户不知道应该输入什么。
WCAG 1.3.1、3.3.2 和 4.1.2 要求表单字段具有标签。新闻通讯订阅和搜索字段是常见的问题来源。
证据
- 发现方式
- axe-core 自动化规则
- 状态 · 置信度
- 已确认的未通过项 · 高
- 检测时间
- 2026年9月24日(UTC)
- 位置
- 6 个页面上共 7 个实例
预期: 表单元素必须有标签
实际: 表单元素没有隐式标签文本 <label>。表单元素没有显式的标签文本 <label>。aria-label 属性不存在或为空。aria-labelledby 属性不存在,引用不存在的元素或引用空元素。元素没有 title 属性。元素没有 placeholder 属性。元素的默认语义没有被 role="none" 或 role="presentation" 覆盖。


如何复现
- 在 Chrome 或 Edge 中打开 https://harborandpine.example/products/trail-daypack。
- 打开开发者工具(F12)› Elements,按 Ctrl+F(Mac 上为 Cmd+F)并搜索:input
- 在开发者工具的 Accessibility 窗格中,该元素计算得出的 Name 为空。
- 或者在页面上运行免费的 axe DevTools 浏览器扩展:它会将此问题报告为“label”。
未通过的元素(显示 2 个)
<input type="number" value="1" min="1"><input type="number" value="2" min="1">受影响的页面(6)
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/cart
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
如何修复
根据您页面的标记生成的代码- 为每个字段添加 <label for="field-id"> 元素,至少也要添加 aria-label。
- 仅有占位符文字不能算作标签。
代码
供开发人员参考的实现示例。我们没有您主题的源代码,因此文件位置只是提示,并非确切路径。
<input type="number" value="1" min="1"><input type="number" value="1" min="1" aria-label="Quantity">该字段没有 id,因此最快的修复方法是使用 aria-label。可见的 <label> 对所有人都更好。标签文字“Quantity”是根据字段推测的;如有需要请调整。
<input type="number" value="2" min="1"><input type="number" value="2" min="1" aria-label="Quantity">该字段没有 id,因此最快的修复方法是使用 aria-label。可见的 <label> 对所有人都更好。标签文字“Quantity”是根据字段推测的;如有需要请调整。
用 AI 修复显示提示词
将它与您的主题文件一起粘贴到 ChatGPT、Claude、Cursor 或 Copilot 中。发布前请检查修改内容。
我在 harborandpine.example 上运营一家 Shopify 店铺(Online Store 2.0 模板,Liquid 模板文件)。一项无障碍测试发现了这个问题,我想在我的主题中修复它。 问题:表单元素必须有标签(WCAG 4.1.2)。 位置:6 个页面上共 7 个实例,例如 /products/trail-daypack、/cart、/products/pine-wool-beanie、/products/enamel-camp-mug。 一个未通过的元素(浏览器渲染后的代码): ```html <input type="number" value="1" min="1"> ``` 为什么重要:WCAG 1.3.1、3.3.2 和 4.1.2 要求表单字段具有标签。新闻通讯订阅和搜索字段是常见的问题来源。 需要修改的内容: - 为每个字段添加 <label for="field-id"> 元素,至少也要添加 aria-label。 - 仅有占位符文字不能算作标签。 建议的修改(您的主题代码,可在其中搜索所示的标记): ```html <input type="number" value="1" min="1" aria-label="Quantity"> ``` 回答要求: - 以修改前和修改后的形式给出确切的改动,并说明应改在哪个文件或设置中。如果需要先看我的文件,请让我粘贴给你。 - 保持视觉设计和所有现有功能不变。 - 不要编造产品名称、价格或文字;请使用我可以自行填写的占位符。 - 最后说明我可以如何自行检查修复效果。 - 请说明如何用键盘和屏幕阅读器确认修复效果。
检查您的修复
- 重新扫描,确认 label 规则不再未通过。
- 点击每个标签,检查它是否会让对应字段获得焦点。
详细指南:https://dequeuniversity.com/rules/axe/4.13/label?application=playwright
select 元素必须有一个可访问的名称
工作量:小 · 负责人:主题开发人员 · 4.1.2 名称、角色、值
一个下拉菜单(通常是排序或变体选择器)没有标签。
WCAG 4.1.2 要求选择菜单具有无障碍名称。
证据
- 发现方式
- axe-core 自动化规则
- 状态 · 置信度
- 已确认的未通过项 · 高
- 检测时间
- 2026年9月24日(UTC)
- 位置
- 1 个页面上共 1 个实例
预期: select 元素必须有一个可访问的名称
实际: 表单元素没有隐式标签文本 <label>。表单元素没有显式的标签文本 <label>。aria-label 属性不存在或为空。aria-labelledby 属性不存在,引用不存在的元素或引用空元素。元素没有 title 属性。元素的默认语义没有被 role="none" 或 role="presentation" 覆盖。

如何复现
- 在 Chrome 或 Edge 中打开 https://harborandpine.example/collections/all。
- 打开开发者工具(F12)› Elements,按 Ctrl+F(Mac 上为 Cmd+F)并搜索:select
- 在开发者工具的 Accessibility 窗格中,该元素计算得出的 Name 为空。
- 或者在页面上运行免费的 axe DevTools 浏览器扩展:它会将此问题报告为“select-name”。
未通过的元素(显示 1 个)
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>受影响的页面(1)
- https://harborandpine.example/collections/all
如何修复
根据您页面的标记生成的代码- 添加与该选择菜单关联的 <label>,或添加 aria-label,例如 aria-label="Sort by"。
代码
供开发人员参考的实现示例。我们没有您主题的源代码,因此文件位置只是提示,并非确切路径。
<select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select><select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select>该字段没有 id,因此最快的修复方法是使用 aria-label。可见的 <label> 对所有人都更好。将方括号中的文字替换为字段的标签。
用 AI 修复显示提示词
将它与您的主题文件一起粘贴到 ChatGPT、Claude、Cursor 或 Copilot 中。发布前请检查修改内容。
我在 harborandpine.example 上运营一家 Shopify 店铺(Online Store 2.0 模板,Liquid 模板文件)。一项无障碍测试发现了这个问题,我想在我的主题中修复它。 问题:select 元素必须有一个可访问的名称(WCAG 4.1.2)。 位置:1 个页面上共 1 个实例,例如 /collections/all。 一个未通过的元素(浏览器渲染后的代码): ```html <select><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select> ``` 为什么重要:WCAG 4.1.2 要求选择菜单具有无障碍名称。 需要修改的内容: - 添加与该选择菜单关联的 <label>,或添加 aria-label,例如 aria-label="Sort by"。 建议的修改(您的主题代码,可在其中搜索所示的标记): ```html <select aria-label="[Field label]"><option>Featured</option><option>Price, low to high</option><option>Price, high to low</option></select> ``` 回答要求: - 以修改前和修改后的形式给出确切的改动,并说明应改在哪个文件或设置中。如果需要先看我的文件,请让我粘贴给你。 - 保持视觉设计和所有现有功能不变。 - 不要编造产品名称、价格或文字;请使用我可以自行填写的占位符。 - 最后说明我可以如何自行检查修复效果。 - 请说明如何用键盘和屏幕阅读器确认修复效果。
检查您的修复
- 重新扫描产品系列页和产品页。
详细指南:https://dequeuniversity.com/rules/axe/4.13/select-name?application=playwright
链接必须有可辨识的文本
工作量:小 · 负责人:主题开发人员 · 2.4.4 链接目的(上下文中), 4.1.2 名称、角色、值
部分链接没有可供屏幕阅读器朗读的文字,通常是只有图标的链接,例如社交媒体图标或购物车图标。
WCAG 2.4.4 和 4.1.2 要求链接具有描述其目的的无障碍名称。
证据
- 发现方式
- axe-core 自动化规则
- 状态 · 置信度
- 已确认的未通过项 · 高
- 检测时间
- 2026年9月24日(UTC)
- 位置
- 9 个页面上共 36 个实例
预期: 链接必须有可辨识的文本
实际: 元素在 tab 顺序中且没有可访问的文本。另外:元素没有对屏幕阅读器可见的文本。aria-label 属性不存在或为空。aria-labelledby 属性不存在,引用不存在的元素或引用空元素。元素没有 title 属性。


如何复现
- 在 Chrome 或 Edge 中打开 https://harborandpine.example/。
- 打开开发者工具(F12)› Elements,按 Ctrl+F(Mac 上为 Cmd+F)并搜索:a[href$="cart"]
- 在开发者工具的 Accessibility 窗格中,该元素计算得出的 Name 为空。
- 或者在页面上运行免费的 axe DevTools 浏览器扩展:它会将此问题报告为“link-name”。
未通过的元素(显示 4 个)
<a href="/cart"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 4h2l2.4 11h11l2-8H6.5"></path><circle cx="9" cy="20" r="1.5"></circle><circle cx="18" cy="20" r="1.5"></circle></svg></a><a href="https://instagram.example/harborandpine"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="5"></rect><circle cx="12" cy="12" r="4"></circle></svg></a><a href="https://facebook.example/harborandpine"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M14 8h3V4h-3c-2.8 0-4 1.8-4 4v2H7v4h3v8h4v-8h3l1-4h-4V8.5c0-.3.2-.5.5-.5z"></path></svg></a><a href="https://x.example/harborandpine"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4l16 16M20 4L4 20"></path></svg></a>受影响的页面(9)
- https://harborandpine.example/
- https://harborandpine.example/collections/all
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/cart
- https://harborandpine.example/pages/about
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
如何修复
根据您页面的标记生成的代码- 在下面的示例中找到这些链接。大多数是 <a> 标签内的图标或图片。
- 在链接内添加视觉上隐藏的文字,或添加 aria-label,例如 aria-label="Instagram" 或 aria-label="Cart"。
- 如果链接包裹的是图片,请改为给图片添加有意义的替代文本。
代码
供开发人员参考的实现示例。我们没有您主题的源代码,因此文件位置只是提示,并非确切路径。
<a href="/cart">…</a><a href="/cart" aria-label="Cart">…</a>为链接设置名称“Cart”,这是根据其链接地址或 class 推测的。请确认它说明了链接的作用。
<a href="https://instagram.example/harborandpine">…</a><a href="https://instagram.example/harborandpine" aria-label="Instagram">…</a>为链接设置名称“Instagram”,这是根据其链接地址或 class 推测的。请确认它说明了链接的作用。
<a href="https://facebook.example/harborandpine">…</a><a href="https://facebook.example/harborandpine" aria-label="Facebook">…</a>为链接设置名称“Facebook”,这是根据其链接地址或 class 推测的。请确认它说明了链接的作用。
<a href="https://x.example/harborandpine">…</a><a href="https://x.example/harborandpine" aria-label="X (Twitter)">…</a>为链接设置名称“X (Twitter)”,这是根据其链接地址或 class 推测的。请确认它说明了链接的作用。
用 AI 修复显示提示词
将它与您的主题文件一起粘贴到 ChatGPT、Claude、Cursor 或 Copilot 中。发布前请检查修改内容。
我在 harborandpine.example 上运营一家 Shopify 店铺(Online Store 2.0 模板,Liquid 模板文件)。一项无障碍测试发现了这个问题,我想在我的主题中修复它。 问题:链接必须有可辨识的文本(WCAG 2.4.4、4.1.2)。 位置:9 个页面上共 36 个实例,例如 /、/collections/all、/products/trail-daypack、/cart。 一个未通过的元素(浏览器渲染后的代码): ```html <a href="/cart"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 4h2l2.4 11h11l2-8H6.5"></path><circle cx="9" cy="20" r="1.5"></circle><circle cx="18" cy="20" r="1.5"></circle></svg></a> ``` 为什么重要:WCAG 2.4.4 和 4.1.2 要求链接具有描述其目的的无障碍名称。 需要修改的内容: - 在下面的示例中找到这些链接。大多数是 <a> 标签内的图标或图片。 - 在链接内添加视觉上隐藏的文字,或添加 aria-label,例如 aria-label="Instagram" 或 aria-label="Cart"。 - 如果链接包裹的是图片,请改为给图片添加有意义的替代文本。 建议的修改(您的主题代码,可在其中搜索所示的标记): ```html <a href="/cart" aria-label="Cart">…</a> ``` 回答要求: - 以修改前和修改后的形式给出确切的改动,并说明应改在哪个文件或设置中。如果需要先看我的文件,请让我粘贴给你。 - 保持视觉设计和所有现有功能不变。 - 不要编造产品名称、价格或文字;请使用我可以自行填写的占位符。 - 最后说明我可以如何自行检查修复效果。 - 请说明如何用键盘和屏幕阅读器确认修复效果。
检查您的修复
- 重新扫描,确认 link-name 已消失。
- 在运行屏幕阅读器的情况下,用 Tab 键依次移到每个链接,收听其名称。
详细指南:https://dequeuniversity.com/rules/axe/4.13/link-name?application=playwright
元素必须满足最小颜色对比度比率阈值
工作量:小 · 负责人:店主(后台设置) · 1.4.3 对比度(最低)
部分文字与背景的区分度不够,低视力用户难以阅读。
WCAG 1.4.3 要求普通文字的对比度至少达到 4.5:1,大号文字至少达到 3:1。颜色浅淡的价格、徽标和横幅,对低视力用户以及在强光下的所有人来说都难以阅读。
证据
- 发现方式
- axe-core 自动化规则
- 状态 · 置信度
- 已确认的未通过项 · 高
- 检测时间
- 2026年9月24日(UTC)
- 位置
- 9 个页面上共 22 个实例
预期: 元素必须满足最小颜色对比度比率阈值
实际: 元素的颜色对比度 3.09 不足(前景色:#ffffff,背景色:#e76f51,字体大小:9.8pt (13px),字体粗细:normal)。预期的对比度为 4.5:1。


如何复现
- 在 Chrome 或 Edge 中打开 https://harborandpine.example/。
- 打开开发者工具(F12)› Elements,按 Ctrl+F(Mac 上为 Cmd+F)并搜索:.announce
- 在 Styles 窗格中点击元素颜色旁的色块,查看测得的对比度。
- 或者在页面上运行免费的 axe DevTools 浏览器扩展:它会将此问题报告为“color-contrast”。
未通过的元素(显示 4 个)
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div><span class="badge">Sale</span><span class="compare">$72</span><span class="compare">$40</span>受影响的页面(9)
- https://harborandpine.example/
- https://harborandpine.example/collections/all
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/cart
- https://harborandpine.example/pages/about
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
如何修复
根据您页面的标记生成的代码- 打开下面列出的未通过元素,记下未通过摘要中的前景色和背景色。
- 在“在线商店 > 模板 > 自定义 > 模板设置 > 颜色”中,为受影响的配色方案加深文字颜色或调浅背景颜色,直到对比度至少达到 4.5:1。
- 请特别注意促销徽标、占位符文字、页脚链接和图片上的按钮。
代码
供开发人员参考的实现示例。我们没有您主题的源代码,因此文件位置只是提示,并非确切路径。
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>.announce {
background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}13px 文字的实测对比度为 3.09:1;WCAG 1.4.3 要求 4.5:1。#b95941 保持相同色调且能够通过。此选择器是我们测试时使用的;您的主题可能对同一样式使用更通用的 class。
<span class="badge">Sale</span>.badge {
background-color: #9f693f; /* was #f4a261: 2.06:1, now 4.59:1 */
}12px 粗体文字的实测对比度为 2.06:1;WCAG 1.4.3 要求 4.5:1。#9f693f 保持相同色调且能够通过。此选择器是我们测试时使用的;您的主题可能对同一样式使用更通用的 class。
<span class="compare">$72</span>.compare {
color: #78736c; /* was #b0a99f: 2.29:1, now 4.62:1 */
}14px 文字的实测对比度为 2.29:1;WCAG 1.4.3 要求 4.5:1。#78736c 保持相同色调且能够通过。此选择器是我们测试时使用的;您的主题可能对同一样式使用更通用的 class。
用 AI 修复显示提示词
将它与您的主题文件一起粘贴到 ChatGPT、Claude、Cursor 或 Copilot 中。发布前请检查修改内容。
我在 harborandpine.example 上运营一家 Shopify 店铺(Online Store 2.0 模板,Liquid 模板文件)。一项无障碍测试发现了这个问题,我想在我的主题中修复它。
问题:元素必须满足最小颜色对比度比率阈值(WCAG 1.4.3)。
位置:9 个页面上共 22 个实例,例如 /、/collections/all、/products/trail-daypack、/cart。
一个未通过的元素(浏览器渲染后的代码):
```html
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div>
```
为什么重要:WCAG 1.4.3 要求普通文字的对比度至少达到 4.5:1,大号文字至少达到 3:1。颜色浅淡的价格、徽标和横幅,对低视力用户以及在强光下的所有人来说都难以阅读。
需要修改的内容:
- 打开下面列出的未通过元素,记下未通过摘要中的前景色和背景色。
- 在“在线商店 > 模板 > 自定义 > 模板设置 > 颜色”中,为受影响的配色方案加深文字颜色或调浅背景颜色,直到对比度至少达到 4.5:1。
- 请特别注意促销徽标、占位符文字、页脚链接和图片上的按钮。
建议的修改(模板设置 › 颜色,或您主题的 CSS 文件):
```css
.announce {
background-color: #b95941; /* was #e76f51: 3.09:1, now 4.59:1 */
}
```
回答要求:
- 以修改前和修改后的形式给出确切的改动,并说明应改在哪个文件或设置中。如果需要先看我的文件,请让我粘贴给你。
- 保持视觉设计和所有现有功能不变。
- 不要编造产品名称、价格或文字;请使用我可以自行填写的占位符。
- 最后说明我可以如何自行检查修复效果。
- 请说明如何用键盘和屏幕阅读器确认修复效果。检查您的修复
- 重新运行扫描,确认 color-contrast 不再出现。
- 使用对比度检查工具,对具体颜色进行抽查。
详细指南:https://dequeuniversity.com/rules/axe/4.13/color-contrast?application=playwright
所有页面内容应包含在 landmark 中
工作量:中等 · 负责人:主题开发人员
部分内容不在页面地标区域(header、nav、main 或 footer)内。
地标区域让屏幕阅读器用户可以在页面中快速跳转。这是支持 WCAG 1.3.1 和 2.4.1 的最佳实践。
证据
- 发现方式
- axe-core 自动化规则
- 状态 · 置信度
- 已确认的未通过项 · 高
- 检测时间
- 2026年9月24日(UTC)
- 位置
- 9 个页面上共 18 个实例
预期: 所有页面内容应包含在 landmark 中
实际: 某些页面内容不包含在 landmark 中。


如何复现
- 在 Chrome 或 Edge 中打开 https://harborandpine.example/。
- 打开开发者工具(F12)› Elements,按 Ctrl+F(Mac 上为 Cmd+F)并搜索:.announce
- 或者在页面上运行免费的 axe DevTools 浏览器扩展:它会将此问题报告为“region”。
未通过的元素(显示 2 个)
<div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div><p>We use cookies to improve your experience and measure traffic.</p>受影响的页面(9)
- https://harborandpine.example/
- https://harborandpine.example/collections/all
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/cart
- https://harborandpine.example/pages/about
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
如何修复
通用指导- 将游离的内容(公告栏、弹窗、聊天小组件)包裹在合适的地标区域中,或放入 <main> 内。
用 AI 修复显示提示词
将它与您的主题文件一起粘贴到 ChatGPT、Claude、Cursor 或 Copilot 中。发布前请检查修改内容。
我在 harborandpine.example 上运营一家 Shopify 店铺(Online Store 2.0 模板,Liquid 模板文件)。一项无障碍测试发现了这个问题,我想在我的主题中修复它。 问题:所有页面内容应包含在 landmark 中。 位置:9 个页面上共 18 个实例,例如 /、/collections/all、/products/trail-daypack、/cart。 一个未通过的元素(浏览器渲染后的代码): ```html <div class="announce">Free shipping on orders over $75 · Easy 30-day returns</div> ``` 为什么重要:地标区域让屏幕阅读器用户可以在页面中快速跳转。这是支持 WCAG 1.3.1 和 2.4.1 的最佳实践。 需要修改的内容: - 将游离的内容(公告栏、弹窗、聊天小组件)包裹在合适的地标区域中,或放入 <main> 内。 回答要求: - 以修改前和修改后的形式给出确切的改动,并说明应改在哪个文件或设置中。如果需要先看我的文件,请让我粘贴给你。 - 保持视觉设计和所有现有功能不变。 - 不要编造产品名称、价格或文字;请使用我可以自行填写的占位符。 - 最后说明我可以如何自行检查修复效果。 - 请说明如何用键盘和屏幕阅读器确认修复效果。
检查您的修复
- 重新扫描受影响的页面。
详细指南:https://dequeuniversity.com/rules/axe/4.13/region?application=playwright
标题级别只应递增一
工作量:中等 · 负责人:主题开发人员
标题层级出现跳级(例如从 H2 直接跳到 H4),让屏幕阅读器用户难以理解页面结构。
屏幕阅读器用户会借助标题浏览页面。这是支持 WCAG 1.3.1 的最佳实践。
证据
- 发现方式
- axe-core 自动化规则
- 状态 · 置信度
- 已确认的未通过项 · 高
- 检测时间
- 2026年9月24日(UTC)
- 位置
- 7 个页面上共 7 个实例
预期: 标题级别只应递增一
实际: 标题顺序无效。


如何复现
- 在 Chrome 或 Edge 中打开 https://harborandpine.example/collections/all。
- 打开开发者工具(F12)› Elements,按 Ctrl+F(Mac 上为 Cmd+F)并搜索:article:nth-child(1) > a[href$="trail-daypack"] > h3
- 或者在页面上运行免费的 axe DevTools 浏览器扩展:它会将此问题报告为“heading-order”。
未通过的元素(显示 3 个)
<h3>Trail Daypack 22L</h3><h3>Reviews</h3><h3>Started on the trail</h3>受影响的页面(7)
- https://harborandpine.example/collections/all
- https://harborandpine.example/products/trail-daypack
- https://harborandpine.example/pages/about
- https://harborandpine.example/products/pine-wool-beanie
- https://harborandpine.example/products/enamel-camp-mug
- https://harborandpine.example/products/harbor-lantern
- https://harborandpine.example/products/insulated-bottle
如何修复
通用指导- 调整受影响区块中的标题层级,使其按顺序排列、不跳级。
- 只修改标签,不修改视觉样式(用 CSS 类控制字号)。
代码
供开发人员参考的实现示例。我们没有您主题的源代码,因此文件位置只是提示,并非确切路径。
<h3>Trail Daypack 22L</h3><h2 class="h3">Trail Daypack 22L</h2>使用紧接页面上前一个标题的层级(通常是上调一级),并用 class 保持外观。修改前请先检查页面大纲。
<h3>Reviews</h3><h2 class="h3">Reviews</h2>使用紧接页面上前一个标题的层级(通常是上调一级),并用 class 保持外观。修改前请先检查页面大纲。
<h3>Started on the trail</h3><h2 class="h3">Started on the trail</h2>使用紧接页面上前一个标题的层级(通常是上调一级),并用 class 保持外观。修改前请先检查页面大纲。
用 AI 修复显示提示词
将它与您的主题文件一起粘贴到 ChatGPT、Claude、Cursor 或 Copilot 中。发布前请检查修改内容。
我在 harborandpine.example 上运营一家 Shopify 店铺(Online Store 2.0 模板,Liquid 模板文件)。一项无障碍测试发现了这个问题,我想在我的主题中修复它。 问题:标题级别只应递增一。 位置:7 个页面上共 7 个实例,例如 /collections/all、/products/trail-daypack、/pages/about、/products/pine-wool-beanie。 一个未通过的元素(浏览器渲染后的代码): ```html <h3>Trail Daypack 22L</h3> ``` 为什么重要:屏幕阅读器用户会借助标题浏览页面。这是支持 WCAG 1.3.1 的最佳实践。 需要修改的内容: - 调整受影响区块中的标题层级,使其按顺序排列、不跳级。 - 只修改标签,不修改视觉样式(用 CSS 类控制字号)。 建议的修改(您的主题代码,可在其中搜索所示的标记): ```html <h2 class="h3">Trail Daypack 22L</h2> ``` 回答要求: - 以修改前和修改后的形式给出确切的改动,并说明应改在哪个文件或设置中。如果需要先看我的文件,请让我粘贴给你。 - 保持视觉设计和所有现有功能不变。 - 不要编造产品名称、价格或文字;请使用我可以自行填写的占位符。 - 最后说明我可以如何自行检查修复效果。 - 请说明如何用键盘和屏幕阅读器确认修复效果。
检查您的修复
- 重新扫描,并用 HeadingsMap 等浏览器扩展检查标题大纲。
详细指南:https://dequeuniversity.com/rules/axe/4.13/heading-order?application=playwright
需人工复核
自动化测试标记了这些项目但无法判定,例如图片上的文字,或可能无法在手机屏幕上完整显示的内容。它们不计为未通过项。请让您的开发人员逐一检查。
- 需复核WCAG 4.1.3
键盘流程:用键盘加入购物车
在“加入购物车”上按 Enter 键有效(页头中的购物车数量发生了变化、出现了“已加入购物车”的消息),但我们没有找到状态消息或获得焦点的对话框,因此屏幕阅读器用户可能听不到商品已加入的提示。
1 个页面上共 1 个实例 · 如何检查
- 需复核WCAG 1.4.10
产品页在窄屏上可能需要横向滚动才能完整显示
在 320 CSS 像素宽度下(相当于 400% 缩放),页面比屏幕宽 200px。数据表格和地图可以滚动;文字和控件则不应如此。
1 个页面上共 2 个实例 · 如何检查
需检查的元素(显示 2 个)
div.icons <div class="icons"> <button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></budiv <div> <p style="color:#6a6a60;font-size:14px">Harbor & Pine</p> <h1>Trail Daypack 22L</h1> <p class="price" style="font-size:22px">$128<span class="compare">$150</span></p> <p class="opt-label">Si - 需复核WCAG 1.4.10
首页在窄屏上可能需要横向滚动才能完整显示
在 320 CSS 像素宽度下(相当于 400% 缩放),页面比屏幕宽 55px。数据表格和地图可以滚动;文字和控件则不应如此。
1 个页面上共 3 个实例 · 如何检查
需检查的元素(显示 3 个)
div.icons <div class="icons"> <button type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"></circle><path d="M20 20l-3.5-3.5"></path></svg></buarticle.card <article class="card"><span class="badge">Sale</span><a href="/products/trail-daypack"><img src="/img/beanie.svg"><h3>Pine Wool Beanie</h3></a><p class="price">$32<span class="compare">$40</span></p><button.btn.light <button class="btn light" type="submit">Subscribe</button> - 需复核WCAG 1.4.3
元素必须满足最小颜色对比度比率阈值
由于元素包含图像节点,因此无法确定元素的背景颜色。
1 个页面上共 1 个实例 · 如何检查
需检查的元素(显示 1 个)
h1 <h1>Gear for the long way home</h1>
复测您的修复
开发人员修改完成后,请运行复测。我们会在相同页面上再次运行相同的自动化检查、键盘测试和键盘流程,并显示哪些问题已不再复现。包含 5 次复测。
复测适用于付费报告。
人工检查
自动化工具无法判定这些项目。请在认为工作完成之前逐项完成。
- 只用键盘完成结账:我们的自动化流程在结账按钮前停止,从不进入结账页面。
- 用屏幕阅读器重复操作(Mac 上的 VoiceOver:Cmd+F5;Windows 上的 NVDA),确认价格、变体和错误信息都会被朗读。
- 将浏览器缩放到 200%,确认没有内容重叠或消失。
- 检查产品视频和品牌视频是否有准确的字幕。
- 故意填错并提交表单(新闻通讯、联系、结账),确认错误以文字形式说明。
- 检查轮播和弹窗能否暂停或关闭,包括使用 Escape 键。
无障碍声明草稿
请修改方括号中的内容,然后将其发布在页脚有链接指向的页面上。
harborandpine.example 无障碍声明 我们希望每个人都能在 harborandpine.example 上购物,包括使用屏幕阅读器、键盘导航、放大工具或其他辅助技术的人。我们的目标是达到《Web 内容无障碍指南》(WCAG)2.2 AA 级。 我们的做法 - 我们使用自动化无障碍工具测试我们的店铺,并修复发现的问题。 - 我们使用键盘和屏幕阅读器测试关键购物步骤(浏览、产品页、购物车和结账)。 - 在添加第三方应用和小组件之前,我们会审查它们的无障碍情况。 已知局限(截至 2026 年 9 月 24 日) - 键盘访问和焦点(WCAG 2.1.1)。我们计划在 2026-10-08 之前修复此问题。 - 缺少名称的链接和按钮(WCAG 2.4.4、4.1.2)。我们计划在 2026-10-08 之前修复此问题。 - 缺少替代文本的图片(WCAG 1.1.1)。我们计划在 2026-10-08 之前修复此问题。 - 表单字段缺少标签(WCAG 4.1.2)。我们计划在 2026-10-08 之前修复此问题。 - 颜色对比度不足(WCAG 1.4.3)。我们计划在 2026-10-08 之前修复此问题。 反馈和帮助 如果您在使用我们店铺的任何部分时遇到困难,请通过 [您的邮箱] 或 [您的电话号码] 联系我们。请告诉我们具体页面和问题,我们会帮助您完成购买,并在 5 个工作日内回复。 本声明编制于 2026 年 9 月 24 日,并将至少每年审查一次。
证据日志
每个页面都在 Chromium 中加载,并使用 axe-core 4.13.0 测试。SHA-256 哈希值用于标识每个页面的原始结果。
| 页面 | 测试时间(UTC) | HTTP | 问题 | SHA-256 |
|---|---|---|---|---|
| 首页https://harborandpine.example/ | 2026-09-24 14:05:00 | 200 | 15 | da1e5470a57859a864332912dd1e4f62b4c4f64487ba144865b74879519599a3 |
| 产品系列页https://harborandpine.example/collections/all | 2026-09-24 14:05:09 | 200 | 20 | 28d8dfcf5ca953af353264a930a351bea3cf23f98a303874b32e5da355a4c8b0 |
| 产品页https://harborandpine.example/products/trail-daypack | 2026-09-24 14:05:18 | 200 | 20 | 68a173ddfd16eeeef5e36d6c0fa9d426769f0d96e358c5e35b67608dd84139b4 |
| 购物车https://harborandpine.example/cart | 2026-09-24 14:05:27 | 200 | 12 | 5b7945c2cdf779dcef2bd8975d96eb8f42d8dedbf10e767ec80199dd22ce257c |
| 内容页https://harborandpine.example/pages/about | 2026-09-24 14:05:36 | 200 | 9 | daf61ae856358a574e63f9357db0bfd9ae6079065acf3aebd5b3c5a7f460e53f |
| 附加页面https://harborandpine.example/products/pine-wool-beanie | 2026-09-24 14:08:00 | 200 | 20 | f708ccd7de34dfb65d59d3716580b6ec15a6420020c8387fa4da4e2ff5bd52d3 |
| 附加页面https://harborandpine.example/products/enamel-camp-mug | 2026-09-24 14:08:07 | 200 | 19 | c619bcd29e89d06099d174b9fc19305a42f2fa9bdddb600a750c867fc7477022 |
| 附加页面https://harborandpine.example/products/harbor-lantern | 2026-09-24 14:08:14 | 200 | 20 | 5720b7433b75050ba413ac74c2bd726b0620aaa68f7918083052383257d5c418 |
| 附加页面https://harborandpine.example/products/insulated-bottle | 2026-09-24 14:08:21 | 200 | 19 | 6f1972c22e477c9a63e2dfde1123ed759718f6a75e1606b23f208848691510fd |
范围和方法
我们测试了什么
- 9 个页面(首页、产品系列页、产品页、购物车、内容页、附加页面),在 Chromium 中以 1366×900 加载。
- axe-core 4.13.0 中针对 WCAG 2.0、2.1 和 2.2 A 级和 AA 级的规则,以及最佳实践规则(显示为 P3)。
- 键盘测试:在首页上按 40 次 Tab 键,查找焦点陷阱和缺失的焦点指示。
- 从首页到结账按钮的纯键盘购物流程(见上文)。
- 在 首页和产品页上以 320 CSS 像素宽度进行的重排检查(WCAG 1.4.10)。
我们没有测试什么
- 结账和支付页面、表单提交、账户及需要登录的页面。
- 屏幕阅读器实际朗读的内容(自动化规则覆盖范围之外的部分)。
- 视频字幕和音频描述、PDF 文档,以及第三方框架(iframe)中的内容。
- 通俗易懂的语言、认知无障碍,以及其他任何需要人工判断的内容(见“人工检查”)。
如何解读结果
- 已确认的未通过项
- 某项自动化测试或键盘流程未通过,并附有证据。
- 需复核
- 某项测试标记了它无法判定的内容;需要有人检查。
- 通过
- 该自动化规则在所测页面上未发现未通过项。
- 未测试
- 超出了此处自动化测试能覆盖的范围;见“人工检查”。
本报告描述自动化测试的结果并提供修复指导。它不构成法律意见,也不证明符合 ADA、《欧洲无障碍法案》或任何其他法律。

