跳转到主要内容

常见问题

生成的应用对残障人士是否无障碍?

部分是,诚实的回答分三层。它没有通过 WCAG 认证,也未经第三方审计:本站任何页面都不会作相反的表述。但多项基础确由构建方式保证,因为界面由一个确定性程序写出,而不是每次重新绘制——可见的键盘焦点、系统要求时减弱的动效、真实的表单、没有原生对话框。每次生成时,每个页面的无障碍树都会被记录并写入报告。缺失之处在下文逐条列明,而不是略过。而且由于代码归您所有,修复无障碍问题是一项普通工作,而不是向供应商提交的一张工单。

由构建方式保证的部分,因为界面是程序写出来的

差别在于谁握着笔。界面并非每次生成都由模型绘制:一个确定性的构建器依据共享组件库生成它。因此一项一次性确立的保证适用于每个应用的每个页面,而不取决于当天的灵感。就无障碍而言,这是该架构最有用的性质,而且它不是口号:可以逐屏核验。

具体而言:每个可交互元素都能获得键盘焦点,并显示取自应用自身色板的可见轮廓环——而不是浏览器默认的轮廓,那在彩色背景上会消失——同一轮廓在鼠标点击时不会出现,因为那里它并不传达信息。若用户的系统要求减弱动效,过渡时长会被压到可忽略不计。输入框是真实的表单:回车键提交,打开时第一个字段获得焦点,主按钮是提交按钮。

没有原生对话框,以及为什么这是好消息

这里生成的应用从不使用浏览器的原生确认窗口。删除一行分两步完成,且都在页面内:第一次点击触发待确认状态,第二次点击确认,其间可以放弃。停用账户遵循同样的原则。

这一决定并非出于无障碍考虑——它源自一个自动化问题和视觉语言上的取舍——但其后果是真实的,值得说明。原生窗口跳出文档,打断阅读脉络,并且在不同浏览器和辅助工具下的播报方式并不一致。置于页面内的确认则保持在 Tab 顺序中,读起来与页面其余部分一致,并留出后退的余地,无需回答一个模态提问。

每次生成会测量什么——以及测量不承诺什么

在交付之前,每个应用都会在真实浏览器中打开并逐屏走查。这一轮检查的不是图像,而是无障碍树:屏幕阅读器所遍历的结构。其中记录没有可访问名称的按钮、链接与字段,被跳过的标题层级,没有描述的图像,以及在列表之外重复出现的相同标签。关闭用的“×”被计为未命名,因为屏幕阅读器会把它读作“乘号”。

诚实之处正在于此,而且至关重要:这是一份报告,不是一道关卡。没有阈值,没有判定,也不会拦截——含有未命名控件的页面不会在交付时被扣下。因此该测量说明的是关于应用的已知情况;它不承诺任何合规等级。若有覆盖率数字声称相反,那恰恰是本页拒绝作出的那类承诺。

尚未完成的部分,以及您可以如何应对

三处缺失,逐条列明。输入框不会困住焦点:Tab 键可能离开已打开的对话框,而规范要求它在其中循环。没有设置动态提示区域:保存成功、出现错误、列表刷新,这些在屏幕上可见,却不会向任何人播报。并且既无 WCAG 认证,也无独立审计——因此若您负有法定义务,本应用并不能免除它,也不会声称可以。

您可以如何应对,恰恰是这一处境区别于封闭软件的地方。代码归您所有,可以打包下载或从代码仓库取得,并且这是一个普通的 Next.js 项目:在对话框中困住焦点、添加动态提示区域,都是范围清晰、可估价的前端工作,任何服务商都能胜任。在传统供应商那里,同样的缺陷是一张您既无法决定优先级、也无法决定日期的工单。若您适用无障碍法规,请安排自己的审计:它本就是强制的,而在这里,审计结论是可以落地执行的。

进一步了解

相关问题

描述您的需求,看看生成的应用