自定义下拉菜单(listbox)中,键盘焦点和视觉高亮如何管理?请说明 aria-activedescendant。
围绕“自定义下拉菜单(listbox)中,键盘焦点和视觉高亮如何管理?请说明 aria-activedescendant”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释通过 aria-activedescendant 让读屏跟随,而焦点保持在输入框内。
程序员面试题库第 98 页,收录第 4851–4900 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
围绕“自定义下拉菜单(listbox)中,键盘焦点和视觉高亮如何管理?请说明 aria-activedescendant”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释通过 aria-activedescendant 让读屏跟随,而焦点保持在输入框内。
围绕“在表单中,label 元素的 for 属性和嵌套文本哪种方式更好?为什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讨论两种方式均有效,但 for 更灵活,避免多次嵌套时歧义。
围绕“只含图标的按钮如何提供可访问名称?请说明 aria-label、alt 文本和 title 标题的最佳实践”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须选择合适方法,通常 aria-label 或替代文本。
围绕“在自定义组件中绑定 click 事件后,为什么还需要支持键盘触发?如何支持”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明键盘事件如 Enter 和空格,以及原生按钮自动支持。
围绕“在 HTML 中,键盘 Tab 键的导航顺序与 DOM 顺序不一致时如何处理?请说明 tabindex 的正负值作用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 tabindex=0、-1 和正值的区别,并说明为何应避免正值。
围绕“iOS 和 Android 的读屏软件对键盘焦点管理有什么不同?web 端如何兼顾”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明可能没有 Tab 键,仍需要正确的语义和支持焦点。
围绕“模态弹窗应使用哪些 ARIA 属性和语义结构来正确表示?请说明 role=dialog 和 aria-modal”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 role、aria-modal、labelledby、describedby 等关键属性。
围绕“实现一个无障碍模态弹窗时,如何管理焦点循环?请说明焦点陷阱的实现要点”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释焦点保持在弹窗内、恢复焦点到触发元素。
围绕“如果一个组件只用鼠标事件(如 onmouseover)来显示内容,键盘和读屏用户将如何无法访问”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明需提供等价体验,如 hover 与 focus 结合,或不采用 hover。
围绕“为什么说优先使用原生 HTML 语义而不是 ARIA 角色?请举例说明”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 ARIA 不改变行为,原生如 button、input 更好。
围绕“通过 CSS 移出屏幕的可交互元素(例如 hidden focusable)为何会造成障碍?应如何避免”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明隐藏但可聚焦元素会让键盘用户迷失,用视觉隐藏类解决。
围绕“页面启动后,如何向屏幕阅读器播报自动更新的区域(如倒计时或状态变化)”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明注入内容顺序及延迟重要性,避免读屏过早读出。
围绕“表单必填字段除了视觉号外,还需要什么无障碍提示?aria-required 与 required 属性有何关系”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明原生 required 已可被读屏识别,ARIA 用于增强。
围绕“为什么给一个元素添加 ARIA role 并不会改变其键盘行为?例如将 div 变为 role=button”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明必须用 JavaScript 添加键盘事件、tabindex 等。
围绕“在自定义可交互组件(如工具栏)中,什么叫做 roving tabindex?请说明其工作机制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释只有一个 tabindex=0,箭头键移动焦点。
围绕“如何创建仅对屏幕阅读器可见的文本(比如“跳转到内容”的隐藏链接)?常见实现方式是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 CSS 类实现(clip、position 等)。
围绕“原生 select 元素在选项变化时会自动播报吗?自定义下拉列表需要模拟什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须明确原生 select 已无障碍,自定义需实现列表和前导键等。
围绕“什么是跳过链接?它如何帮助键盘用户?请说明其工作原理和放置位置”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释跳到主内容的目标锚点,且链接默认隐藏但聚焦时可见。
围绕“为一个按钮绑定空格键操作时,如何避免页面滚动?请说明涉及的默认行为”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明空格默认滚动页面,需要 preventDefault,但需注意时机。
围绕“界面中出现的短暂通知(如 toast)应如何使用 ARIA live region?它适合用 aria-live=a”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分 toast 根据重要性选择 polite 或 assertive。
围绕“表单输入校验在失去焦点时进行和提交时进行,对屏幕阅读器用户有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较两类机制的可感知性。
围绕“如何确保键盘用户能清晰地看到焦点位置?请给出焦点指示器的设计标准和实现方式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出对比度要求(如 3:1)和 outline 实现。
围绕“点击劫持中攻击者如何用透明 iframe 诱导用户点击,前端如何检测被嵌套”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明视觉欺骗的攻击构造及 frame busting 脚本的局限(可被 sandbox 禁掉)。
围绕“X-Frame-Options 的 DENY 与 SAMEORIGIN 如何防点击劫持,为什么它正在被 CSP 取代”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明两个取值的语义及该头部不支持多域名白名单的局限。
围绕“会话 Cookie 的 Secure、HttpOnly、SameSite 三个属性分别针对什么攻击场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须将三个属性分别对应中间人窃听、脚本窃取、跨站发送三类威胁。
围绕“Access-Control-Allow-Origin 等 CORS 响应头如何配置,通配符与凭证为什么不能共存”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明带 Cookie 请求时通配符被浏览器拒绝的规则及正确写法。
围绕“前端跨域请求携带 Cookie 需要在 fetch/XHR 和浏览器两端各满足什么条件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须同时回答客户端 credentials 设置与服务端响应头两个必要条件。
围绕“反射任意 Origin 且允许凭证的 CORS 错误配置会带来什么后果”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明动态回显 Origin 与 Allow-Credentials 组合等于关闭同源保护。
围绕“CORS 中什么样的请求会触发预检(preflight)请求”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须列出非简单请求方法、自定义头、特定 Content-Type 三类触发条件。
围绕“CORS 是安全机制还是放松机制,它防的到底是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须澄清 CORS 保护的是资源读取而非请求发送,服务端仍需鉴权与 CSRF 防护。
围绕“为什么做了输出编码还需要 CSP,CSP 能挡住哪类漏网的 XSS”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须定位 CSP 为编码遗漏时的纵深防御并说明其限制(不能防同域脚本滥用)。
围绕“CSP 中 script-src、default-src、object-src 等常用指令各控制什么资源加载”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按指令说明资源类别与回退关系(default-src 兜底)。
围绕“CSP 中 nonce 与 hash 两种白名单内联脚本的方式各自适用什么场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较每次响应随机值与静态哈希在动态页面、静态站点的适用性及实现成本。
围绕“如何用 Content-Security-Policy-Report-Only 灰度上线一条 CSP 策略”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明仅上报不阻断的验证流程与违规报告字段的使用。
围绕“为什么 CSP 中的 unsafe-inline 和 unsafe-eval 会大幅削弱 XSS 防御”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明二者分别放开内联脚本与字符串执行后门导致的绕过面。
围绕“CSRF 攻击成立需要哪些前提条件,为什么浏览器会自动携带 Cookie”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确跨站请求自动带凭据的机制与攻击成立的三个前提。
围绕“为什么规范要求 GET 不做状态变更,违反它在 CSRF 下有什么后果”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 GET 语义与预加载、<img> 标签触发的风险链。
围绕“纯 JSON API 要求自定义请求头,为什么这能在一定程度上天然抵御 CSRF”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释简单请求与预检请求的分界及自定义头触发 CORS 预检的机制。
围绕“校验 Origin/Referer 头来防 CSRF 可靠吗,有什么边界情况”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确该手段能覆盖什么、在隐私策略或代理剥离头部时的退化行为,不把它当作唯一防线展开。
围绕“CSRF Token 应该如何生成、下发与校验才有效”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Token 的随机性、与 session 绑定、每次请求校验的要求,以及双重提交 Cookie 变体的差异。
围绕“CSRF 和 XSS 有什么本质区别,为什么有了 XSS 后 CSRF 防御会失效”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 XSS 可读取页面内 Token 从而绕过 CSRF 防御的依赖关系,不分别展开两种攻击的全部细节。
围绕“路径穿越(../)在读文件与写文件两个场景中分别如何产生,如何防御”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖完整回答要覆盖读取任意文件与上传覆盖任意路径两类后果,并给出规范化后前缀校验与白名单的方案。
围绕“服务端处理用户上传的压缩包或图片时,如何防解压炸弹与像素炸弹耗尽资源”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明高压缩比/超大声明尺寸的攻击原理与大小限额、解压后尺寸再校验的做法。
围绕“允许用户上传 SVG 或 HTML 文件为什么会变成存储型 XSS,如何安全地提供下载”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 SVG 可内嵌脚本及同域直出的风险,并给出强制 attachment 下载或独立域名的对策。
围绕“上传的文件应该如何存储与命名,才能避免被当作脚本执行形成 WebShell”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出非 Web 根目录存储、随机重命名、禁执行权限、静态域分离的组合。
围绕“命令注入和 SQL 注入的共同根源是什么,调用系统命令时如何安全传参”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须归纳为「数据被拼进解释器」这一共性,并给出避免 shell、参数数组调用的做法。
围绕“除 SQL 外,LDAP、XPath、模板引擎注入的共同防御思路是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须抽象出「不可信输入进入表达式解释器」的统一模型与各类型的参数化/沙箱手段,不逐一展开语法。
围绕“服务端模板注入(SSTI)为什么比普通 XSS 危害更高,如何避免把用户输入当模板编译”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明模板执行在服务端可达 RCE 的后果及渲染与编译分离的原则。
围绕“什么是混合内容问题,HSTS 如何防止 HTTPS 站点被降级回 HTTP”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须分别回答被动/主动混合内容的阻断行为与 HSTS 的预加载机制及首次访问的空窗期。
围绕“使用 window.postMessage 跨窗口通信时,为什么必须校验 event.origin 并指定 targ”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确接收端不校验来源导致的伪造消息与发送端用 * 导致的数据泄露两类风险。