无障碍与字数设计 - alt 文本和 ARIA 标签的最佳长度

约 8 分钟阅读

在 Web 无障碍实现中,字数设计是一个容易被忽视的要素。alt 文本过长,屏幕阅读器用户会被信息洪流淹没;过短,则无法传达图片的含义。ARIA 标签和实时区域的文本同样如此,设计合适的字数是打造无障碍体验的关键。本文将在 WCAG 指南要求的基础上,具体讲解各元素的最佳字数和实现模式。

alt 文本的字数设计 - 125 字的门槛及其依据

alt 文本广为人知的推荐标准是"125 个字符以内"。这个数字并非 WCAG 规范中明确规定的,而是源于主流屏幕阅读器的行为。JAWS (Job Access With Speech) 在 alt 文本超过约 125 个字符时,可能会将文本分段朗读。虽然 NVDA 和 VoiceOver 不会出现明显的分段现象,但过长的 alt 文本会增加用户的认知负担,因此建议保持简洁。

不过,125 个字符只是一个参考值,最佳字数因图片类型而有很大差异。下表按图片类型汇总了推荐的 alt 文本字数。

图片类型推荐字数撰写要点示例
装饰性图片0 字 (空 alt)设置 alt="",让屏幕阅读器忽略alt=""
图标/按钮5-15 字简洁传达功能或操作"搜索"、"打开菜单"
照片/插图30-80 字描述图片内容及其在上下文中的作用"会议室中五名团队成员围绕白板讨论"
图表/图形50-125 字概括数据趋势或结论"2024 年月度销售趋势。4 月同比增长 30%,达到峰值"
信息图125 字 + longdescalt 中放概要,详细内容另行提供文本alt 放概要,正文中放详细说明
Logo5-20 字写明组织名称,无需加"logo"一词"字数计数器"
链接内图片10-40 字描述链接目标 (而非图片外观)"下载产品目录"
公式/代码公式的朗读文本通过 MathML 或 aria-label 提供替代文本"E 等于 m 乘以 c 的平方"

为装饰性图片设置非空 alt 文本是常见的实现错误。为背景图案或分隔线图片写上"装饰"或"图片",会导致屏幕阅读器朗读无意义的信息,损害用户体验。装饰性图片务必设置 alt="",如果可能的话,最好用 CSS 的 background-image 实现,从 DOM 中完全移除。

alt 文本的写法 - 依赖上下文的原则

同一张图片,根据其所处的上下文不同,最佳的 alt 文本也会不同。这是因为 WCAG 2.2 的成功标准 1.1.1 (非文本内容) 要求替代文本"实现等效目的"。例如,一张狗的照片出现在"宠物健康管理"文章中和出现在"摄影技巧"文章中,需要传达的信息是不同的。

前者应包含健康信息,如"一只金毛寻回犬站在体重秤上。理想体重为 25-34 公斤";后者则应聚焦于摄影技法:"逆光拍摄的金毛寻回犬剪影。光圈 f/2.8,背景虚化"。字数自然会有所不同,但重要的是根据上下文取舍信息。

错误消息设计一样,alt 文本也应意识到"用户接下来该做什么"。对于电商网站的商品图片,包含颜色、尺寸等购买决策所需的信息,可以为无法依赖视觉的用户提供同等的购物体验。

ARIA 标签的字数设计

ARIA (Accessible Rich Internet Applications) 属性为屏幕阅读器提供仅靠 HTML 语义无法传达的信息。其中 aria-labelaria-labelledby 是最常用的属性,但其字数设计缺乏明确的指导方针,很大程度上依赖开发者的判断。

ARIA 属性推荐字数用途注意事项
aria-label5-40 字直接指定元素的名称存在可见文本时优先使用 aria-labelledby
aria-labelledby取决于引用元素引用其他元素的文本作为名称可用空格分隔指定多个 ID
aria-describedby20-100 字提供补充说明作为描述而非名称被朗读
aria-roledescription5-20 字角色的自定义描述会覆盖标准角色描述,需谨慎使用
aria-live 区域文本10-60 字通知动态变化的内容频繁更新会干扰用户操作

aria-label 超过 40 个字符时,屏幕阅读器用户的认知负担会增加。为导航地标设置 aria-label="主导航" 没有问题,但需要复杂描述时,使用 aria-describedby 引用其他元素更为合适。

aria-label 与可见文本不一致会给语音操控用户带来严重问题。例如,按钮的可见文本是"提交",但 aria-label="提交表单数据",用语音说"点击提交"可能无法识别该按钮。WCAG 2.2 的成功标准 2.5.3 (名称中包含标签) 要求无障碍名称包含可见文本。

屏幕阅读器的朗读速度与字数的关系

屏幕阅读器用户通常将朗读速度设置为标准速度的 1.5-3 倍。一些熟练用户甚至使用 5 倍速以上。在这种高速朗读环境下,文本长度直接影响体验。

