给 AI Agent 提供页面感知时,为什么优先用可访问性树(accessibility tree)快照而不是原始 HTML DOM 或截图?
本文解释 AI Agent 为何优先采用可访问性树快照而非原始 HTML DOM,权衡 token 成本、语义密度、可操作元素识别,并给出具体场景与失败边界。
Web 可访问性专题面试题第 1 页,显示第 1–50 题,共找到 90 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
本文解释 AI Agent 为何优先采用可访问性树快照而非原始 HTML DOM,权衡 token 成本、语义密度、可操作元素识别,并给出具体场景与失败边界。
围绕“定位器依赖 accessible name 时,浏览器如何计算元素的可访问名称,多个命名来源冲突时哪个生效”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确命名来源优先级顺序及由此导致的定位失败诊断。
围绕“aria-hidden="true" 与 display:none 对基于可访问性树的 Agent 感知有什么本质区”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确两者在可访问性树中的可见性差异及对 Agent 决策的误导风险。
解释 getByRole 为何用可访问性语义替代 CSS/XPath 的结构依赖,包含角色名称计算机制,对比结构与语义定位在重构下的差异,并给出失效边界。
围绕“为多模态 Agent 选择观察方式时,什么任务截图优于可访问性树,什么任务反之”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确按视觉布局依赖度与 token 成本划分观察方式的判据。
围绕“MCP Roots 向服务端暴露客户端可访问的文件系统边界,roots/list_changed 通知何时触发”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 roots 是建议性边界而非强制沙箱的定位。
围绕“display:none、visibility:hidden、opacity:0 三种隐藏方式在布局、绘制、命中测试”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须逐维度对比是否占布局空间、是否参与绘制、是否响应事件、过渡动画可用性。
解释 Web Worker 可访问与不可访问的 API 边界:独立全局作用域无 window 和 DOM,但保留网络、存储、定时器等能力,并给出工程判断方法。
围绕“在使用 prefers-reduced-motion 媒体查询覆盖动画时,为什么建议保留原样式而不直接删除 tran”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖从渐进增强角度解释提供静止替代方案,而不是简单禁用所有动效。
围绕“flex 项的 order 属性如何改变视觉顺序?它与 DOM 顺序在键盘导航上有什么需要注意的”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 order 只改视觉顺序,不改变 tab 顺序,影响可访问性,但不要谈及 grid order。
围绕“CSS Grid 如何实现内容与视觉布局的解耦”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明通过 grid-template-areas 或 line placement 在 CSS 重排 DOM 顺序,但必须注意可访问。
围绕“为什么使用 vw 等视口单位设置字号可能导致可访问性问题?应如何限制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖指出视口单位不能单独限制最小/最大尺寸,与 clamp 并存。
围绕“图标用 SVG、图标字体还是雪碧图,从性能与可维护性怎么取舍”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较三类方案在请求数、渲染、可访问性上的差异。
围绕“GraphQL 查询中变量(variables)解决了什么问题,为什么不能直接拼接字符串”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明变量分离查询与参数对缓存、注入安全和复用的价值。
围绕“<fieldset> 和 <legend> 如何为表单提供可访问性分组”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖强调分组 label 的关联作用。
围绕“image 输入类型的名称由来是什么?它提交额外坐标数据但有哪些可访问性问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 image 是一种提交按钮且提交 x/y 坐标,不覆盖图片上传。
围绕“使用 <abbr> 标记缩写时 title 属性的作用是什么,以及为什么需要解释缩写”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕title 提供全称让屏幕阅读器用户理解,最佳实践是首次出现时扩展。
围绕“accesskey 属性可能带来哪些可访问性问题?通常何时使用或不使用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕关注浏览器快捷键冲突和屏幕阅读器用户困惑,一般建议少用。
围绕“当原生 HTML 元素存在时,使用 ARIA role 有哪些注意点?请举例说明裸用 div 的问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明优先使用原生语义,避免冗余 role,例如 <button> 比 div role=button 优越。
讲解 h1-h6 标题层级如何构成文档大纲,跳级对屏幕阅读器导航的干扰、对 SEO 结构理解的影响,以及单一 h1 和按层级嵌套的可操作判断。
围绕“图片的 title 属性和 alt 属性有什么区别,鼠标悬停提示是否应该替换 alt”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕title 提供悬停提示且不被辅助技术支持,alt 是等效文本,两者不能互换。
围绕“<label> 的 for 属性是如何将标签与表单控件关联的?不使用时有什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕for 指向控件 id,可点击标签聚焦,缺少标签影响可访问性。
本题考察 HTML5 语义化结构元素的使用,重点包括 <main> 的个数限制、内容应唯一,以及三个元素的适用场景与可访问性影响。
围绕“使用 <meta http-equiv="refresh"> 实现页面跳转或刷新有哪些可访问性和可用性问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要讨论该机制对辅助技术用户和移动设备的缺点,并对比服务端跳转。
围绕“为表格添加说明文字时 <caption> 和 aria-label 有什么区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕caption 是表格可见的一部分,aria-label 只对辅助技术,两者用途不同。
围绕“video 中的 <track> 元素有那些 kind(如 subtitles、captions)?它们的用途有何不”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖区分字幕(转写)与说明(含音效),并涉及描述。
本题给出 ul 与 p、div 的选择标准:顺序打乱含义不变则用 ul;并说明 li 语义如何让屏幕阅读器播报项数、支持跳转,以及用 div 模拟的失效边界。
围绕“在服务端组件中使用 invariant 条件断言时,是否会泄漏错误细节到客户端”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 invariant 抛出的错误会在服务端被捕获,不会直接暴露给客户端,除非通过 Server Actions 显式返回。
围绕“useAsyncData 的上下文对象(context)中包含哪些信息?如何在数据获取函数中使用它来访问请求头或路由”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 `context` 提供 `request`, `params`, `query` 等属性。
围绕“Nuxt 4 的插件中可以访问哪些上下文对象?这些对象在服务端和客户端是否一致”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明插件中可访问的 $app、$router 等对象及其在 SSR 与 CSR 下的可用性差异。
围绕“为什么在 React SSR 应用中生成可访问性 id 要用 useId 而不是自增计数器或随机数”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 useId 在服务端与客户端生成一致且多根/流式场景不冲突的机制。
围绕“React Native 中动态更新的内容(如表单校验错误、加载完成)如何主动通知读屏器用户”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明 announceForAccessibility 与 accessibilityLiveRegion 的适用时机。
围绕“React Native 页面切换或弹层出现后如何设置无障碍焦点,为什么常见做法是 setAccessibility”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明焦点失控的场景与 setAccessibilityFocus 的 ref 用法及时机。
围绕“React Native 中 accessibilityRole、accessibilityLabel、access”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求区分角色、名称与操作提示三者的朗读语义并给出误用后果。
围绕“React Native 中装饰性图片与信息型图片在无障碍上应如何区别对待”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求说明 accessible={false} 与提供有意义 label 的判断标准。
围绕“React Native 自定义可点击组件需要补哪些无障碍支持才能让 VoiceOver/TalkBack 用户正常”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求列出 accessible、role、状态与自定义动作的最小集合。
围绕“在 Svelte 3.50+ 的 runes 模式下,如何用 `$$` 前缀声明一个响应式变量并确保其在组件外可访问”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 `$$` 是 runes 的命名空间前缀,且仅在 runes 模式下有效;不能泛化为普通变量或 `const` 声明。
围绕“如何通过 predicate 函数精准控制哪些查询应被无效化?请给出具体示例”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明使用函数判断 queryKey、status、variables 等字段以实现细粒度控制。
围绕“用 Playwright 集成 axe-core 做可访问性扫描时如何组织断言与违规处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 AxeBuilder 扫描指定区域、按违规等级断言及对已知问题的豁免管理。
围绕“Testing Library 查询默认为何查不到 display:none 的元素,如何用 hidden 选项改变”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确默认按可访问性过滤隐藏元素及 byRole 的 hidden:true 例外用法。
围绕“Testing Library 查询方法的优先级顺序是什么,为什么 getByRole 应优先于 getByTest”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确按可访问性贴近用户程度的优先级排序理由。
围绕“Testing Library 的 getByRole 如何通过可访问名称区分同名按钮,name 选项依据什么计算”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确可访问名称由 aria-label、关联 label、文本内容按规范计算并可用 name 过滤。
用跨模块唯一符号示例复现 TS4023,解释公开类型的可表达性、显式公共接口和非导出辅助类型,避免用 any 或跳过检查掩盖发布问题。
围绕“TypeScript 中当变量是联合类型时,为什么可以调用所有分支共有的方法”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释联合类型可访问共同成员,给出 string|number 调用 toString 示例,避免扩展方法处理的不同签名。
通过带外壳的按钮解释关闭自动继承后的手动透传,说明 class、ARIA、事件监听器的落点,已声明 props 和 emits 的处理及避免重复绑定的方法。
解释模板 ref 在 setup 时尚未绑定节点、onMounted 后可访问的原因,给出可判空的组件示例,并覆盖条件渲染、卸载竞态、SSR 和后续更新边界。
围绕“无障碍树与 DOM 树有什么区别?ARIA 如何影响无障碍树”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释无障碍树为辅助技术生成的简化树,ARIA 增加信息。
围绕“为什么推荐使用 role=alert 而不是自己设置 aria-live=assertive?它有什么特殊行为”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 alert 自动具有 assertive 特性,且仅用于重要信息。
围绕“在包含多个变更的区域中使用 live region 时,aria-atomic 属性有什么作用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 aria-atomic=true 时播报整个区域,否则只播报变化部分。
围绕“自定义复选框如何向屏幕阅读器传达选中状态?请说明 role=checkbox 和 aria-checked”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释如何模拟原生复选交互,并同步状态属性。