ARIA 组件模式

共 22 题
#

1. Live Region(aria-live=polite/aria-live=assertive)

A polite 会立即打断当前播报
B 所有动态内容都应使用 assertive
C aria-live 只对鼠标用户有效
D assertive 立即播报并打断当前内容,适合紧急错误提示;polite 排队播报适合非紧急更新 ✓ 正确答案
#

2. ARIA combobox/listbox/grid/menu/menubar/tablist 等角色与模式(Pattern)

A 只要加 role 就能自动获得键盘行为
B role="menu" 与 role="listbox" 永远等价
C combobox/listbox/menu/tablist 等角色各有对应的键盘交互模式,需按 APG 实现 ✓ 正确答案
D tablist 用上下箭头切换标签
#

3. aria-live 区域在动态内容的应用

A aria-live 只用于图片
B 动态创建的 live region 播放最稳定
C 整个列表都应设为 live 以获得最完整播报
D 应在页面静态渲染 live region,并只播报关键变化 ✓ 正确答案
#

4. ARIA Authoring Practices Guide(APG)

A APG 是私人博客,非官方标准
B APG 已废弃,被 WAI-ARIA 1.3 取代
C APG 只规定 ARIA 理论,与技术实现无关
D APG 提供复杂组件(dialog、menu、combobox 等)的键盘交互、焦点管理与 HTML 结构规范 ✓ 正确答案
#

5. Skip Links(跳转链接)在长页面的无障碍导航

A Skip link 只对鼠标用户有效
B Skip link 让键盘/读屏用户跳过重复导航直达主内容,目标区需 tabindex="-1" 可编程聚焦 ✓ 正确答案
C Skip link 应放在页面底部
D 长页面不需要 Skip link
#

6. 面包屑、对话框、Tooltip 的无障碍模式

A 面包屑用 aria-current="page" 标记当前页,对话框用 role="dialog" 并管理焦点,tooltip 用 aria-describedby 关联 ✓ 正确答案
B 对话框不需要 Esc 关闭
C Tooltip 应作为关键信息的唯一载体
D 面包屑应使用 div 而非 nav
#

7. 模态框 aria-modal、下拉菜单 aria-haspopup、标签页 role="tablist"

A tab 应使用 aria-controls 关联自己的面板
B aria-haspopup 只接受 true 一个值
C tablist 中的 tab 用 aria-expanded 标记选中
D aria-modal="true" 只是声明,仍需配合焦点陷阱让背景不可交互 ✓ 正确答案
#

8. ARIA Grid/Tree/Menu 在复杂数据组件的工程价值

A 所有表格都应改用 role="grid"
B 纯展示数据用原生 table 更合适,grid/tree/menu 用于可交互的复杂组件 ✓ 正确答案
C menu 适合普通页面导航
D tree 不支持键盘导航
#

9. aria-expanded、aria-hidden、aria-controls 的状态管理

A aria-hidden="true" 可以放在可聚焦元素上
B 这三个属性只用于图片
C aria-controls 指向任意字符串即可
D aria-expanded 表达展开状态,aria-controls 关联被控元素,aria-hidden 从语义树移除内容,且状态需随交互同步 ✓ 正确答案
#

10. ARIA roles、states、properties 在自定义组件的语义化工程应用

A 只需加 role,无需配 state 和 property
B 自定义组件无需可访问名称
C ARIA 只影响视觉,不影响语义
D 应把 role/state/property 与键盘焦点行为作为一个整体设计,且优先原生语义 ✓ 正确答案
#

11. ARIA Tree、ARIA Treegrid 在复杂树形列表的工程应用

A tree 用于多列数据,treegrid 用于单列
B treegrid 是 tree 与 grid 的结合,用于多列数据的树形行 ✓ 正确答案
C 两者都不支持键盘导航
D treegrid 用 aria-selected 表达层级
#

12. ARIA Combobox 与 Listbox 在自动补全的工程价值

A 每次变化都要把焦点移入 listbox
B 自动补全时输入框保持焦点,用 aria-activedescendant 指向高亮 option ✓ 正确答案
C listbox 不需要 aria-expanded 表达展开
D 自动补全不能用键盘操作
#

13. ARIA Menu 与 Menuitem 在菜单组件的现代实践

A menu 无法用 Esc 关闭
B menu 用于所有导航场景
C menuitem 不需要键盘导航
D role="menu" 适合命令列表,页面导航应使用 nav + 链接 ✓ 正确答案
#

14. ARIA Slider(role="slider")在范围选择的现代工程

A slider 不需要 aria-orientation
B 应优先用原生 input[type=range] 而非自定义 role=slider
C 用 aria-valuenow/valuemin/valuemax 表达值,方向键调整,焦点保持在滑块上 ✓ 正确答案
D 调整值时焦点会自动跳到别处
#

15. ARIA Progressbar 在加载进度与异步任务的工程应用

A 确定进度用 aria-valuenow/min/max,不确定进度省略 valuenow 并用 aria-busy 表示 ✓ 正确答案
B 进度条应设为可聚焦
C 每 1% 变化都应立即播报
D progressbar 只用于视频
#

16. ARIA Spinbutton 在数字输入与增减按钮的现代实践

A aria-valuenow 只用于显示,不影响读屏
B 所有数字输入都必须用 role=spinbutton
C spinbutton 不需要 Up/Down 键
D 优先用原生 input[type=number],自定义时用 role=spinbutton 并实现键盘增减 ✓ 正确答案
#

17. aria-keyshortcuts 与键盘快捷键自描述的工程价值

A 快捷键可以替代所有其他访问方式
B 声明后浏览器自动实现快捷键
C 它声明元素可用的键盘快捷键,但实际快捷键仍需脚本实现,且不能是唯一访问方式 ✓ 正确答案
D aria-keyshortcuts 只用于移动端
#

18. aria-current 与 aria-busy 在路由切换/数据加载的可访问性工程价值

A aria-current 标记当前项(如当前页),aria-busy 标记加载中以免读屏误播中间态 ✓ 正确答案
B aria-current 只用于链接
C aria-busy 表示元素已加载完成
D 两者只影响视觉效果
#

19. ARIA Switch(role="switch")在开关组件的工程应用

A switch 不能用键盘操作
B switch 与 checkbox 语义完全相同
C switch 用 aria-expanded 表达状态
D switch 表达立即生效的开关状态,state 用 aria-checked,优先用原生 checkbox + role="switch" ✓ 正确答案
#

20. ARIA Tooltip 与自定义 Tooltip 的可访问性工程边界

A tooltip 用 aria-controls 关联即可
B Tooltip 应获取焦点以方便读屏
C 触屏用户也能方便触发 tooltip
D Tooltip 不应作为关键信息的唯一载体,关键信息应通过可见文本或 aria-label 提供 ✓ 正确答案
#

21. ARIA Carousel Pattern 在轮播组件的工程实践

A 轮播应自动抓取焦点
B 自动播放轮播应提供暂停、尊重 prefers-reduced-motion、用 aria-live="off" 避免频繁播报 ✓ 正确答案
C 轮播自动播放时需频繁播报每张
D 轮播不需要键盘导航
#

22. ARIA Table vs 原生 <table> 在数据展示的工程取舍

A 所有表格都应改成 role="grid"
B 纯展示数据优先用原生 table(含 caption/th scope),可交互表格用 grid,原生表达不了才用 ARIA table ✓ 正确答案
C ARIA table 自带原生 table 的全部行为
D 原生 table 不需要表头语义