自定义下拉菜单(listbox)中,键盘焦点和视觉高亮如何管理?请说明 aria-activedescendant。
自定义下拉菜单(listbox)中,键盘焦点和视觉高亮如何管理?请说明 aria-activedescendant。 本文先给出可直接复述的结论,再用最小代码说明aria-activedescendant listbox 焦点管理的工作方式、判断依据、项目边界和常见误区。
程序员面试题库第 98 页,收录第 4851–4900 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
自定义下拉菜单(listbox)中,键盘焦点和视觉高亮如何管理?请说明 aria-activedescendant。 本文先给出可直接复述的结论,再用最小代码说明aria-activedescendant listbox 焦点管理的工作方式、判断依据、项目边界和常见误区。
在表单中,label 元素的 for 属性和嵌套文本哪种方式更好?为什么? 本文先给出可直接复述的结论,再用最小代码说明label for 属性与嵌套文本 表单可访问性的工作方式、判断依据、项目边界和常见误区。
只含图标的按钮如何提供可访问名称?请说明 aria-label、alt 文本和 title 标题的最佳实践。 本文先给出可直接复述的结论,再用最小代码说明图标按钮可访问名称 aria-label alt 实践的工作方式、判断依据、项目边界和常见误区。
在自定义组件中绑定 click 事件后,为什么还需要支持键盘触发?如何支持? 本文先给出可直接复述的结论,再用最小代码说明click 事件之外的键盘触发支持的工作方式、判断依据、项目边界和常见误区。
在 HTML 中,键盘 Tab 键的导航顺序与 DOM 顺序不一致时如何处理?请说明 tabindex 的正负值作用。 本文先给出可直接复述的结论,再用最小代码说明tabindex 键盘 Tab 顺序与 DOM 顺序不一致的工作方式、判断依据、项目边界和常见误区。
iOS 和 Android 的读屏软件对键盘焦点管理有什么不同?web 端如何兼顾? 本文先给出可直接复述的结论,再用最小代码说明VoiceOver TalkBack 焦点管理差异的工作方式、判断依据、项目边界和常见误区。
模态弹窗应使用哪些 ARIA 属性和语义结构来正确表示?请说明 role=dialog 和 aria-modal。 本文先给出可直接复述的结论,再用最小代码说明role=dialog 与 aria-modal 弹窗语义的工作方式、判断依据、项目边界和常见误区。
实现一个无障碍模态弹窗时,如何管理焦点循环?请说明焦点陷阱的实现要点。 本文先给出可直接复述的结论,再用最小代码说明模态弹窗焦点陷阱 focus trap 实现的工作方式、判断依据、项目边界和常见误区。
如果一个组件只用鼠标事件(如 onmouseover)来显示内容,键盘和读屏用户将如何无法访问? 本文先给出可直接复述的结论,再用最小代码说明鼠标事件交互对键盘读屏不可访问的工作方式、判断依据、项目边界和常见误区。
为什么说优先使用原生 HTML 语义而不是 ARIA 角色?请举例说明。 本文先给出可直接复述的结论,再用最小代码说明原生 HTML 语义优先于 ARIA 的原因的工作方式、判断依据、项目边界和常见误区。
通过 CSS 移出屏幕的可交互元素(例如 hidden focusable)为何会造成障碍?应如何避免? 本文先给出可直接复述的结论,再用最小代码说明移出屏幕可聚焦元素造成的障碍的工作方式、判断依据、项目边界和常见误区。
页面启动后,如何向屏幕阅读器播报自动更新的区域(如倒计时或状态变化)? 本文先给出可直接复述的结论,再用最小代码说明live region 页面加载时的初始播报的工作方式、判断依据、项目边界和常见误区。
表单必填字段除了视觉号外,还需要什么无障碍提示?aria-required 与 required 属性有何关系? 本文先给出可直接复述的结论,再用最小代码说明aria-required 与 required 属性区别的工作方式、判断依据、项目边界和常见误区。
为什么给一个元素添加 ARIA role 并不会改变其键盘行为?例如将 div 变为 role=button。 本文先给出可直接复述的结论,再用最小代码说明ARIA role 不改变键盘行为 div role=button的工作方式、判断依据、项目边界和常见误区。
在自定义可交互组件(如工具栏)中,什么叫做 roving tabindex?请说明其工作机制。 本文先给出可直接复述的结论,再用最小代码说明roving tabindex 漫游焦点机制 工具栏的工作方式、判断依据、项目边界和常见误区。
如何创建仅对屏幕阅读器可见的文本(比如“跳转到内容”的隐藏链接)?常见实现方式是什么? 本文先给出可直接复述的结论,再用最小代码说明visually hidden 读屏专用文本实现的工作方式、判断依据、项目边界和常见误区。
原生 select 元素在选项变化时会自动播报吗?自定义下拉列表需要模拟什么? 本文先给出可直接复述的结论,再用最小代码说明原生 select 播报与自定义下拉模拟的工作方式、判断依据、项目边界和常见误区。
什么是跳过链接?它如何帮助键盘用户?请说明其工作原理和放置位置。 本文先给出可直接复述的结论,再用最小代码说明跳过链接 skip link 工作原理与位置的工作方式、判断依据、项目边界和常见误区。
为一个按钮绑定空格键操作时,如何避免页面滚动?请说明涉及的默认行为。 本文先给出可直接复述的结论,再用最小代码说明空格键默认滚动 preventDefault 按钮的工作方式、判断依据、项目边界和常见误区。
界面中出现的短暂通知(如 toast)应如何使用 ARIA live region?它适合用 aria-live=assertive 吗? 本文先给出可直接复述的结论,再用最小代码说明toast 通知 aria-live assertive 是否合适的工作方式、判断依据、项目边界和常见误区。
表单输入校验在失去焦点时进行和提交时进行,对屏幕阅读器用户有何不同? 本文先给出可直接复述的结论,再用最小代码说明表单校验 blur 与 submit 读屏差异的工作方式、判断依据、项目边界和常见误区。
如何确保键盘用户能清晰地看到焦点位置?请给出焦点指示器的设计标准和实现方式。 本文先给出可直接复述的结论,再用最小代码说明焦点指示器 focus style 可见性标准的工作方式、判断依据、项目边界和常见误区。
点击劫持中攻击者如何用透明 iframe 诱导用户点击,前端如何检测被嵌套? 本文先给出可直接复述的结论,再用最小代码说明点击劫持 UI Redressing frame busting的工作方式、判断依据、项目边界和常见误区。
X-Frame-Options 的 DENY 与 SAMEORIGIN 如何防点击劫持,为什么它正在被 CSP 取代? 本文先给出可直接复述的结论,再用最小代码说明点击劫持 X-Frame-Options DENY SAMEORIGIN的工作方式、判断依据、项目边界和常见误区。
会话 Cookie 的 Secure、HttpOnly、SameSite 三个属性分别针对什么攻击场景? 本文先给出可直接复述的结论,再用最小代码说明Cookie Secure HttpOnly SameSite 会话安全的工作方式、判断依据、项目边界和常见误区。
Access-Control-Allow-Origin 等 CORS 响应头如何配置,通配符与凭证为什么不能共存? 本文先给出可直接复述的结论,再用最小代码说明CORS Access-Control-Allow-Origin 通配符 credentials的工作方式、判断依据、项目边界和常见误区。
前端跨域请求携带 Cookie 需要在 fetch/XHR 和浏览器两端各满足什么条件? 本文先给出可直接复述的结论,再用最小代码说明fetch credentials include CORS 跨域 Cookie的工作方式、判断依据、项目边界和常见误区。
反射任意 Origin 且允许凭证的 CORS 错误配置会带来什么后果? 本文先给出可直接复述的结论,再用最小代码说明CORS 错误配置 任意 Origin credentials 风险的工作方式、判断依据、项目边界和常见误区。
CORS 中什么样的请求会触发预检(preflight)请求? 本文先给出可直接复述的结论,再用最小代码说明CORS 预检请求 OPTIONS 触发条件的工作方式、判断依据、项目边界和常见误区。
CORS 是安全机制还是放松机制,它防的到底是什么? 本文先给出可直接复述的结论,再用最小代码说明CORS 同源策略 安全边界 本质的工作方式、判断依据、项目边界和常见误区。
为什么做了输出编码还需要 CSP,CSP 能挡住哪类漏网的 XSS? 本文先给出可直接复述的结论,再用最小代码说明CSP 纵深防御 XSS 第二层防线的工作方式、判断依据、项目边界和常见误区。
CSP 中 script-src、default-src、object-src 等常用指令各控制什么资源加载? 本文先给出可直接复述的结论,再用最小代码说明CSP 指令 script-src default-src的工作方式、判断依据、项目边界和常见误区。
CSP 中 nonce 与 hash 两种白名单内联脚本的方式各自适用什么场景? 本文先给出可直接复述的结论,再用最小代码说明CSP nonce hash 内联脚本的工作方式、判断依据、项目边界和常见误区。
如何用 Content-Security-Policy-Report-Only 灰度上线一条 CSP 策略? 本文先给出可直接复述的结论,再用最小代码说明CSP Report-Only 灰度 report-uri的工作方式、判断依据、项目边界和常见误区。
为什么 CSP 中的 unsafe-inline 和 unsafe-eval 会大幅削弱 XSS 防御? 本文先给出可直接复述的结论,再用最小代码说明CSP unsafe-inline unsafe-eval 风险的工作方式、判断依据、项目边界和常见误区。
CSRF 攻击成立需要哪些前提条件,为什么浏览器会自动携带 Cookie? 本文先给出可直接复述的结论,再用最小代码说明CSRF 攻击条件 Cookie 自动携带的工作方式、判断依据、项目边界和常见误区。
为什么规范要求 GET 不做状态变更,违反它在 CSRF 下有什么后果? 本文先给出可直接复述的结论,再用最小代码说明CSRF GET 请求 幂等 状态变更的工作方式、判断依据、项目边界和常见误区。
纯 JSON API 要求自定义请求头,为什么这能在一定程度上天然抵御 CSRF? 本文先给出可直接复述的结论,再用最小代码说明CSRF JSON API 自定义请求头 预检的工作方式、判断依据、项目边界和常见误区。
校验 Origin/Referer 头来防 CSRF 可靠吗,有什么边界情况? 本文先给出可直接复述的结论,再用最小代码说明CSRF Origin Referer 校验 可靠性的工作方式、判断依据、项目边界和常见误区。
CSRF Token 应该如何生成、下发与校验才有效? 本文先给出可直接复述的结论,再用最小代码说明CSRF Token 生成 校验 Synchronizer Token的工作方式、判断依据、项目边界和常见误区。
CSRF 和 XSS 有什么本质区别,为什么有了 XSS 后 CSRF 防御会失效? 本文先给出可直接复述的结论,再用最小代码说明CSRF XSS 区别 关系的工作方式、判断依据、项目边界和常见误区。
路径穿越(../)在读文件与写文件两个场景中分别如何产生,如何防御? 本文先给出可直接复述的结论,再用最小代码说明路径穿越 Path Traversal 目录遍历 防御的工作方式、判断依据、项目边界和常见误区。
服务端处理用户上传的压缩包或图片时,如何防解压炸弹与像素炸弹耗尽资源? 本文先给出可直接复述的结论,再用最小代码说明解压炸弹 像素炸弹 文件上传 资源耗尽的工作方式、判断依据、项目边界和常见误区。
允许用户上传 SVG 或 HTML 文件为什么会变成存储型 XSS,如何安全地提供下载? 本文先给出可直接复述的结论,再用最小代码说明SVG 上传 XSS 文件下载 Content-Disposition的工作方式、判断依据、项目边界和常见误区。
上传的文件应该如何存储与命名,才能避免被当作脚本执行形成 WebShell? 本文先给出可直接复述的结论,再用最小代码说明文件上传 WebShell 存储 重命名 执行权限的工作方式、判断依据、项目边界和常见误区。
命令注入和 SQL 注入的共同根源是什么,调用系统命令时如何安全传参? 本文先给出可直接复述的结论,再用最小代码说明命令注入 OS Command Injection 防御的工作方式、判断依据、项目边界和常见误区。
除 SQL 外,LDAP、XPath、模板引擎注入的共同防御思路是什么? 本文先给出可直接复述的结论,再用最小代码说明注入 LDAP XPath 模板 SSTI 防御的工作方式、判断依据、项目边界和常见误区。
服务端模板注入(SSTI)为什么比普通 XSS 危害更高,如何避免把用户输入当模板编译? 本文先给出可直接复述的结论,再用最小代码说明SSTI 模板注入 服务端 危害的工作方式、判断依据、项目边界和常见误区。
什么是混合内容问题,HSTS 如何防止 HTTPS 站点被降级回 HTTP? 本文先给出可直接复述的结论,再用最小代码说明HSTS 混合内容 HTTPS 降级的工作方式、判断依据、项目边界和常见误区。
使用 window.postMessage 跨窗口通信时,为什么必须校验 event.origin 并指定 targetOrigin? 本文先给出可直接复述的结论,再用最小代码说明postMessage origin 校验 跨窗口通信 安全的工作方式、判断依据、项目边界和常见误区。