# 1. <datalist> 与 <select> 的协作模式及自动补全下的边界 A <datalist> 通过 list 属性为 input 提供非强制性的自动补全建议 ✓ 正确答案 B <datalist> 会阻止用户输入列表之外的值 C <select> 允许用户自由输入任意文本 D <datalist> 的选项可以自定义渲染样式
# 2. <figure>/<figcaption> 在内容引用与媒体描述上的语义价值 A <figure> 内必须包含 <figcaption> B <figcaption> 可以出现在 <figure> 的任意位置 C <figure> 表示自包含、可独立迁移的内容单元,<figcaption> 为其提供标题说明 ✓ 正确答案 D <figure> 只能用于图片
# 3. HTML inert 属性与对话框焦点管理的取舍(含 SPA 多对话框栈) A inert 元素只是视觉变灰,仍可被键盘聚焦 B inert 使元素不可交互、不可聚焦,并从 Tab 顺序与可访问性树中移除 ✓ 正确答案 C inert 等价于 display: none D dialog.showModal() 打开后页面其余部分仍可正常交互
# 4. search/details[name]/selectlist 等新表单元素的可访问性差异 A search 是语义化搜索地标,details 提供原生展开收起,selectlist 尚处实验阶段需降级策略 ✓ 正确答案 B selectlist 已在所有浏览器稳定可用 C search 容器会自动拦截表单提交 D details 的 name 属性无法实现互斥手风琴
# 5. 原生表单约束验证(required、pattern、type、:invalid)与自定义校验的协作 A 原生验证无法与自定义校验共存 B novalidate 关闭原生验证后浏览器仍会显示错误气泡 C 使用 setCustomValidity 可把自定义业务规则纳入原生验证体系 ✓ 正确答案 D pattern 属性可以表达跨字段依赖规则
# 6. FormData、FormAssociated Custom Elements 与 submit 事件的关系 A 自定义元素无法参与原生表单提交 B 只有含 name 的成功控件才会进入 FormData ✓ 正确答案 C submit 事件在表单校验失败时仍会触发 D form-associated 自定义元素必须自己实现 XMLHttpRequest 才能提交
# 7. 原生 requestSubmit() 与 form.submit() 的事件触发、可访问性边界差异 A form.submit() 会触发 submit 事件 B requestSubmit() 不执行约束验证 C requestSubmit() 模拟用户提交,触发 submit 事件并执行约束验证 ✓ 正确答案 D form.submit() 会先聚焦非法字段再提交
# 8. enctype=multipart/form-data 与 FormData.entries 在文件+JSON 混合提交的工程价值 A multipart/form-data 中文件必须以 base64 编码 B FormData 可在同一请求中混合 JSON 字段与文件,由浏览器自动设置带 boundary 的 Content-Type ✓ 正确答案 C 使用 FormData 时必须手动设置 Content-Type 头 D enctype=multipart/form-data 不能携带文本字段
# 9. novalidate 与 JS 校验回退方案的边界 A 使用 novalidate 后仍需 JS 自行实现错误提示与提交阻断 ✓ 正确答案 B novalidate 关闭原生验证后,浏览器仍负责错误提示与焦点定位 C novalidate 会让浏览器忽略所有 input 的 required D novalidate 只影响 button 元素
# 10. HTML5 输入类型(email、url、tel、number、date)在不同浏览器下的体验差异 A 所有浏览器对 type=date 都渲染原生日历控件 B type=tel 在移动端可唤起数字键盘,date 的控件与校验各端差异大,需特性检测降级 ✓ 正确答案 C type=number 在所有浏览器行为完全一致 D 声明 type=email 后无需任何 JS 校验
# 11. 语义化标签与文档大纲如何影响 SEO 与辅助技术 A 语义化标签让辅助技术可按标题与地标导航,也帮助搜索引擎理解页面结构 ✓ 正确答案 B 使用多个 h1 是提升 SEO 的最佳做法 C 标题层级只影响视觉,不影响无障碍 D section 可以随意代替 div 使用且无副作用
# 12. autocomplete 属性对密码管理器和自动填充的影响 A 密码管理器依赖 current-password 与 new-password 区分登录与注册场景 ✓ 正确答案 B autocomplete="off" 能强制阻止所有浏览器自动填充 C 自动填充只发生在鼠标点击,不会影响 JS 状态 D autocomplete 属性只对输入框生效,对 select 无效
# 13. <input inputmode> 与移动端虚拟键盘的精细化控制 A inputmode="numeric" 会同时改变输入值的语义与校验规则 B inputmode 只影响虚拟键盘布局,不影响语义与校验 ✓ 正确答案 C inputmode 属性在桌面浏览器上会强制弹出软键盘 D type="number" 与 inputmode="decimal" 效果完全相同
# 14. 表单字段聚焦时 preventScroll 的滚动行为治理 A focus({ preventScroll: true }) 只禁止本次聚焦引发的滚动 ✓ 正确答案 B focus({ preventScroll: true }) 会完全禁用页面滚动 C preventScroll 只对移动端生效 D focus() 永远不应该传递任何选项
# 15. patternMismatch/tooShort/rangeUnderflow 等校验状态在自定义错误 UI 的应用 A ValidityState 只有一个 valid 属性 B tooShort 表示输入包含非法字符 C patternMismatch 表示输入不匹配 pattern 正则 ✓ 正确答案 D rangeUnderflow 表示数值超过最大值
# 16. input[type=reset] 与受控组件冲突的边界与浏览器一致性 A 点击 reset 按钮会触发 submit 事件 B 原生 reset 把控件恢复为 HTML 默认值且不触发 input/change 事件 ✓ 正确答案 C 受控组件与原生 reset 天然完全兼容 D reset 按钮在 React 中会自动同步状态
# 17. 表单重置事件 reset 与字段默认值的关系 A form.reset() 会触发 input 事件 B reset 事件在表单校验失败时不会触发 C form.reset() 把控件恢复为当前 JS 设置的最新值 D reset 事件的默认行为可以 preventDefault 取消 ✓ 正确答案
# 18. <select> 的 <optgroup> 分组与原生搜索过滤(listbox popover 实验) A optgroup 会改变选项的提交值 B select 的选项数量不影响任何性能 C selectlist 已在所有主流浏览器稳定支持搜索 D optgroup 通过 label 分组展示,不改变提交值,并改善无障碍朗读 ✓ 正确答案
# 19. <dialog> + method="dialog" 的表单提交与 close 返回值(returnValue)在关闭语义中的工程应用 A method="dialog" 的表单提交会触发 submit 事件 B dialog.returnValue 只能通过 close() 参数设置 C 表单 method="dialog" 提交后关闭对话框并把按钮 value 写入 returnValue ✓ 正确答案 D method="dialog" 会先执行约束验证再关闭
# 20. <textarea> 的 wrap 属性与 IME 中文输入下的换行行为 A wrap="soft" 时提交值中会包含软换行 B wrap="hard" 在折行处插入换行符,提交值包含硬换行 ✓ 正确答案 C IME 组词过程中按回车会直接插入换行 D wrap 属性不影响提交值
# 21. 事件捕获、目标和冒泡阶段的执行顺序 A 冒泡阶段先于捕获阶段执行 B capture=true 的监听器在冒泡阶段触发 C preventDefault 会阻止事件继续传播 D 事件传播顺序为捕获、目标、冒泡 ✓ 正确答案
# 22. 标题层级、地标元素与可访问性树的关系 A 可访问性树从 DOM 树派生,标题与地标分别映射为 heading 与 landmark 角色 ✓ 正确答案 B display:none 的元素仍会出现在可访问性树中 C CSS 类名可以改变元素的可访问性角色 D aria-hidden 与 display:none 效果完全相同
# 23. 事件委托的实现原理与性能边界 A 所有 DOM 事件都可以通过委托捕获 B e.target 一定是委托监听的元素本身 C 事件委托会增加每个子元素的监听器数量 D 事件委托依赖冒泡,focus/blur 等不冒泡事件需特殊处理 ✓ 正确答案
# 24. DOM 操作的批量更新与回流/重绘成本控制 A 重绘一定触发回流 B DocumentFragment 会显著增加回流次数 C 读取 offsetWidth 后再写入样式可能造成多次同步布局 ✓ 正确答案 D transform 动画必然触发整页回流
# 25. Element.animate()(Web Animations API)与 CSS 动画的并行与冲突解决 A 同一属性被 CSS 动画与 Element.animate 同时作用时,通常 Element.animate 的动画优先 ✓ 正确答案 B Element.animate() 与 CSS 动画完全互斥 C 动画结束后效果永远保留 D getAnimations() 只能获取 CSS 动画
# 26. scrollIntoView({ behavior, block, inline }) 与 scroll-behavior: smooth 的协作 A scrollIntoView 的 behavior: 'instant' 无法覆盖 CSS 的 scroll-behavior: smooth B smooth 滚动是同步的,调用后立即可以读到新位置 C block: 'nearest' 适合列表焦点跟随,避免大幅跳动 ✓ 正确答案 D scroll-behavior 只影响锚点跳转,不影响 scrollIntoView
# 27. MutationObserver 与 IntersectionObserver 联动实现无限滚动与虚拟列表的取舍 A 无限滚动可用 IntersectionObserver 观察底部哨兵元素触发加载 ✓ 正确答案 B IntersectionObserver 的回调是同步执行的 C MutationObserver 用于判断元素是否进入视口 D 虚拟列表不需要任何 Observer API
# 28. Speculation Rules API 与现有 HTML5 语义的协同 A Speculation Rules API 只能预取图片资源 B 预渲染页面在后台可自由提交表单 C Speculation Rules API 通过声明预取/预渲染规则降低导航延迟,依赖真实链接结构 ✓ 正确答案 D speculationrules 与 link rel="prefetch" 完全互斥
# 29. MutationObserver、IntersectionObserver、ResizeObserver 的能力与场景 A IntersectionObserver 适合懒加载与曝光埋点 ✓ 正确答案 B ResizeObserver 用于观察 DOM 节点增删 C MutationObserver 观察元素尺寸变化 D 三个 Observer 的回调都是同步逐个执行的
# 30. ResizeObserver 的 box 选项 与现代框架(React/Vue)的协作边界 A content-box 包含 padding 与 border B ResizeObserver 回调中修改状态不会引起任何循环 C device-pixel-content-box 提供设备像素级精度,可避免亚像素误差 ✓ 正确答案 D 组件卸载后 RO 观察器会自动清理
# 31. 语义化结构与原生表单校验如何协同构建可访问表单 A 校验错误只靠输入框红色边框表达即可 B 原生表单校验与语义结构、ARIA 状态协同才能构成完整可访问表单 ✓ 正确答案 C label 关联在可访问表单中可有可无 D aria-invalid 与 validityState 不需要保持一致
# 32. 无障碍地标(<nav>、<main>、<header>、<footer>)与 ARIA landmark 在 SPA 单页应用中的回退方案 A SPA 路由切换无需更新 document.title B 路由切换后聚焦主内容并同步标题,用 aria-live 播报,可让 SPA 导航具备无障碍等价性 ✓ 正确答案 C main 元素在 SPA 中不能使用 tabindex D ARIA landmark 只在 MPA 中有效
# 33. <output>、<progress>、<meter> 三种状态元素的语义与无障碍朗读差异 A meter 强调当前值在优/良/差阈值区间中的位置 ✓ 正确答案 B progress 的语义是表达结果计算 C output 用于展示任务完成百分比 D 三个元素的无障碍朗读方式完全相同
# 34. <time datetime=""> 在国际化与日历系统下的解析策略与微格式(microformats)联动 A time 元素没有 datetime 时浏览器会自动解析显示文本 B 农历日期可以直接写入 datetime 且被所有浏览器标准化解析 C datetime 属性须符合规范时间语法,为程序提供与展示语言无关的机器可读时间 ✓ 正确答案 D time 只能表示日期,不能表示时间
# 35. <article>、<section>、<aside> 的语义差异与误用场景 A section 可以完全替代 div 作为纯样式容器 B aside 必须位于页面最右侧 C article 表示可独立分发的内容单元,section 表示带标题的主题分组 ✓ 正确答案 D article 内不能再嵌套 article
# 36. role 属性补充语义时,如何避免与原生语义冲突 A role 属性会同时改变元素的行为与外观 B 给 div 加 role="button" 后就自动支持键盘操作 C 给原生语义元素随意覆盖 role 会造成语义与行为错位 ✓ 正确答案 D nav 上必须额外声明 role="navigation"
# 37. HTML 实体与 Unicode 字符在源码与展示中的转义边界 A 中文等 Unicode 字符在 HTML 中必须写成实体 B 属性值中的引号永远不需要转义 C script 内的 HTML 实体会被解析成字符 D 文本内容中的 < 与 & 需要转义,普通 Unicode 字符可直接书写 ✓ 正确答案
# 38. HTML 解析器在容错时的隐式标签闭合规则 A 浏览器遇到不规范 HTML 会直接报错停止解析 B 隐式闭合规则各浏览器实现完全不同 C p 遇到块级元素会自动闭合,隐式闭合规则已被 WHATWG 标准化 ✓ 正确答案 D 表格内任何位置的文本都会被正常渲染在表格内
# 39. <template> 与动态模板字符串在 XSS 防护上的差异 A <template> 内的脚本会被立即执行 B <template> 提供惰性解析的文档片段,但插入的数据仍需转义 ✓ 正确答案 C 动态模板字符串会自动转义用户输入 D innerHTML 注入的字符串是安全的
# 40. <small>、<strong>、<em> 标签的现代语义权重与视觉表现差异 A small 的语义就是字号更小的文本 B 三个标签只能用浏览器默认样式 C strong 的语义权重低于 em D em 表示语气强调,strong 表示重要性强调,small 表示附属细则 ✓ 正确答案
# 41. <ruby>/<rt> 在 CJK 注音排版的浏览器支持矩阵 A 所有浏览器对 ruby-position 的支持完全一致 B rp 元素为不支持 ruby 的浏览器提供括号回退 ✓ 正确答案 C ruby 只能用于日语 D rt 元素可以省略且不影响语义
# 42. Content-Security-Policy 报告的 securitypolicyviolation 事件在前端埋点的应用 A securitypolicyviolation 事件在资源被阻止前触发且资源仍会加载 B 埋点上报代码不受 CSP 限制 C CSP 违规只能通过服务端日志发现 D 该事件携带 blockedURI 与 violatedDirective,可用于实时统计与策略调优 ✓ 正确答案
# 43. output 与 progress 元素在异步结果可视化的语义价值 A output 表达计算或异步结果,progress 表达任务进行中的进度 ✓ 正确答案 B progress 适合展示异步结果值 C output 的变化无法被辅助技术感知 D 异步反馈只能用 JavaScript 弹窗实现
# 44. 表单字段 form-associated 自定义元素的可观察性与 React 受控组件协作 A 自定义元素需派发 input/change 事件并实现 attributeChangedCallback,才能与受控组件协作 ✓ 正确答案 B 自定义元素内部状态变化会自动触发 React 重渲染 C form-associated 自定义元素无法参与原生表单提交 D ElementInternals 只负责样式
# 45. 表单的 autocomplete Token(section-、billing street-address) A billing 令牌表示浏览器账单金额 B section- 前缀用于区分同一字段的不同语义分组 ✓ 正确答案 C street-address 只对 select 生效 D autocomplete 令牌之间没有组合规则
# 46. inputmode 与 autocomplete 属性如何协同提升移动端输入效率 A inputmode 控制键盘形态,autocomplete 控制自动填充,二者协同减少移动端输入成本 ✓ 正确答案 B inputmode 决定是否自动填充字段 C autocomplete 属性在移动端无效 D inputmode="numeric" 会自动校验输入为数字
# 47. pattern 属性使用正则约束输入格式时,如何处理中文、Unicode 与跨浏览器的兼容差异 A pattern 的 [a-z] 可以匹配所有中文字符 B 所有浏览器对 pattern 正则的支持完全一致 C pattern 校验失败会阻止用户继续输入 D pattern 正则默认整体匹配输入值,字符类默认只覆盖 ASCII,中文需显式 Unicode 范围 ✓ 正确答案
# 48. formaction 与 formmethod 属性在多提交按钮场景下如何实现同一表单不同行为 A 按钮上的 formaction/formmethod 会覆盖表单级设置,且可用 event.submitter 区分触发源 ✓ 正确答案 B formaction 只能设置在 form 元素上 C formnovalidate 只对表单生效 D 同一表单内所有按钮必须提交到同一地址
# 49. 使用 fieldset 与 legend 嵌套结构对辅助技术与屏幕阅读器朗读体验的提升 A legend 可以放在 fieldset 任意位置 B fieldset 只能用于单选按钮分组 C 屏幕阅读器朗读组内控件时会把 legend 文本作为上下文前缀 ✓ 正确答案 D 对一组控件设置 disabled 必须逐个操作
# 50. autofocus 属性在 SPA 路由切换时与无障碍焦点管理的冲突如何处理 A autofocus 只在页面初始加载生效,SPA 路由切换需 JS 显式管理焦点 ✓ 正确答案 B autofocus 在 SPA 每次路由切换后都会重新生效 C 自动聚焦不会影响辅助技术用户 D 模态框打开时无需管理焦点
# 51. showPicker() 程序化打开原生日期/颜色/文件选择器的浏览器兼容性与无障碍回退 A showPicker() 需要用户手势触发,且需特性检测并提供原生回退 ✓ 正确答案 B showPicker() 可以在任意时机调用且所有浏览器都支持 C 隐藏原生 input 后仅靠 showPicker 是最佳实践 D showPicker 失败时会自动弹出错误提示
# 52. setCustomValidity/reportValidity 与 validity 状态对象(validityState)在自定义校验 UI 的细节集成 A setCustomValidity('') 会让控件永远处于非法状态 B checkValidity() 只返回校验结果,reportValidity() 会聚焦错误并显示提示 ✓ 正确答案 C validityState 只能表达 customError 一种状态 D 自定义校验 UI 无法与原生校验共存
# 53. HTML 表单 :invalid、:valid、:in-range、:out-of-range 伪类在 UX 设计的取舍 A :valid 表示表单已提交成功 B :out-of-range 适用于所有输入类型 C :invalid 在用户交互前也会匹配空必填字段 ✓ 正确答案 D 错误提示用颜色表达即可
# 54. 新版表单元素如 <selectlist>、<button command="toggle-popover"> 在复杂表单编排的取舍 A selectlist 已在所有浏览器稳定可用 B 新表单特性完全不需要考虑可访问性 C button command="toggle-popover" 可声明式切换 popover,但实验特性需特性检测与降级 ✓ 正确答案 D command 属性只能用于 form 内按钮
# 55. type="color" 与 type="date" 等新输入类型在桌面与移动端 WebView 的渲染差异与降级 A type=date 在所有环境都有原生日历 B 自定义日期选择器不需要与原生 value 同步 C type=color 的 value 是 rgb() 格式 D Safari 桌面对 type=date 不提供原生日历,WebView 中可能退化为文本框,需特性检测降级 ✓ 正确答案
# 56. HTML 表单提交时 submitter 属性在区分多按钮触发源与埋点上报的应用 A SubmitEvent.submitter 总是存在 B submitter 只能读取 value,不能读取 name C e.submitter 可区分触发按钮并携带其 dataset,用于分流与埋点 ✓ 正确答案 D form.submit() 触发的提交事件 submitter 指向第一个按钮
# 57. accept 属性在 <input type="file"> 文件类型限制与 MIME 嗅探攻击的边界 A accept 属性是文件上传的安全边界 B 文件扩展名正确即代表内容安全 C 所有平台对 accept 的实现完全一致 D accept 只是选择器过滤提示,可被绕过,安全校验必须在服务端基于内容进行 ✓ 正确答案
# 58. ElementInternals.setValidity 在表单关联自定义元素(form-associated custom elements)中的校验集成 A setValidity({}, '') 表示校验通过,错误会参与原生表单校验与提交拦截 ✓ 正确答案 B setValidity 只能表达 customError C 自定义元素的校验无法被 :invalid 伪类感知 D attachInternals 与校验无关
# 59. 自定义事件(CustomEvent)的创建与冒泡控制 A CustomEvent 默认 bubbles 为 true B dispatchEvent 是同步等待监听器执行后返回 C detail 只能传字符串 D composed: true 且 bubbles: true 时事件可穿透 Shadow DOM 冒泡到外部 ✓ 正确答案
# 60. Selection 与 Range API 在富文本编辑器中的选区操作 A Selection 与 Range 是同一个对象 B DOM 变更不会影响已保存的 Range C Range 用 startContainer/startOffset/endContainer/endOffset 描述连续区域,可用于保存与恢复选区 ✓ 正确答案 D 富文本编辑器不需要处理选区
# 61. Event 的 composed 属性与跨 Shadow DOM 边界的可冒泡性 A composed: true 且 bubbles: true 才能让事件穿透 Shadow DOM 冒泡到外部 ✓ 正确答案 B composed: false 的事件也能冒泡到 document C composedPath() 返回的是事件目标列表而非传播路径 D 所有事件默认 composed 为 true
# 62. adoptedStyleSheets 在多组件共享样式表时的性能与缓存 A 同一 CSSStyleSheet 可被多个 Document/ShadowRoot 采用,解析一次且支持运行时更新 ✓ 正确答案 B adoptedStyleSheets 每个 shadow root 都必须重新解析样式 C adoptedStyleSheets 会出现在 document.styleSheets 中 D 构造表只能创建一次不能修改
# 63. AbortController/AbortSignal 在事件监听与 fetch 链路的统一取消协议 A addEventListener 的 signal 选项在 abort 后不会移除监听器 B fetch 被 abort 后抛出的错误与业务错误无法区分 C 同一 AbortSignal 可同时取消 fetch 与移除事件监听器,构成统一取消协议 ✓ 正确答案 D AbortController 只能用于 fetch
# 64. Element.animate 与 Animation.commitStyles 在过渡与动画衔接的工程价值 A commitStyles() 把动画当前样式写入内联样式,可用于动画与过渡的平滑衔接 ✓ 正确答案 B 动画结束后效果永远保持 C commitStyles 只对 CSS 动画生效 D Element.animate 的动画不支持 finish 事件
# 65. Element.checkVisibility() 与可见性判断的场景 A checkVisibility() 判断渲染可见性(display/visibility/content-visibility),视口内判断仍需 IntersectionObserver ✓ 正确答案 B checkVisibility() 返回元素是否在视口内 C display:none 的元素 checkVisibility 也返回 true D checkVisibility 无法感知 content-visibility 的跳过
# 66. Pointer Events 与 Mouse Events 的统一与差异 A 触摸设备会正常触发 mousemove 且与 pointer 事件等价 B Pointer Events 无法表达压力信息 C Pointer Events 统一鼠标/触摸/触控笔,通过 pointerType 区分,并需 touch-action 控制手势 ✓ 正确答案 D Mouse Events 支持多指触控
# 67. scrollend 事件替代 scroll 防抖的精度提升 A scrollend 在滚动过程中多次触发 B scrollend 只对用户手势滚动生效 C scrollend 由浏览器在滚动真正结束时派发,可替代手写防抖,但需考虑 Safari 兼容回退 ✓ 正确答案 D scrollend 与 scroll 事件触发时机完全相同
# 68. Document Picture-in-Picture API 在浏览器内画中画窗口的 DOM 树创建 A Document PiP 只能展示视频元素 B Document PiP 通过 requestWindow 创建独立窗口,向其中注入自包含的 DOM 与样式 ✓ 正确答案 C 画中画窗口共享主文档的所有 CSS D requestWindow 可以在任意时机调用
# 69. Document.pictureInPictureElement 与窗口模式控制的前端取舍 A document.pictureInPictureElement 返回 PiP 元素的尺寸 B pictureInPictureElement 用于查询当前 PiP 元素,配合 enter/leave 事件同步页面状态 ✓ 正确答案 C 所有浏览器都支持 Document PiP D 进入 PiP 后页面播放状态无需同步
# 70. input 事件的 InputEvent.getTargetRanges 在富文本撤销栈的工程价值 A getTargetRanges() 返回的是输入法候选词列表 B getTargetRanges() 返回本次输入影响的 Range,配合 inputType 可构建细粒度撤销栈 ✓ 正确答案 C 所有浏览器都完整支持 getTargetRanges D input 事件无法表达输入类型
# 71. Shadow Root composedPath() 在团队规范与代码组织 A composedPath() 只返回事件目标 B composedPath() 返回的是 Promise C composedPath() 返回含 shadow root 与 slot 边界的完整传播路径,可用于事件溯源与委托 ✓ 正确答案 D composedPath 只对自定义事件有效
# 72. min/max/step 属性在数字与日期输入控件的边界精度与跨时区策略 A step=0.1 的步长判定不存在精度问题 B min/max 对文本输入同样生效 C 日期控件比较按日历日语义,跨时区应存储 UTC 时间戳仅展示层转换 ✓ 正确答案 D stepMismatch 只对 number 生效
# 73. Web 组件与 HTML 表单元素(如 ElementInternals) A Web 组件默认自动参与表单提交 B 通过 attachInternals 与 setFormValue/setValidity,自定义元素可参与原生表单收集与校验 ✓ 正确答案 C ElementInternals 只能设置样式 D 自定义元素无法感知表单重置
# 74. 表单跨域提交时 formaction 与 CORS 策略对凭证 Cookie 与 token 传递的影响 A 表单原生跨域提交完全不受任何限制且可读取响应 B SameSite 不影响跨站提交的 Cookie C 原生表单提交是导航式请求不受 CORS 约束,fetch 跨域受 CORS 且凭证需显式配置 ✓ 正确答案 D formaction 跨域时必须手动设置 CORS 头
# 75. type="search" 输入控件在 Safari 与 Chrome 中取消按钮与样式覆盖的边界 A 可用 ::-webkit-search-cancel-button 定制或隐藏取消按钮,自建按钮需保留键盘可达 ✓ 正确答案 B Safari 与 Chrome 的搜索取消按钮样式完全一致 C type=search 在移动端不显示搜索键 D search 输入没有独立事件
# 76. HTML5 校验伪类 :user-invalid 与 :user-valid 在用户已交互后才触发校验的设计意图 A :user-invalid 在页面加载时即匹配所有非法字段 B :user-invalid 在所有浏览器都完整支持 C :user-valid 会改变字段的 validityState D :user-invalid 只在用户交互后匹配,避免表单初始加载就显示错误 ✓ 正确答案
# 77. 使用 pattern="[0-9]" 验证数字时如何考虑 Unicode 数字字符与本地化写法 A [0-9] 可以匹配全角数字 B 所有语言的数字写法都相同 C [0-9] 只匹配 ASCII 数字,全角/非拉丁数字需归一化或 Unicode 属性匹配 ✓ 正确答案 D pattern 校验会自动处理千分位
# 78. autocomplete="one-time-code" 在短信验证码场景的安全考量与浏览器实现差异 A one-time-code 在所有浏览器都能自动提取短信 B one-time-code 触发 iOS 短信提取,Android 常配合 WebOTP,且验证码需与服务端会话绑定并防泄漏 ✓ 正确答案 C 验证码可以安全地记录在埋点日志中 D 验证码自动填充与短信内容格式无关
# 79. tabindex 属性在表单元素焦点顺序与无障碍键盘导航的工程取舍 A tabindex="0" 的元素不参与 Tab 顺序 B tabindex 对 div 元素无效 C tabindex="-1" 可编程聚焦但不进入 Tab 顺序,正整数值会打乱文档顺序应避免 ✓ 正确答案 D 焦点顺序应以 tabindex 数值为准而非文档顺序
# 80. input 事件与 change 事件在实时表单校验场景的触发时机与性能取舍 A input 事件随值变化高频触发,适合实时校验但需防抖,change 在失焦或选择改变后触发 ✓ 正确答案 B change 事件在每次键入时触发 C input 事件在 IME 组合过程中持续返回最终值 D 远程校验不需要取消机制
# 81. 通过 <input type="hidden"> 传递 CSRF token 在 SSR 与客户端表单的工程实现边界 A 隐藏字段的 CSRF token 在 CSR 表单中也能由服务端自动预填 B 隐藏字段适合同步导航提交,异步 fetch 更适合请求头 token 并配合双提交与 SameSite ✓ 正确答案 C CSRF token 放在 DOM 中永远不会被 XSS 读取 D GET 请求可以携带 CSRF token 且无风险