无需登录 数据私有 本地保存

无障碍进度条组件生成器 - 确定/不确定状态

4
0
0
0

无障碍进度条组件生成器

WCAG 2.1 AA 兼容 · ARIA 语义完备 · 确定/不确定双模式

文件上传 表单进度 加载等待 安装进度
有明确百分比,aria-valuenow 反映当前值 无具体进度,表示正在处理中
0%50%100%
细 4px标准 16px粗 40px
实时预览
75%
75%
role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" aria-label="文件上传进度"
生成的 HTML 代码

常见问题与无障碍知识点

确定 vs 不确定状态的区别?

确定状态(determinate)有明确的 aria-valuenow 值,表示已完成百分比。不确定状态(indeterminate)省略该属性,仅通过动画表示"正在处理",适用于无法预估完成时间的场景。

屏幕阅读器如何解读进度条?

确定状态会朗读为"文件上传进度 75%",不确定状态朗读为"文件上传进度 正在处理"。始终使用 aria-label 提供有意义的描述,避免仅依赖视觉信息。

何时使用动态 aria-live 区域?

对于频繁更新的进度条,建议搭配 aria-live="polite" 区域,让屏幕阅读器自动播报进度变化,无需用户手动聚焦。这提升了动态内容更新的无障碍体验。

进度条颜色有WCAG要求吗?

进度条填充色与背景色需满足至少 3:1 的对比度(WCAG 2.1 AA)。如果进度条上显示文字,文字与填充色需满足 4.5:1 对比度。建议使用足够饱和的颜色。

不确定进度条的动画频率?

动画应保持在 1.5–2.5秒 的周期内,避免过快引发眩晕(可能违反 prefers-reduced-motion)。建议使用 CSS @media (prefers-reduced-motion) 提供降级方案。

可以省略 role="progressbar" 吗?

不建议省略。role="progressbar" 是屏幕阅读器识别进度条的关键语义标记。如果使用原生 <progress> 元素,该角色已隐式存在,但仍需设置 aria 属性以确保兼容性。