以标准速度 (约每分钟 150 个英文单词,日语约每分钟 300 个字符) 朗读 125 个字符的 alt 文本大约需要 25 秒。即使 3 倍速也需要约 8 秒。在一个有 10 张图片的画廊页面上,如果每张图片都有 125 个字符的 alt 文本,屏幕阅读器用户仅通过画廊就需要花费 80 秒以上。

为缓解这一问题,以下策略对画廊和轮播组件很有效:

表单的无障碍与字数

表单元素的无障碍由标签、占位符、错误消息和帮助文本四层构成。各层的字数设计决定了表单的易用性。

元素推荐字数作用实现注意事项
label 元素5-20 字输入字段的名称务必用 for 属性关联
placeholder10-30 字展示输入示例不要替代标签使用,输入时会消失
aria-describedby (帮助)20-60 字说明输入格式或约束获得焦点时朗读
错误消息15-50 字说明错误内容和修复方法使用 aria-live="polite" 动态通知
提交按钮3-10 字明确说明操作内容具体化:"确认下单"优于"提交"

将 placeholder 用作标签替代是一种反模式,从无障碍角度来看尤其有问题。placeholder 文本在用户开始输入后就会消失,用户可能在输入过程中忘记字段的用途。此外,大多数浏览器中 placeholder 的默认颜色对比度不足 (约 2.5:1),不满足 WCAG 的最低标准 4.5:1。与命名规范的字数设计一样,表单标签也应简洁明了。

实时区域的字数控制

实时区域 (aria-live) 用于将页面的动态变化通知屏幕阅读器。它用于实时传达视觉上变化的内容,如聊天消息接收、表单验证结果、倒计时更新等。

实时区域字数设计中最重要的是更新频率与字数的平衡。正如聊天机器人消息设计中所述,短时间内大量文本涌入时,屏幕阅读器用户无法处理这些信息。

更新频率推荐字数aria-live 值具体示例
实时 (不到 1 秒)5-15 字off (不通知)计时器、股票行情
高频 (1-5 秒)10-30 字polite搜索结果数、字数计数器
中频 (5-30 秒)20-60 字polite聊天消息、通知
低频 (30 秒以上)30-100 字polite表单提交结果、状态更新
紧急 (需要立即通知)10-40 字assertive错误通知、会话过期警告

aria-live="assertive" 会中断当前朗读并立即通知,因此应仅限于真正紧急的场景。对表单验证错误使用 assertive 会导致用户每次输入时朗读被中断,使操作变得困难。验证错误应使用 polite,在用户当前操作完成后再通知。

WCAG 2.2 的成功标准与字数的关联

WCAG 2.2 没有直接规定字数的成功标准,但多项标准间接影响字数设计。

成功标准级别对字数的影响
1.1.1 非文本内容A要求提供 alt 文本。需要判断使用简短描述还是详细描述
1.3.1 信息和关系A标签与输入字段的关联。要求标签清晰
2.4.4 链接目的A仅凭链接文本就能理解链接目标
2.4.6 标题和标签AA标题和标签须描述内容。要求简洁且具体的字数设计
2.5.3 名称中包含标签Aaria-label 须包含可见文本。要求字数一致性
3.3.2 标签或说明A为输入字段提供标签或说明
4.1.2 名称、角色、值A为自定义组件提供无障碍名称

成功标准 2.4.4 (链接目的) 与 OGP 文本优化有着相通的理念。"点击这里"、"详情"等模糊的链接文本,会让屏幕阅读器用户在浏览链接列表时无法判断目标。建议使用约 15-40 个字符的描述性文本,如"阅读 WCAG 2.2 官方文档",使链接文本本身就能传达目的。

多语言网站中的无障碍与字数

在多语言网站中,同一内容的字数会因语言不同而有很大变化。将英文 alt 文本翻译成日语,字数会缩减约 60-70%;翻译成德语则可能膨胀约 130%。这种语言间的字数差异在多语言文本字数设计中有详细介绍。

从无障碍角度来看,最需要注意的是 aria-label 的翻译遗漏。HTML 的可见文本已经翻译,但 aria-labelaria-describedby 引用的文本仍保留原语言的情况并不少见。使用 i18n 框架时,请务必将 ARIA 属性的文本也纳入翻译范围。

正确设置 lang 属性也很重要。当页面中包含与整体语言不同的文本时,在该元素上设置 lang 属性可以让屏幕阅读器切换到正确的语音引擎进行朗读。例如,日语页面中的英文引用应使用 <blockquote lang="en">

实施检查清单 - 无障碍字数的质量管理

为了持续管理无障碍字数设计的质量,建议将以下检查清单纳入开发流程。

自动化测试工具 (axe、Lighthouse、WAVE 等) 可以检测结构性问题,但 alt 文本的质量和 ARIA 标签的适当性需要人工审查。将无障碍审查纳入开发团队的流程,并定期使用屏幕阅读器进行实机测试,是通往真正无障碍网站的捷径。

Web 无障碍相关的参考书籍可在 Amazon 上找到。系统学习 WCAG 的成功标准,将大幅提升您在字数设计方面的判断力。

分享这篇文章